<?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>62807</bug_id>
          
          <creation_ts>2011-06-16 12:03:27 -0700</creation_ts>
          <short_desc>SVGAnimation should use direct unit animation for SVGAngle</short_desc>
          <delta_ts>2011-06-22 02:20:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>422125</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-16 12:03:27 -0700</bug_when>
    <thetext>SVGAnimation should use direct unit animation for SVGAngle as analogue to SVGLength animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422154</commentid>
    <comment_count>1</comment_count>
      <attachid>97481</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-16 13:17:38 -0700</bug_when>
    <thetext>Created attachment 97481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422172</commentid>
    <comment_count>2</comment_count>
      <attachid>97481</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-16 13:33:25 -0700</bug_when>
    <thetext>Comment on attachment 97481
Patch

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

r- for now since it will fail to compile on a lot of platforms right now.

&gt; Source/WebCore/ChangeLog:9
&gt; +        This patch continues the convertion to the new concept of SVGAnimatorFactory with SVGAngle. We can animte the SVG primitive datatype SVGAngle

conversion &amp;&amp; animate

&gt; Source/WebCore/ChangeLog:22
&gt; +        * WebCore.xcodeproj/project.pbxproj:

You are missing at least vcproj and .pro files!

&gt; Source/WebCore/CMakeLists.txt:1652
&gt; +        svg/SVGAnimatedAnlge.cpp

typo!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422202</commentid>
    <comment_count>3</comment_count>
      <attachid>97492</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-16 14:08:12 -0700</bug_when>
    <thetext>Created attachment 97492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422233</commentid>
    <comment_count>4</comment_count>
      <attachid>97492</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-06-16 14:29:30 -0700</bug_when>
    <thetext>Comment on attachment 97492
Patch

Attachment 97492 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8878300</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422235</commentid>
    <comment_count>5</comment_count>
      <attachid>97492</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-06-16 14:30:21 -0700</bug_when>
    <thetext>Comment on attachment 97492
Patch

Attachment 97492 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8877333</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422236</commentid>
    <comment_count>6</comment_count>
      <attachid>97492</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-16 14:30:31 -0700</bug_when>
    <thetext>Comment on attachment 97492
Patch

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

Looks good in general, the description needs to be fixed though and I posted a question.

&gt; Source/WebCore/svg/SVGAnimateElement.cpp:555
&gt; +        || m_animatedAttributeType == AnimatedLength)

Could be on one line.

&gt; LayoutTests/svg/animations/script-tests/svgangle-animation-deg-to-grad.js:1
&gt; +description(&quot;Test SVGLength animation from px to cm.&quot;);

Please fix all descriptions.

&gt; LayoutTests/svg/animations/script-tests/svgangle-animation-rad-to-grad.js:22
&gt; +marker.appendChild(polyline);

Is it possible to put the above setup work into the html? Would make the js files smaller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422244</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-16 14:38:13 -0700</bug_when>
    <thetext>Did not add the file SVGAnimatedAngle.cpp. Shouldn&apos;t upload patches that late. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422856</commentid>
    <comment_count>8</comment_count>
      <attachid>97646</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-17 13:24:28 -0700</bug_when>
    <thetext>Created attachment 97646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422857</commentid>
    <comment_count>9</comment_count>
      <attachid>97646</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-17 13:30:54 -0700</bug_when>
    <thetext>Comment on attachment 97646
Patch

Looks good, but make sure to update the ChangeLog for WebCore.pro change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422860</commentid>
    <comment_count>10</comment_count>
      <attachid>97646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 13:43:40 -0700</bug_when>
    <thetext>Comment on attachment 97646
Patch

Attachment 97646 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8877713</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422918</commentid>
    <comment_count>11</comment_count>
      <attachid>97646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 15:40:48 -0700</bug_when>
    <thetext>Comment on attachment 97646
Patch

Attachment 97646 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8881707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422956</commentid>
    <comment_count>12</comment_count>
      <attachid>97646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 16:47:46 -0700</bug_when>
    <thetext>Comment on attachment 97646
Patch

Attachment 97646 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8879738</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422961</commentid>
    <comment_count>13</comment_count>
      <attachid>97646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 17:13:52 -0700</bug_when>
    <thetext>Comment on attachment 97646
Patch

Attachment 97646 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8876756</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423043</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-17 22:31:46 -0700</bug_when>
    <thetext>Committed r89187: &lt;http://trac.webkit.org/changeset/89187&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97481</attachid>
            <date>2011-06-16 13:17:38 -0700</date>
            <delta_ts>2011-06-16 14:08:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62807-20110616221734.patch</filename>
            <type>text/plain</type>
            <size>57974</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MDU4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDYtMTYgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0FuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MjgwNworCisgICAgICAgIEZvbGxvdyB1cCBvZiAiU1ZHQW5pbWF0aW9uIHNo
b3VsZCB1c2UgZGlyZWN0IHVuaXQgYW5pbWF0aW9uIGZvciBTVkdMZW5ndGgiOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNjgKKyAgICAgICAgVGhpcyBwYXRjaCBj
b250aW51ZXMgdGhlIGNvbnZlcnRpb24gdG8gdGhlIG5ldyBjb25jZXB0IG9mIFNWR0FuaW1hdG9y
RmFjdG9yeSB3aXRoIFNWR0FuZ2xlLiBXZSBjYW4gYW5pbXRlIHRoZSBTVkcgcHJpbWl0aXZlIGRh
dGF0eXBlIFNWR0FuZ2xlCisgICAgICAgIHdpdGggZGlmZmVyZW50IHVuaXQgdHlwZXMgbm93Lgor
CisgICAgICAgIFRlc3RzOiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRv
LWdyYWQuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0
aW9uLWRlZy10by1yYWQuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnYW5n
bGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRp
b25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5odG1sCisgICAgICAgICAgICAgICBz
dmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRlZy5odG1sCisgICAgICAg
ICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuaHRt
bAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHN2Zy9TVkdBbGxJbk9uZS5jcHA6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVFbGVtZW50OjpTVkdBbmltYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5lQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21B
bmRCeVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRU
b0Jhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlS
ZXN1bHRzVG9UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRBbmdsZUFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkU1ZH
TGVuZ3RoKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6flNW
R0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmFuZ2xl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUpOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dG9yRmFjdG9yeTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgICogc3Zn
L1NWR0xlbmd0aC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2VOdW1iZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZH
UGFyc2VyVXRpbGl0aWVzLmg6CisKIDIwMTEtMDYtMTYgIHVuYSBzYWJvdmljICA8dW5hLnNhYm92
aWNAcGFsbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDog
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDg5MDU4KQorKysgU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2NDksNiArMTY0OSw3IEBAIElGIChFTkFC
TEVfU1ZHKQogICAgICAgICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAogICAgICAgICBzdmcv
U1ZHQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAorICAg
ICAgICBzdmcvU1ZHQW5pbWF0ZWRBbmxnZS5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkocmV2aXNpb24gODkwNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMwLDYgKzMzMzAsNyBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFu
Z2xlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCBcCiAJU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlz
aW9uIDg5MDU4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkp
CkBAIC01Njc3LDYgKzU2NzcsNyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmdsZS5jcHAnLAog
ICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVkQW5nbGUuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
JywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwJywKICAgICAgICAgICAg
ICdzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4OTA1OCkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtOTkyLDYgKzk5Miw3IEBACiAJCTQzOUQzMzQ0MTNBNjkxMUMwMEMyMEY0RiAvKiBT
VkdBbmltYXRlZFR5cGVBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM5RDMzNDExM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yLmggKi87IH07CiAJCTQzOUQzMzQ1MTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmlt
YXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQzOUQzMzQyMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRvckZhY3RvcnkuaCAqLzsg
fTsKIAkJNDNDMDkyQkMxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQzA5MkJB
MTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggKi87IH07CisJCTQz
RTUyOUZFMTNBQTlCNkYwMENEMEQ0NCAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzRTUyOUZEMTNBQTlCNkYwMENE
MEQ0NCAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCAqLzsgfTsKIAkJNDQxNTI5MkUwRTFBRThBMDAw
QzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MTUyOTJDMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDQxNTI5MkYwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
ICovOyB9OwogCQk0NDFCMDU1QzBDRDc3QTJEMDA3QzFGMTggLyogRE9NSFRNTEVtYmVkRWxlbWVu
dFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0MjlBQUZCMENCODRFODgwMDc2NDdDNSAvKiBET01IVE1MRW1iZWRF
bGVtZW50UHJpdmF0ZS5oICovOyB9OwpAQCAtNzQyOCw2ICs3NDI5LDcgQEAKIAkJNDM5RDMzNDIx
M0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDNDMDkyQjkxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25P
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZH
Rm9yZWlnbk9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQzA5MkJB
MTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDNFNTI5RkQxM0FBOUI2RjAwQ0QwRDQ0IC8qIFNWR0FuaW1h
dGVkQW5nbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5p
bWF0ZWRBbmdsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MTUyOTJDMEUx
QUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
MjlBQUZCMENCODRFODgwMDc2NDdDNSAvKiBET01IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEVtYmVkRWxlbWVudFByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MjQ5LDYgKzE3MjUxLDcgQEAK
IAkJCQlCMjIyNzdFMzBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5j
cHAgKi8sCiAJCQkJQjIyMjc3RTQwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdFNTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5pZGwgKi8sCisJCQkJNDNFNTI5RkQxM0FBOUI2RjAwQ0QwRDQ0IC8qIFNWR0Fu
aW1hdGVkQW5nbGUuY3BwICovLAogCQkJCTA4N0I4NDk1MTI3MkNFQzcwMEExNDQxNyAvKiBTVkdB
bmltYXRlZEFuZ2xlLmggKi8sCiAJCQkJQjIyMjc3RTYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0Fu
aW1hdGVkQW5nbGUuaWRsICovLAogCQkJCTA4NTc5NzA4MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdB
bmltYXRlZEJvb2xlYW4uaCAqLywKQEAgLTI1NjEyLDYgKzI1NjE1LDcgQEAKIAkJCQlFMUJFNTEy
RDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk0M0U1MjlGRTEzQUE5QjZGMDBDRDBENDQgLyogU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9u
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAko
cmV2aXNpb24gODkwNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU1ZHQWx0R2x5cGhFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5jcHAiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDg5MDU4KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTAsNyArNTAsNyBAQCBTVkdBbmltYXRlRWxlbWVudDo6U1ZHQW5pbWF0ZUVsZW1lbnQoY29uCiAg
ICAgLCBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZShBbmltYXRlZFN0cmluZykKICAgICAsIG1fZnJv
bU51bWJlcigwKQogICAgICwgbV90b051bWJlcigwKQotICAgICwgbV9hbmltYXRlZE51bWJlcihu
dW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKQorICAgICwgbV9hbmltYXRlZE51bWJl
cihudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCkpCiAgICAgLCBtX2FuaW1hdGVkUGF0
aFBvaW50ZXIoMCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZVRh
ZykgfHwgaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSB8fCBoYXNUYWdOYW1lKFNWR05hbWVz
OjphbmltYXRlQ29sb3JUYWcpKTsKQEAgLTY1LDMwICs2NSw2IEBAIFNWR0FuaW1hdGVFbGVtZW50
Ojp+U1ZHQW5pbWF0ZUVsZW1lbnQoKQogewogfQogCi1zdGF0aWMgYm9vbCBwYXJzZU51bWJlclZh
bHVlQW5kVW5pdChjb25zdCBTdHJpbmcmIGluLCBkb3VibGUmIHZhbHVlLCBTdHJpbmcmIHVuaXQp
Ci17Ci0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmcm9tIHRvcCBvZiBteSBoZWFkLCBmaWd1cmUg
b3V0IGFsbCBwcm9wZXJ0eSB0eXBlcyB0aGF0IGNhbiBiZSBhbmltYXRlZCBhcyBudW1iZXJzLgot
ICAgIHVuc2lnbmVkIHVuaXRMZW5ndGggPSAwOwotICAgIFN0cmluZyBwYXJzZSA9IGluLnN0cmlw
V2hpdGVTcGFjZSgpOwotICAgIGlmIChwYXJzZS5lbmRzV2l0aCgiJSIpKQotICAgICAgICB1bml0
TGVuZ3RoID0gMTsKLSAgICBlbHNlIGlmIChwYXJzZS5lbmRzV2l0aCgiZGVnIikgfHwgcGFyc2Uu
ZW5kc1dpdGgoInJhZCIpKQotICAgICAgICB1bml0TGVuZ3RoID0gMzsKLSAgICBlbHNlIGlmIChw
YXJzZS5lbmRzV2l0aCgiZ3JhZCIpKQotICAgICAgICB1bml0TGVuZ3RoID0gNDsKLSAgICBTdHJp
bmcgbmV3VW5pdCA9IHBhcnNlLnJpZ2h0KHVuaXRMZW5ndGgpOwotICAgIFN0cmluZyBudW1iZXIg
PSBwYXJzZS5sZWZ0KHBhcnNlLmxlbmd0aCgpIC0gdW5pdExlbmd0aCk7Ci0gICAgaWYgKCghdW5p
dC5pc0VtcHR5KCkgJiYgbmV3VW5pdCAhPSB1bml0KSB8fCBudW1iZXIuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgVUNoYXIgbGFzdCA9IG51bWJlcltudW1iZXIubGVuZ3Ro
KCkgLSAxXTsKLSAgICBpZiAobGFzdCA8ICcwJyB8fCBsYXN0ID4gJzknKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgdW5pdCA9IG5ld1VuaXQ7Ci0gICAgYm9vbCBvazsKLSAgICB2YWx1ZSA9
IG51bWJlci50b0RvdWJsZSgmb2spOwotICAgIHJldHVybiBvazsKLX0KLQogdm9pZCBTVkdBbmlt
YXRlRWxlbWVudDo6YWRqdXN0Rm9yQ3VycmVudENvbG9yKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1l
bnQsIENvbG9yJiBjb2xvcikKIHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7CkBAIC0xNDAs
NiArMTE2LDggQEAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIFNWR0FuaW1hdGVFbGVtZW50OgogICAg
IC8vIEZJWE1FOiBXZSBuZWVkIHR5cGUgc3BlY2lmaWMgYW5pbWF0aW9ucyBpbiB0aGUgZnV0dXJl
LiBNYW55IGFuaW1hdGlvbnMgbWFya2VkIGFzIEFuaW1hdGVkU3RyaW5nIHRvZGF5IHdpbGwKICAg
ICAvLyBzdXBwb3J0IGNvbnRpbnVvdXMgYW5pbWF0aW9ucy4KICAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOwog
ICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgogICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoK
ICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKQEAgLTE1MSw3ICsxMjksNiBAQCBBbmltYXRl
ZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAgICAgIHJldHVybiBBbmltYXRl
ZFN0cmluZzsKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgICAgICByZXR1cm4gQW5pbWF0
ZWRMZW5ndGg7Ci0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRJbnRl
Z2VyOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRlZE51
bWJlcjsKQEAgLTIwMSwxNyArMTc4LDE3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZUFuaW1hdGUKICAgICAgICAgaWYgKG1fZnJvbVByb3BlcnR5VmFsdWVUeXBlID09IEluaGVy
aXRWYWx1ZSkgewogICAgICAgICAgICAgU3RyaW5nIGZyb21OdW1iZXJTdHJpbmc7CiAgICAgICAg
ICAgICBhZGp1c3RGb3JJbmhlcml0YW5jZSh0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKCks
IGZyb21OdW1iZXJTdHJpbmcpOwotICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlclZhbHVlQW5k
VW5pdChmcm9tTnVtYmVyU3RyaW5nLCBtX2Zyb21OdW1iZXIsIG1fbnVtYmVyVW5pdCkpCisgICAg
ICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhmcm9tTnVtYmVyU3RyaW5nLCBtX2Zy
b21OdW1iZXIsIGZhbHNlKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpIHsKICAgICAg
ICAgICAgIFN0cmluZyB0b051bWJlclN0cmluZzsKICAgICAgICAgICAgIGFkanVzdEZvckluaGVy
aXRhbmNlKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUoKSwgdG9OdW1iZXJTdHJpbmcpOwot
ICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlclZhbHVlQW5kVW5pdCh0b051bWJlclN0cmluZywg
bV90b051bWJlciwgbV9udW1iZXJVbml0KSkKKyAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJG
cm9tU3RyaW5nKHRvTnVtYmVyU3RyaW5nLCBtX3RvTnVtYmVyLCBmYWxzZSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZG91YmxlIG51bWJlcjsKKyAgICAg
ICAgZmxvYXQgbnVtYmVyOwogICAgICAgICBpZiAoY2FsY01vZGUoKSA9PSBDYWxjTW9kZURpc2Ny
ZXRlKQogICAgICAgICAgICAgbnVtYmVyID0gaXNJbkZpcnN0SGFsZk9mQW5pbWF0aW9uID8gbV9m
cm9tTnVtYmVyIDogbV90b051bWJlcjsKICAgICAgICAgZWxzZQpAQCAtMzA5LDYgKzI4Niw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGUKICAgICAgICAgfQogICAg
ICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFu
aW1hdGVkTGVuZ3RoOiB7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKICAgICAgICAgQVNT
RVJUKHJlc3VsdHMtPm1fYW5pbWF0ZWRUeXBlKTsKQEAgLTM4MCwxMCArMzU4LDkgQEAgYm9vbCBT
VkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjogewotICAgICAgICBtX251bWJlclVuaXQgPSBTdHJp
bmcoKTsKLSAgICAgICAgaWYgKHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KHRvU3RyaW5nLCBtX3Rv
TnVtYmVyLCBtX251bWJlclVuaXQpKSB7CisgICAgICAgIGlmIChwYXJzZU51bWJlckZyb21TdHJp
bmcodG9TdHJpbmcsIG1fdG9OdW1iZXIsIGZhbHNlKSkgewogICAgICAgICAgICAgLy8gRm9yIHRv
LWFuaW1hdGlvbnMgdGhlIGZyb20gbnVtYmVyIGlzIGNhbGN1bGF0ZWQgbGF0ZXIKLSAgICAgICAg
ICAgIGlmIChhbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gfHwgcGFyc2VOdW1iZXJWYWx1
ZUFuZFVuaXQoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVyLCBtX251bWJlclVuaXQpKQorICAgICAg
ICAgICAgaWYgKGFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiB8fCBwYXJzZU51bWJlckZy
b21TdHJpbmcoZnJvbVN0cmluZywgbV9mcm9tTnVtYmVyLCBmYWxzZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC00MDgsNiArMzg1
LDcgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2Fz
ZSBBbmltYXRlZExlbmd0aDogewogICAgICAgICBlbnN1cmVBbmltYXRvcigpLT5jYWxjdWxhdGVG
cm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUsIGZyb21TdHJpbmcsIHRvU3RyaW5n
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00NDksMTcgKzQyNywxNyBAQCBib29sIFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAg
ICAgY2FzZSBBbmltYXRlZExlbmd0aDogewogICAgICAgICBlbnN1cmVBbmltYXRvcigpLT5jYWxj
dWxhdGVGcm9tQW5kQnlWYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUsIGZyb21TdHJpbmcsIGJ5
U3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICB9CiAgICAgZGVmYXVsdDoKLSAg
ICAgICAgbV9udW1iZXJVbml0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1fZnJvbU51bWJlciA9IDA7
Ci0gICAgICAgIGlmICghZnJvbVN0cmluZy5pc0VtcHR5KCkgJiYgIXBhcnNlTnVtYmVyVmFsdWVB
bmRVbml0KGZyb21TdHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJVbml0KSkKKyAgICAgICAg
aWYgKCFmcm9tU3RyaW5nLmlzRW1wdHkoKSAmJiAhcGFyc2VOdW1iZXJGcm9tU3RyaW5nKGZyb21T
dHJpbmcsIG1fZnJvbU51bWJlciwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBpZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGJ5U3RyaW5nLCBtX3RvTnVtYmVy
LCBtX251bWJlclVuaXQpKQorICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhieVN0
cmluZywgbV90b051bWJlciwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICBtX3RvTnVtYmVyICs9IG1fZnJvbU51bWJlcjsKICAgICB9CkBAIC00ODQsMTAgKzQ2Miw5
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUKICAgICBjYXNlIEFu
aW1hdGVkTnVtYmVyOgogICAgICAgICBpZiAoYmFzZVN0cmluZy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIG1fYW5pbWF0ZWROdW1iZXIgPSAwOwotICAgICAgICAgICAgbV9udW1iZXJVbml0ID0g
U3RyaW5nKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHBh
cnNlTnVtYmVyVmFsdWVBbmRVbml0KGJhc2VTdHJpbmcsIG1fYW5pbWF0ZWROdW1iZXIsIG1fbnVt
YmVyVW5pdCkpCisgICAgICAgIGlmIChwYXJzZU51bWJlckZyb21TdHJpbmcoYmFzZVN0cmluZywg
bV9hbmltYXRlZE51bWJlciwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEFuaW1hdGVkUGF0aDogewpAQCAtNTAwLDggKzQ3NywxMiBAQCB2b2lk
IFNWR0FuaW1hdGVFbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlCiAgICAgY2FzZSBBbmltYXRlZFBv
aW50czoKICAgICAgICAgbV9hbmltYXRlZFBvaW50cy5jbGVhcigpOwogICAgICAgICByZXR1cm47
CisgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6IHsKLSAg
ICAgICAgbV9hbmltYXRlZFR5cGUgPSBlbnN1cmVBbmltYXRvcigpLT5jb25zdHJ1Y3RGcm9tU3Ry
aW5nKGJhc2VTdHJpbmcpOworICAgICAgICBpZiAoIW1fYW5pbWF0ZWRUeXBlKQorICAgICAgICAg
ICAgbV9hbmltYXRlZFR5cGUgPSBlbnN1cmVBbmltYXRvcigpLT5jb25zdHJ1Y3RGcm9tU3RyaW5n
KGJhc2VTdHJpbmcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2FuaW1hdGVkVHlwZS0+
c2V0VmFsdWVBc1N0cmluZyhhdHRyaWJ1dGVOYW1lKCksIGJhc2VTdHJpbmcpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGRlZmF1bHQ6CkBAIC01MTMsMTEgKzQ5NCwxNCBAQCB2b2lkIFNW
R0FuaW1hdGVFbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlCiB2b2lkIFNWR0FuaW1hdGVFbGVtZW50
OjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiB7CiAgICAgU3RyaW5nIHZhbHVlVG9BcHBseTsKLSAg
ICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRDb2xvcikKKyAgICBzd2l0
Y2ggKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZENvbG9yOgog
ICAgICAgICB2YWx1ZVRvQXBwbHkgPSBtX2FuaW1hdGVkQ29sb3Iuc2VyaWFsaXplZCgpOwotICAg
IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKQotICAg
ICAgICB2YWx1ZVRvQXBwbHkgPSBTdHJpbmc6Om51bWJlcihtX2FuaW1hdGVkTnVtYmVyKSArIG1f
bnVtYmVyVW5pdDsKLSAgICBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZFBhdGgpIHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKKyAg
ICAgICAgdmFsdWVUb0FwcGx5ID0gU3RyaW5nOjpudW1iZXIobV9hbmltYXRlZE51bWJlcik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWRQYXRoOiB7CiAgICAgICAgIGlmICghbV9h
bmltYXRlZFBhdGhQb2ludGVyIHx8IG1fYW5pbWF0ZWRQYXRoUG9pbnRlci0+aXNFbXB0eSgpKQog
ICAgICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKICAgICAgICAgZWxz
ZSB7CkBAIC01MjgsMTMgKzUxMiwxOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJl
c3VsdHNUb1RhCiAgICAgICAgICAgICBTVkdQYXRoUGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNW
R1BhdGhQYXJzZXJGYWN0b3J5OjpzZWxmKCk7CiAgICAgICAgICAgICBmYWN0b3J5LT5idWlsZFN0
cmluZ0Zyb21CeXRlU3RyZWFtKG1fYW5pbWF0ZWRQYXRoUG9pbnRlciwgdmFsdWVUb0FwcGx5LCBV
bmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9hbmltYXRlZEF0
dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQb2ludHMpCisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBjYXNlIEFuaW1hdGVkUG9pbnRzOgogICAgICAgICB2YWx1ZVRvQXBwbHkgPSBtX2FuaW1hdGVk
UG9pbnRzLmlzRW1wdHkoKSA/IG1fYW5pbWF0ZWRTdHJpbmcgOiBtX2FuaW1hdGVkUG9pbnRzLnZh
bHVlQXNTdHJpbmcoKTsKLSAgICBlbHNlIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBB
bmltYXRlZExlbmd0aCkKLSAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFR5cGUtPmxl
bmd0aCgpLnZhbHVlQXNTdHJpbmcoKTsKLSAgICBlbHNlCisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQW5pbWF0ZWRBbmdsZToKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAgICAgICB2YWx1
ZVRvQXBwbHkgPSBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0cmluZygpOworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgogICAgICAgICB2YWx1ZVRvQXBwbHkgPSBtX2FuaW1hdGVkU3RyaW5n
OwotICAgIAorICAgIH0KICAgICBzZXRUYXJnZXRBdHRyaWJ1dGVBbmltYXRlZFZhbHVlKHZhbHVl
VG9BcHBseSk7CiB9CiAgICAgCkBAIC01NDUsMTQgKzUzNCwxMyBAQCBmbG9hdCBTVkdBbmltYXRl
RWxlbWVudDo6Y2FsY3VsYXRlRGlzdGFuCiAgICAgICAgIHJldHVybiAtMTsKICAgICBtX2FuaW1h
dGVkQXR0cmlidXRlVHlwZSA9IGRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSh0YXJnZXRF
bGVtZW50KTsKICAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWROdW1i
ZXIpIHsKLSAgICAgICAgZG91YmxlIGZyb207Ci0gICAgICAgIGRvdWJsZSB0bzsKLSAgICAgICAg
U3RyaW5nIHVuaXQ7Ci0gICAgICAgIGlmICghcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbVN0
cmluZywgZnJvbSwgdW5pdCkpCisgICAgICAgIGZsb2F0IGZyb207CisgICAgICAgIGZsb2F0IHRv
OworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhmcm9tU3RyaW5nLCBmcm9tLCBm
YWxzZSkpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGlmICghcGFyc2VOdW1iZXJW
YWx1ZUFuZFVuaXQodG9TdHJpbmcsIHRvLCB1bml0KSkKKyAgICAgICAgaWYgKCFwYXJzZU51bWJl
ckZyb21TdHJpbmcodG9TdHJpbmcsIHRvLCBmYWxzZSkpCiAgICAgICAgICAgICByZXR1cm4gLTE7
Ci0gICAgICAgIHJldHVybiBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGZhYnModG8gLSBmcm9tKSk7
CisgICAgICAgIHJldHVybiBmYWJzKHRvIC0gZnJvbSk7CiAgICAgfQogICAgIGlmIChtX2FuaW1h
dGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZENvbG9yKSB7CiAgICAgICAgIENvbG9yIGZyb20g
PSBTVkdDb2xvcjo6Y29sb3JGcm9tUkdCQ29sb3JTdHJpbmcoZnJvbVN0cmluZyk7CkBAIC01NjMs
NyArNTUxLDggQEAgZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbgogICAg
ICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICByZXR1cm4gQ29sb3JEaXN0YW5jZShmcm9tLCB0
bykuZGlzdGFuY2UoKTsKICAgICB9Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09
IEFuaW1hdGVkTGVuZ3RoKQorICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmlt
YXRlZEFuZ2xlCisgICAgICAgIHx8IG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
TGVuZ3RoKQogICAgICAgICByZXR1cm4gZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRGlzdGFu
Y2UodGhpcywgZnJvbVN0cmluZywgdG9TdHJpbmcpOwogICAgIHJldHVybiAtMTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCShyZXZpc2lvbiA4OTA1OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03MiwxMCArNzIsOSBAQCBwcml2YXRlOgogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVZhbHVlVHlw
ZSBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZTsKICAgICBBbmltYXRlZFByb3BlcnR5VmFsdWVUeXBl
IG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZTsKLSAgICBkb3VibGUgbV9mcm9tTnVtYmVyOwotICAgIGRv
dWJsZSBtX3RvTnVtYmVyOwotICAgIGRvdWJsZSBtX2FuaW1hdGVkTnVtYmVyOwotICAgIFN0cmlu
ZyBtX251bWJlclVuaXQ7CisgICAgZmxvYXQgbV9mcm9tTnVtYmVyOworICAgIGZsb2F0IG1fdG9O
dW1iZXI7CisgICAgZmxvYXQgbV9hbmltYXRlZE51bWJlcjsKICAgICBDb2xvciBtX2Zyb21Db2xv
cjsKICAgICBDb2xvciBtX3RvQ29sb3I7CiAgICAgQ29sb3IgbV9hbmltYXRlZENvbG9yOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCShyZXZpc2lvbiA4OTA1OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDYgKzIyLDcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHQW5nbGUuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJv
cGVydHlUZWFyT2ZmLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDcgKzM2LDI0IEBA
IERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHQW5pbWF0ZWRBbmcKICNkZWZpbmUgREVGSU5F
X0FOSU1BVEVEX0FOR0xFX01VTFRJUExFX1dSQVBQRVJTKE93bmVyVHlwZSwgRE9NQXR0cmlidXRl
LCBTVkdET01BdHRyaWJ1dGVJZGVudGlmaWVyLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5
KSBcCiBERUZJTkVfQU5JTUFURURfUFJPUEVSVFkoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIFNW
R0RPTUF0dHJpYnV0ZUlkZW50aWZpZXIsIFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuZ2xlLCBVcHBl
clByb3BlcnR5LCBMb3dlclByb3BlcnR5KQogCisjaWYgRU5BQkxFKFNWR19BTklNQVRJT04pCitj
bGFzcyBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3IgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IgeworICAgIAorcHVibGljOgorICAgIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOworICAgIHZpcnR1
YWwgflNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcigpIHsgfQorICAgIAorICAgIHZpcnR1YWwgUGFz
c093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
Jik7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25Q
dHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYg
dG9WYWx1ZSwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5n
KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdB
bmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVl
LCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpOworICAg
IHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiwgZmxv
YXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwg
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+
JiBhbmltYXRlZFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0eUluaGVyaXRzKTsKKyAg
ICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVtZW50KiwgY29uc3Qg
U3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKK307CiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0FOSU1BVElPTikKICNlbmRp
ZiAvLyBFTkFCTEUoU1ZHKQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aC5jcHAJKHJldmlzaW9uIDg5MDU4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsOSBAQCBTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlCiBzdGF0aWMgaW5saW5lIFNWR0xl
bmd0aCYgc2hhcmVkU1ZHTGVuZ3RoKFNWR0xlbmd0aE1vZGUgbW9kZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZUFzU3RyaW5nKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU1ZHTGVuZ3RoLCBzaGFy
ZWRMZW5ndGgsICgpKTsKLSAgICBzaGFyZWRMZW5ndGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFz
U3RyaW5nLCBtb2RlKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBzaGFyZWRMZW5n
dGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBtb2RlLCBlYyk7CisgICAgQVNTRVJU
KCFlYyk7CiAgICAgcmV0dXJuIHNoYXJlZExlbmd0aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2aXNpb24gODkwNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNk
ZWZpbmUgU1ZHQW5pbWF0ZWRUeXBlX2gKIAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdf
QU5JTUFUSU9OKQorI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgi
CkBAIC0zMCwxNSArMzEsNDAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1ZHQW5pbWF0
ZWRUeXBlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShBbmltYXRlZEF0dHJpYnV0ZVR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRU
eXBlKHR5cGUpKTsKKyAgICB9CisgICAgCiAgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGVMZW5ndGgoU1ZHTGVuZ3RoKiBsZW5ndGgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZExlbmd0aCwgbGVuZ3Ro
KSk7CisgICAgICAgIEFTU0VSVChsZW5ndGgpOworICAgICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBhbmltYXRlZFR5cGUgPSBjcmVhdGUoQW5pbWF0ZWRMZW5ndGgpOworICAgICAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5sZW5ndGggPSBsZW5ndGg7CisgICAgICAgIHJldHVybiBhbmltYXRl
ZFR5cGUucmVsZWFzZSgpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4gY3JlYXRlQW5nbGUoU1ZHQW5nbGUqIGFuZ2xlKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKGFuZ2xlKTsKKyAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gYW5pbWF0ZWRUeXBl
ID0gY3JlYXRlKEFuaW1hdGVkQW5nbGUpOworICAgICAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5h
bmdsZSA9IGFuZ2xlOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlLnJlbGVhc2UoKTsKICAg
ICB9CiAKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGUoKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubGVu
Z3RoOworICAgICAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgICAgICBjYXNlIEFuaW1hdGVkTGVu
Z3RoOgorICAgICAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgorICAgICAgICAgICAgZGVsZXRlIG1fZGF0
YS5hbmdsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQog
ICAgIH0KICAgICAKICAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQpAQCAtNDgsMTIgKzc0LDUyIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aCk7CiAgICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0
aDsKICAgICB9CisKKyAgICBTVkdBbmdsZSYgYW5nbGUoKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xlKTsKKyAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGU7
CisgICAgfQorICAgIAorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKKyAgICB7CisgICAgICAg
IHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CisgICAgICAg
ICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhLmxl
bmd0aC0+dmFsdWVBc1N0cmluZygpOworICAgICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAg
ICAgICAgICBBU1NFUlQobV9kYXRhLmFuZ2xlKTsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGEu
YW5nbGUtPnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKKyAgICB7
CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICBzd2l0Y2ggKG1fdHlwZSkg
eworICAgICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAgICAgICAgICAgQVNTRVJUKG1fZGF0
YS5sZW5ndGgpOworICAgICAgICAgICAgbV9kYXRhLmxlbmd0aC0+c2V0VmFsdWVBc1N0cmluZyh2
YWx1ZSwgU1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0
ck5hbWUpLCBlYyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBbmltYXRlZEFu
Z2xlOgorICAgICAgICAgICAgQVNTRVJUKG1fZGF0YS5hbmdsZSk7CisgICAgICAgICAgICBtX2Rh
dGEuYW5nbGUtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIGVjKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIWVjOworICAgIH0K
ICAgICAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkQXR0cmlidXRlVHlw
ZSB0eXBlLCBTVkdMZW5ndGgqIGxlbmd0aCkKKyAgICBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRB
dHRyaWJ1dGVUeXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgewotICAgICAg
ICBtX2RhdGEubGVuZ3RoID0gbGVuZ3RoOwogICAgIH0KICAgICAKICAgICBBbmltYXRlZEF0dHJp
YnV0ZVR5cGUgbV90eXBlOwpAQCAtNjYsNiArMTMyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAg
ICAgICAgIC8vIEZJWE1FOiBNb3JlIFNWRyBwcmltaXRpdmUgdHlwZXMgbmVlZCB0byBiZSBhZGRl
ZCBzdGVwIGJ5IHN0ZXAuCiAgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOworICAgICAgICBTVkdB
bmdsZSogYW5nbGU7CiAgICAgfSBtX2RhdGE7CiB9OwogICAgIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gODkwNTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIx
LDcgQEAKICNkZWZpbmUgU1ZHQW5pbWF0b3JGYWN0b3J5X2gKIAogI2lmIEVOQUJMRShTVkcpICYm
IEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
Myw2ICszNCw4IEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGVUeXBlKSB7CiAg
ICAgICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUpKTsKKyAgICAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgorICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJp
YnV0ZU5hbWUpKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0
aEFuaW1hdG9yKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoLmNwcAkocmV2aXNpb24gODkwNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDEzICsxMzIsMTEgQEAgU1ZHTGVu
Z3RoOjpTVkdMZW5ndGgoU1ZHTGVuZ3RoTW9kZSBtb2RlLAogICAgIHNldFZhbHVlQXNTdHJpbmco
dmFsdWVBc1N0cmluZywgZWMpOwogfQogICAgIAotdm9pZCBTVkdMZW5ndGg6OnNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3RyaW5nLCBTVkdMZW5ndGhNb2RlIG1vZGUpCit2
b2lkIFNWR0xlbmd0aDo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlQXNTdHJp
bmcsIFNWR0xlbmd0aE1vZGUgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV92YWx1
ZUluU3BlY2lmaWVkVW5pdHMgPSAwOwogICAgIG1fdW5pdCA9IHN0b3JlVW5pdChtb2RlLCBMZW5n
dGhUeXBlTnVtYmVyKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBzZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlQXNTdHJpbmcsIGVjKTsKLSAgICBBU1NFUlQoIWVjKTsKIH0KIAogU1ZHTGVu
Z3RoOjpTVkdMZW5ndGgoY29uc3QgU1ZHTGVuZ3RoJiBvdGhlcikKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoLmgJKHJldmlzaW9uIDg5MDU4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aC5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmlu
ZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFZhbHVlQXNTdHJpbmcoY29u
c3QgU3RyaW5nJiwgU1ZHTGVuZ3RoTW9kZSk7CisgICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNv
bnN0IFN0cmluZyYsIFNWR0xlbmd0aE1vZGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAKICAgICB2
b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQsIGZsb2F0IHZhbHVlSW5T
cGVjaWZpZWRVbml0cywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgY29udmVydFRvU3BlY2lm
aWVkVW5pdHModW5zaWduZWQgc2hvcnQsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHQsIEV4Y2Vw
dGlvbkNvZGUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMu
Y3BwCShyZXZpc2lvbiA4OTA1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGls
aXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDEzIEBAIGJvb2wgcGFyc2VO
dW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnMKICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTnVt
YmVyKHB0ciwgZW5kLCBudW1iZXIsIHNraXApOwogfQogCitib29sIHBhcnNlTnVtYmVyRnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgZmxvYXQmIG51bWJlciwgYm9vbCBza2lwKQorewor
ICAgIGNvbnN0IFVDaGFyKiBwdHIgPSBzdHJpbmcuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVD
aGFyKiBlbmQgPSBwdHIgKyBzdHJpbmcubGVuZ3RoKCk7CisgICAgcmV0dXJuIGdlbmVyaWNQYXJz
ZU51bWJlcihwdHIsIGVuZCwgbnVtYmVyLCBza2lwKTsKK30KKwogLy8gb25seSB1c2VkIHRvIHBh
cnNlIGxhcmdlQXJjRmxhZyBhbmQgc3dlZXBGbGFnIHdoaWNoIG11c3QgYmUgYSAiMCIgb3IgIjEi
CiAvLyBhbmQgbWlnaHQgbm90IGhhdmUgYW55IHdoaXRlc3BhY2UvY29tbWEgYWZ0ZXIgaXQKIGJv
b2wgcGFyc2VBcmNGbGFnKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBib29s
JiBmbGFnKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAkocmV2
aXNpb24gODkwNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgU1ZHUG9pbnRMaXN0OwogCiBib29sIHBhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRyLCBj
b25zdCBVQ2hhciogZW5kLCBmbG9hdCYgbnVtYmVyLCBib29sIHNraXAgPSB0cnVlKTsKK2Jvb2wg
cGFyc2VOdW1iZXJGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYsIGZsb2F0JiBudW1iZXIsIGJvb2wg
c2tpcCA9IHRydWUpOwogYm9vbCBwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cmlu
ZyYgcywgZmxvYXQmIGgsIGZsb2F0JiB2KTsKIGJvb2wgcGFyc2VBcmNGbGFnKGNvbnN0IFVDaGFy
KiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBib29sJiBmbGFnKTsKIApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gODkwNTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw1NSBAQAorMjAxMS0wNi0xNiAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWR0FuaW1h
dGlvbiBzaG91bGQgdXNlIGRpcmVjdCB1bml0IGFuaW1hdGlvbiBmb3IgU1ZHQW5nbGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODA3CisKKyAgICAg
ICAgVGVzdHMgYW5pbWF0aW9uIG9mIFNWR0FuZ2xlIHdpdGggZGlmZmVyZW50IHVuaXRzLgorCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1k
ZWctdG8tZ3JhZC5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBs
ZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAg
ICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8t
cmFkLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6Cisg
ICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAg
IChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1w
bGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuanM6IEFkZGVkLgorICAg
ICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgor
ICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10
ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanM6IEFkZGVkLgorICAgICAgICAo
c2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAg
ICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1h
dGlvbi1kZWctdG8tZ3JhZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlv
bi1kZWctdG8tcmFkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2Fu
Z2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1y
YWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmds
ZS1hbmltYXRpb24tZ3JhZC10by1yYWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRlZy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24t
cmFkLXRvLWdyYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYt
MTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBTZWlkZWwuCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmds
ZS1hbmltYXRpb24tZGVnLXRvLWdyYWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdh
bmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZH
TGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNT
IG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVu
dEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VW
YWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMg
MTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDE4MAorUEFTUyBt
YXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRB
bmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdh
bmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlv
bi1kZWctdG8tZ3JhZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxo
MT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmlt
YXRpb24tZGVnLXRvLXJhZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5p
bWF0aW9uLWRlZy10by1yYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5
IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFu
aW1hdGlvbiBmcm9tIHB4IHRvIGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5v
cmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFu
aW1WYWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUg
aXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMTgwCitQQVNT
IG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDE4MAorUEFTUyBtYXJrZXIub3Jp
ZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNl
VmFsLnZhbHVlIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmlt
YXRpb24tZGVnLXRvLXJhZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tcmFkLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJh
ZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
VGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRp
b25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2FuZ2xl
LWFuaW1hdGlvbi1kZWctdG8tcmFkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRv
LWRlZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFk
LXRvLWRlZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAx
LjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZy
b20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtl
ci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xl
LmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyA5MAorUEFT
UyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9y
aWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5h
bmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUg
aXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFk
LXRvLWRlZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RD
YXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBh
bmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0
aW9uLWdyYWQtdG8tZGVnLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
YW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJh
ZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHlu
YW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHgg
dG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtlci5vcmll
bnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VW
YWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyA5
MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJr
ZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFu
Z2xlLmJhc2VWYWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFs
LnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJh
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xl
LWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdy
YWQtdG8tcmFkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1h
bmltYXRpb24tcmFkLXRvLWRlZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRlZy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmlt
YXRpb24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5h
bmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUg
aXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyA5MAorUEFTUyBt
YXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50
QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VW
YWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlz
IDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9u
LXJhZC10by1kZWcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gx
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFk
LXRvLWdyYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
cworCitUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFs
dWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNT
IG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmll
bnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmlt
VmFsLnZhbHVlIGlzIDE4MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBp
cyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBt
YXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1n
cmFkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdh
bmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5p
bWF0aW9uLWRlZy10by1ncmFkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3Ro
IGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8g
U2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGRlZnMgPSBjcmVhdGVTVkdFbGVtZW50KCJkZWZzIik7
CisKK3ZhciBtYXJrZXIgPSBjcmVhdGVTVkdFbGVtZW50KCJtYXJrZXIiKTsKK21hcmtlci5zZXRB
dHRyaWJ1dGUoImlkIiwgIm1hcmtlciIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgidmlld0JveCIs
ICIwIDAgMTAgMTAiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlcldpZHRoIiwgIjQiKTsK
K21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlckhlaWdodCIsICIzIik7CittYXJrZXIuc2V0QXR0
cmlidXRlKCJtYXJrZXJVbml0cyIsICJzdHJva2VXaWR0aCIpOworbWFya2VyLnNldEF0dHJpYnV0
ZSgicmVmWCIsICIxIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJyZWZZIiwgIjUiKTsKK21hcmtl
ci5zZXRBdHRyaWJ1dGUoIm9yaWVudCIsICIwZGVnIik7CitkZWZzLmFwcGVuZENoaWxkKG1hcmtl
cik7CisKK3ZhciBwb2x5bGluZSA9IGNyZWF0ZVNWR0VsZW1lbnQoInBvbHlsaW5lIik7Citwb2x5
bGluZS5zZXRBdHRyaWJ1dGUoImlkIiwgInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1
dGUoInBvaW50cyIsICIwLDAgMTAsNSAwLDEwIDEsNSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRl
KCJmaWxsIiwgImdyZWVuIik7CittYXJrZXIuYXBwZW5kQ2hpbGQocG9seWxpbmUpOworCit2YXIg
cGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIs
ICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiZCIsICJNNDUsNTAgTDU1LDUwIik7CitwYXRo
LnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwiMTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJz
dHJva2UiLCAiZ3JlZW4iKTsKK3BhdGguc2V0QXR0cmlidXRlKCJtYXJrZXItZW5kIiwgInVybCgj
bWFya2VyKSIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIp
OworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJh
dHRyaWJ1dGVOYW1lIiwgIm9yaWVudCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwg
InBhdGguY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjBkZWciKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0
byIsICIyMDBncmFkIik7CittYXJrZXIuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxl
bWVudC5hcHBlbmRDaGlsZChkZWZzKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHBhdGgp
OworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAv
LyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmll
bnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgibWFya2VyLm9yaWVu
dEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVl
IiwgIjkwIiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5n
bGUuYmFzZVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFs
dWUiLCAiMTgwIiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50
QW5nbGUuYmFzZVZhbC52YWx1ZSIsICIxODAiLCAwLjEpOworfQorCitmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1h
dGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1h
dGlvbiIsIDAuMCwgICAgIm1hcmtlciIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIs
IDIuMCwgICAgIm1hcmtlciIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5
OSwgIm1hcmtlciIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgIm1h
cmtlciIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJp
Z2dlclVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1h
bmltYXRpb24tZGVnLXRvLXJhZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3Zn
YW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQg
QEAKK2Rlc2NyaXB0aW9uKCJUZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4i
KTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBk
ZWZzID0gY3JlYXRlU1ZHRWxlbWVudCgiZGVmcyIpOworCit2YXIgbWFya2VyID0gY3JlYXRlU1ZH
RWxlbWVudCgibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJpZCIsICJtYXJrZXIiKTsK
K21hcmtlci5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCAiMCAwIDEwIDEwIik7CittYXJrZXIuc2V0
QXR0cmlidXRlKCJtYXJrZXJXaWR0aCIsICI0Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJr
ZXJIZWlnaHQiLCAiMyIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyVW5pdHMiLCAic3Ry
b2tlV2lkdGgiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlgiLCAiMSIpOworbWFya2VyLnNl
dEF0dHJpYnV0ZSgicmVmWSIsICI1Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJvcmllbnQiLCAi
MGRlZyIpOworZGVmcy5hcHBlbmRDaGlsZChtYXJrZXIpOworCit2YXIgcG9seWxpbmUgPSBjcmVh
dGVTVkdFbGVtZW50KCJwb2x5bGluZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJpZCIsICJw
b2x5bGluZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJwb2ludHMiLCAiMCwwIDEwLDUgMCwx
MCAxLDUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworbWFya2Vy
LmFwcGVuZENoaWxkKHBvbHlsaW5lKTsKKwordmFyIHBhdGggPSBjcmVhdGVTVkdFbGVtZW50KCJw
YXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiaWQiLCAicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1
dGUoImQiLCAiTTQ1LDUwIEw1NSw1MCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0
aCIsIjEwIik7CitwYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwgImdyZWVuIik7CitwYXRoLnNl
dEF0dHJpYnV0ZSgibWFya2VyLWVuZCIsICJ1cmwoI21hcmtlcikiKTsKK3BhdGguc2V0QXR0cmli
dXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVT
VkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0
aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJvcmllbnQiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJwYXRoLmNsaWNrIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIw
ZGVnIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMy4xNDE1OTI2NXJhZCIpOworbWFy
a2VyLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVm
cyk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0
aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQg
Y29uZGl0aW9ucworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSIsICIwIik7CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVl
IiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAi
OTAiLCAwLjEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUi
LCAiMTgwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVu
dElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJr
ZXIiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBz
YW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUz
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAg
IF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVn
aW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIs
IDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVn
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1kZWcuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdy
YWQtdG8tZGVnLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigi
VGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0
Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgZGVmcyA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoImRlZnMiKTsKKwordmFyIG1hcmtlciA9IGNyZWF0ZVNWR0VsZW1lbnQoIm1hcmtlciIp
OworbWFya2VyLnNldEF0dHJpYnV0ZSgiaWQiLCAibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmli
dXRlKCJ2aWV3Qm94IiwgIjAgMCAxMCAxMCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2Vy
V2lkdGgiLCAiNCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VySGVpZ2h0IiwgIjMiKTsK
K21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlclVuaXRzIiwgInN0cm9rZVdpZHRoIik7CittYXJr
ZXIuc2V0QXR0cmlidXRlKCJyZWZYIiwgIjEiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlki
LCAiNSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgib3JpZW50IiwgIjBkZWciKTsKK2RlZnMuYXBw
ZW5kQ2hpbGQobWFya2VyKTsKKwordmFyIHBvbHlsaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgicG9s
eWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiaWQiLCAicG9seWxpbmUiKTsKK3BvbHls
aW5lLnNldEF0dHJpYnV0ZSgicG9pbnRzIiwgIjAsMCAxMCw1IDAsMTAgMSw1Iik7Citwb2x5bGlu
ZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK21hcmtlci5hcHBlbmRDaGlsZChwb2x5
bGluZSk7CisKK3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRB
dHRyaWJ1dGUoImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk00NSw1MCBM
NTUsNTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCIxMCIpOworcGF0aC5z
ZXRBdHRyaWJ1dGUoInN0cm9rZSIsICJncmVlbiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm1hcmtl
ci1lbmQiLCAidXJsKCNtYXJrZXIpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJl
eGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0
ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAib3JpZW50Iik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiYmVnaW4iLCAicGF0aC5jbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIs
ICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMGdyYWQiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJ0byIsICIxODBkZWciKTsKK21hcmtlci5hcHBlbmRDaGlsZChhbmltYXRl
KTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKGRlZnMpOworcm9vdFNWR0VsZW1lbnQuYXBw
ZW5kQ2hpbGQocGF0aCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1w
bGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRC
ZSgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJl
KCJtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xl
LmFuaW1WYWwudmFsdWUiLCAiOTAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1h
cmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjkwIiwgMC4xKTsKK30KKworZnVuY3Rp
b24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5n
bGUuYW5pbVZhbC52YWx1ZSIsICIxODAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
Im1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7Cit9CisKK2Z1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAg
ICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAibWFya2VyIiwgc2FtcGxlMV0sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMi4wLCAgICAibWFya2VyIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5p
bWF0aW9uIiwgMy45OTk5LCAibWFya2VyIiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgNC4wICwgICAibWFya2VyIiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdy
YWQtdG8tcmFkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw3NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlv
biBmcm9tIHB4IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVz
dCBkb2N1bWVudAordmFyIGRlZnMgPSBjcmVhdGVTVkdFbGVtZW50KCJkZWZzIik7CisKK3ZhciBt
YXJrZXIgPSBjcmVhdGVTVkdFbGVtZW50KCJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUo
ImlkIiwgIm1hcmtlciIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgidmlld0JveCIsICIwIDAgMTAg
MTAiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlcldpZHRoIiwgIjQiKTsKK21hcmtlci5z
ZXRBdHRyaWJ1dGUoIm1hcmtlckhlaWdodCIsICIzIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJt
YXJrZXJVbml0cyIsICJzdHJva2VXaWR0aCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWCIs
ICIxIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJyZWZZIiwgIjUiKTsKK21hcmtlci5zZXRBdHRy
aWJ1dGUoIm9yaWVudCIsICIwZGVnIik7CitkZWZzLmFwcGVuZENoaWxkKG1hcmtlcik7CisKK3Zh
ciBwb2x5bGluZSA9IGNyZWF0ZVNWR0VsZW1lbnQoInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRB
dHRyaWJ1dGUoImlkIiwgInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoInBvaW50
cyIsICIwLDAgMTAsNSAwLDEwIDEsNSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJmaWxsIiwg
ImdyZWVuIik7CittYXJrZXIuYXBwZW5kQ2hpbGQocG9seWxpbmUpOworCit2YXIgcGF0aCA9IGNy
ZWF0ZVNWR0VsZW1lbnQoInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7
CitwYXRoLnNldEF0dHJpYnV0ZSgiZCIsICJNNDUsNTAgTDU1LDUwIik7CitwYXRoLnNldEF0dHJp
YnV0ZSgic3Ryb2tlLXdpZHRoIiwiMTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2UiLCAi
Z3JlZW4iKTsKK3BhdGguc2V0QXR0cmlidXRlKCJtYXJrZXItZW5kIiwgInVybCgjbWFya2VyKSIp
OworcGF0aC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIg
YW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVO
YW1lIiwgIm9yaWVudCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgInBhdGguY2xp
Y2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJmcm9tIiwgIjBncmFkIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMy4x
NDE1OTI2NXJhZCIpOworbWFya2VyLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1l
bnQuYXBwZW5kQ2hpbGQoZGVmcyk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsK
KworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8g
Q2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50
QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRB
bmdsZS5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIs
ICI5MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xl
LmJhc2VWYWwudmFsdWUiLCAiOTAiLCAwLjEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgewor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVl
IiwgIjE4MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFu
Z2xlLmJhc2VWYWwudmFsdWUiLCAiMTgwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRp
b25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRp
b24iLCAwLjAsICAgICJtYXJrZXIiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAy
LjAsICAgICJtYXJrZXIiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTks
ICJtYXJrZXIiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJr
ZXIiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFs
dWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdn
ZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5p
bWF0aW9uLXJhZC10by1kZWcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2Fu
Z2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBA
CitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7
CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgZGVm
cyA9IGNyZWF0ZVNWR0VsZW1lbnQoImRlZnMiKTsKKwordmFyIG1hcmtlciA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoIm1hcmtlciIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgiaWQiLCAibWFya2VyIik7Citt
YXJrZXIuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgIjAgMCAxMCAxMCIpOworbWFya2VyLnNldEF0
dHJpYnV0ZSgibWFya2VyV2lkdGgiLCAiNCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2Vy
SGVpZ2h0IiwgIjMiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlclVuaXRzIiwgInN0cm9r
ZVdpZHRoIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJyZWZYIiwgIjEiKTsKK21hcmtlci5zZXRB
dHRyaWJ1dGUoInJlZlkiLCAiNSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgib3JpZW50IiwgIjBk
ZWciKTsKK2RlZnMuYXBwZW5kQ2hpbGQobWFya2VyKTsKKwordmFyIHBvbHlsaW5lID0gY3JlYXRl
U1ZHRWxlbWVudCgicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiaWQiLCAicG9s
eWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgicG9pbnRzIiwgIjAsMCAxMCw1IDAsMTAg
MSw1Iik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK21hcmtlci5h
cHBlbmRDaGlsZChwb2x5bGluZSk7CisKK3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0
aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRl
KCJkIiwgIk00NSw1MCBMNTUsNTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgi
LCIxMCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsICJncmVlbiIpOworcGF0aC5zZXRB
dHRyaWJ1dGUoIm1hcmtlci1lbmQiLCAidXJsKCNtYXJrZXIpIik7CitwYXRoLnNldEF0dHJpYnV0
ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZH
RWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlv
biIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAib3JpZW50Iik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAicGF0aC5jbGljayIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMHJh
ZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjE4MGRlZyIpOworbWFya2VyLmFwcGVu
ZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVmcyk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIwIik7
CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjAiKTsK
K30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJr
ZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiOTAiLCAwLjEp
OworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1h
cmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMTgwIiwg
MC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRW
YWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1w
bGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJrZXIiLCBzYW1w
bGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUzXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAgIF07CisKKyAg
ICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBh
c3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmds
ZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFk
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdM
ZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOwor
CisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgZGVmcyA9IGNyZWF0ZVNWR0VsZW1lbnQoImRl
ZnMiKTsKKwordmFyIG1hcmtlciA9IGNyZWF0ZVNWR0VsZW1lbnQoIm1hcmtlciIpOworbWFya2Vy
LnNldEF0dHJpYnV0ZSgiaWQiLCAibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJ2aWV3
Qm94IiwgIjAgMCAxMCAxMCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyV2lkdGgiLCAi
NCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VySGVpZ2h0IiwgIjMiKTsKK21hcmtlci5z
ZXRBdHRyaWJ1dGUoIm1hcmtlclVuaXRzIiwgInN0cm9rZVdpZHRoIik7CittYXJrZXIuc2V0QXR0
cmlidXRlKCJyZWZYIiwgIjEiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlkiLCAiNSIpOwor
bWFya2VyLnNldEF0dHJpYnV0ZSgib3JpZW50IiwgIjBkZWciKTsKK2RlZnMuYXBwZW5kQ2hpbGQo
bWFya2VyKTsKKwordmFyIHBvbHlsaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgicG9seWxpbmUiKTsK
K3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiaWQiLCAicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0
dHJpYnV0ZSgicG9pbnRzIiwgIjAsMCAxMCw1IDAsMTAgMSw1Iik7Citwb2x5bGluZS5zZXRBdHRy
aWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK21hcmtlci5hcHBlbmRDaGlsZChwb2x5bGluZSk7CisK
K3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUo
ImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk00NSw1MCBMNTUsNTAiKTsK
K3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCIxMCIpOworcGF0aC5zZXRBdHRyaWJ1
dGUoInN0cm9rZSIsICJncmVlbiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm1hcmtlci1lbmQiLCAi
dXJsKCNtYXJrZXIpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVz
dCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImF0dHJpYnV0ZU5hbWUiLCAib3JpZW50Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVn
aW4iLCAicGF0aC5jbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMHJhZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoInRvIiwgIjIwMGdyYWQiKTsKK21hcmtlci5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RT
VkdFbGVtZW50LmFwcGVuZENoaWxkKGRlZnMpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQo
cGF0aCk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgewor
ICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgibWFya2Vy
Lm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlKCJtYXJrZXIu
b3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIo
KSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwu
dmFsdWUiLCAiOTAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmll
bnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjkwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gc2FtcGxl
MygpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZh
bC52YWx1ZSIsICIxODAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5v
cmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4
ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBb
YW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsi
YW5pbWF0aW9uIiwgMC4wLCAgICAibWFya2VyIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0
aW9uIiwgMi4wLCAgICAibWFya2VyIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwg
My45OTk5LCAibWFya2VyIiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwg
ICAibWFya2VyIiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBl
Y3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0
KCJ0cmlnZ2VyVXBkYXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97492</attachid>
            <date>2011-06-16 14:08:12 -0700</date>
            <delta_ts>2011-06-17 13:24:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62807-20110616230808.patch</filename>
            <type>text/plain</type>
            <size>58184</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MDYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDYtMTYgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0FuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MjgwNworCisgICAgICAgIEZvbGxvdyB1cCBvZiAiU1ZHQW5pbWF0aW9uIHNo
b3VsZCB1c2UgZGlyZWN0IHVuaXQgYW5pbWF0aW9uIGZvciBTVkdMZW5ndGgiOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNjgKKyAgICAgICAgVGhpcyBwYXRjaCBj
b250aW51ZXMgdGhlIGNvbnZlcnNpb24gdG8gdGhlIG5ldyBjb25jZXB0IG9mIFNWR0FuaW1hdG9y
RmFjdG9yeSB3aXRoIFNWR0FuZ2xlLiBXZSBjYW4gYW5pbWF0ZSB0aGUgU1ZHIHByaW1pdGl2ZSBk
YXRhdHlwZSBTVkdBbmdsZQorICAgICAgICB3aXRoIGRpZmZlcmVudCB1bml0IHR5cGVzIG5vdy4K
KworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10
by1ncmFkLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1h
dGlvbi1kZWctdG8tcmFkLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2Fu
Z2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0
aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1yYWQuaHRtbAorICAgICAgICAgICAgICAg
c3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuaHRtbAorICAgICAg
ICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmh0
bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlRWxlbWVudDo6U1ZHQW5pbWF0ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZUVsZW1lbnQ6OmRldGVybWluZUFuaW1hdGVkQXR0cmlidXRlVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZFRvVmFs
dWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9t
QW5kQnlWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0
VG9CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5
UmVzdWx0c1RvVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50Ojpj
YWxjdWxhdGVEaXN0YW5jZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkQW5nbGVBbmltYXRvcjo6flNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcik6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYXJlZFNW
R0xlbmd0aCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVBbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6On5T
VkdBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjphbmds
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0b3JGYWN0b3J5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRvckZhY3Rvcnk6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAqIHN2
Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlTnVtYmVyRnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NW
R1BhcnNlclV0aWxpdGllcy5oOgorCiAyMDExLTA2LTE2ICB1bmEgc2Fib3ZpYyAgPHVuYS5zYWJv
dmljQHBhbG0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA4OTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQ5LDYgKzE2NDksNyBAQCBJRiAoRU5B
QkxFX1NWRykKICAgICAgICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKICAgICAgICAgc3Zn
L1NWR0FuZ2xlLmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKyAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZExl
bmd0aC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAogICAgICAgICBzdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHJldmlzaW9uIDg5MDYzKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzMzMCw2ICszMzMwLDcgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRB
bmdsZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaCBcCiAJU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZp
c2lvbiA4OTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5
KQpAQCAtNTY3Nyw2ICs1Njc3LDcgQEAKICAgICAgICAgICAgICdzdmcvU1ZHQW5nbGUuY3BwJywK
ICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAnLAogICAgICAgICAg
ICAgJ3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNw
cCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDg5MDYzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTMyNzQsNiArMzI3NCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAg
ICAgICAgICAgICBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2
Zy9TVkdBbmdsZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgXAorICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgXAogICAgICAg
ICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlTW90aW9u
RWxlbWVudC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODkwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk5Miw2
ICs5OTIsNyBAQAogCQk0MzlEMzM0NDEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzOUQzMzQxMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICov
OyB9OwogCQk0MzlEMzM0NTEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzlEMzM0MjEz
QTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggKi87IH07CiAJCTQzQzA5MkJD
MTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0MwOTJCQTEyRDlFNEVFMDBBOTg5
QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oICovOyB9OworCQk0M0U1MjkyMjEzQTZBODIx
MDBDRDBENDQgLyogU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0U1MjkyMTEzQTZBODIxMDBDRDBENDQgLyogU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MTUyOTJEMEUx
QUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCAqLzsgfTsKIAkJNDQx
QjA1NUMwQ0Q3N0EyRDAwN0MxRjE4IC8qIERPTUhUTUxFbWJlZEVsZW1lbnRQcml2YXRlLmggaW4g
Q29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NDI5QUFGQjBDQjg0RTg4MDA3NjQ3QzUgLyogRE9NSFRNTEVtYmVkRWxlbWVudFByaXZhdGUu
aCAqLzsgfTsKQEAgLTc0MjgsNiArNzQyOSw3IEBACiAJCTQzOUQzMzQyMTNBNjkxMUMwMEMyMEY0
RiAvKiBTVkdBbmltYXRvckZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
QzA5MkI5MTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0MwOTJCQTEyRDlFNEVFMDBBOTg5
QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQzRTUyOTIxMTNBNkE4MjEwMENEMEQ0NCAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQW5nbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAg
LyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MTUyOTJEMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDI5QUFGQjBDQjg0RTg4
MDA3NjQ3QzUgLyogRE9NSFRNTEVtYmVkRWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxFbWJlZEVsZW1lbnRQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI0OSw2ICsxNzI1MSw3IEBACiAJCQkJQjIyMjc3RTMw
RDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwICovLAogCQkJCUIy
MjI3N0U0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi8sCiAJ
CQkJQjIyMjc3RTUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRs
ICovLAorCQkJCTQzRTUyOTIxMTNBNkE4MjEwMENEMEQ0NCAvKiBTVkdBbmltYXRlZEFuZ2xlLmNw
cCAqLywKIAkJCQkwODdCODQ5NTEyNzJDRUM3MDBBMTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5o
ICovLAogCQkJCUIyMjI3N0U2MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZEFuZ2xlLmlk
bCAqLywKIAkJCQkwODU3OTcwODEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFu
LmggKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDg5MDYz
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNWR0FsdEdseXBoRWxlbWVudC5jcHAiCiAjaW5j
bHVkZSAiU1ZHQW5nbGUuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3Bw
IgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
TGVuZ3RoLmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA4OTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAg
U1ZHQW5pbWF0ZUVsZW1lbnQ6OlNWR0FuaW1hdGVFbGVtZW50KGNvbgogICAgICwgbV9hbmltYXRl
ZEF0dHJpYnV0ZVR5cGUoQW5pbWF0ZWRTdHJpbmcpCiAgICAgLCBtX2Zyb21OdW1iZXIoMCkKICAg
ICAsIG1fdG9OdW1iZXIoMCkKLSAgICAsIG1fYW5pbWF0ZWROdW1iZXIobnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6aW5maW5pdHkoKSkKKyAgICAsIG1fYW5pbWF0ZWROdW1iZXIobnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjppbmZpbml0eSgpKQogICAgICwgbV9hbmltYXRlZFBhdGhQb2ludGVyKDApCiB7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUYWcpIHx8IGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnNldFRhZykgfHwgaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZUNvbG9y
VGFnKSk7CkBAIC02NSwzMCArNjUsNiBAQCBTVkdBbmltYXRlRWxlbWVudDo6flNWR0FuaW1hdGVF
bGVtZW50KCkKIHsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoY29u
c3QgU3RyaW5nJiBpbiwgZG91YmxlJiB2YWx1ZSwgU3RyaW5nJiB1bml0KQotewotICAgIC8vIEZJ
WE1FOiBUaGVzZSBhcmUgZnJvbSB0b3Agb2YgbXkgaGVhZCwgZmlndXJlIG91dCBhbGwgcHJvcGVy
dHkgdHlwZXMgdGhhdCBjYW4gYmUgYW5pbWF0ZWQgYXMgbnVtYmVycy4KLSAgICB1bnNpZ25lZCB1
bml0TGVuZ3RoID0gMDsKLSAgICBTdHJpbmcgcGFyc2UgPSBpbi5zdHJpcFdoaXRlU3BhY2UoKTsK
LSAgICBpZiAocGFyc2UuZW5kc1dpdGgoIiUiKSkKLSAgICAgICAgdW5pdExlbmd0aCA9IDE7Ci0g
ICAgZWxzZSBpZiAocGFyc2UuZW5kc1dpdGgoImRlZyIpIHx8IHBhcnNlLmVuZHNXaXRoKCJyYWQi
KSkKLSAgICAgICAgdW5pdExlbmd0aCA9IDM7Ci0gICAgZWxzZSBpZiAocGFyc2UuZW5kc1dpdGgo
ImdyYWQiKSkKLSAgICAgICAgdW5pdExlbmd0aCA9IDQ7Ci0gICAgU3RyaW5nIG5ld1VuaXQgPSBw
YXJzZS5yaWdodCh1bml0TGVuZ3RoKTsKLSAgICBTdHJpbmcgbnVtYmVyID0gcGFyc2UubGVmdChw
YXJzZS5sZW5ndGgoKSAtIHVuaXRMZW5ndGgpOwotICAgIGlmICgoIXVuaXQuaXNFbXB0eSgpICYm
IG5ld1VuaXQgIT0gdW5pdCkgfHwgbnVtYmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIFVDaGFyIGxhc3QgPSBudW1iZXJbbnVtYmVyLmxlbmd0aCgpIC0gMV07Ci0gICAg
aWYgKGxhc3QgPCAnMCcgfHwgbGFzdCA+ICc5JykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHVuaXQgPSBuZXdVbml0OwotICAgIGJvb2wgb2s7Ci0gICAgdmFsdWUgPSBudW1iZXIudG9Eb3Vi
bGUoJm9rKTsKLSAgICByZXR1cm4gb2s7Ci19Ci0KIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFk
anVzdEZvckN1cnJlbnRDb2xvcihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDb2xvciYgY29s
b3IpCiB7CiAgICAgQVNTRVJUKHRhcmdldEVsZW1lbnQpOwpAQCAtMTQwLDYgKzExNiw4IEBAIEFu
aW1hdGVkQXR0cmlidXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoKICAgICAvLyBGSVhNRTogV2Ug
bmVlZCB0eXBlIHNwZWNpZmljIGFuaW1hdGlvbnMgaW4gdGhlIGZ1dHVyZS4gTWFueSBhbmltYXRp
b25zIG1hcmtlZCBhcyBBbmltYXRlZFN0cmluZyB0b2RheSB3aWxsCiAgICAgLy8gc3VwcG9ydCBj
b250aW51b3VzIGFuaW1hdGlvbnMuCiAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBbmlt
YXRlZEFuZ2xlOgorICAgICAgICByZXR1cm4gQW5pbWF0ZWRBbmdsZTsKICAgICBjYXNlIEFuaW1h
dGVkQm9vbGVhbjoKICAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRpb246CiAgICAgY2FzZSBBbmlt
YXRlZE51bWJlckxpc3Q6CkBAIC0xNTEsNyArMTI5LDYgQEAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBl
IFNWR0FuaW1hdGVFbGVtZW50OgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CiAgICAg
Y2FzZSBBbmltYXRlZExlbmd0aDoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOwotICAg
IGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKICAgICBjYXNl
IEFuaW1hdGVkTnVtYmVyOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXI7CkBAIC0yMDEs
MTcgKzE3OCwxNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAg
ICAgICAgIGlmIChtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZSA9PSBJbmhlcml0VmFsdWUpIHsKICAg
ICAgICAgICAgIFN0cmluZyBmcm9tTnVtYmVyU3RyaW5nOwogICAgICAgICAgICAgYWRqdXN0Rm9y
SW5oZXJpdGFuY2UodGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSgpLCBmcm9tTnVtYmVyU3Ry
aW5nKTsKLSAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQoZnJvbU51bWJl
clN0cmluZywgbV9mcm9tTnVtYmVyLCBtX251bWJlclVuaXQpKQorICAgICAgICAgICAgaWYgKCFw
YXJzZU51bWJlckZyb21TdHJpbmcoZnJvbU51bWJlclN0cmluZywgbV9mcm9tTnVtYmVyLCBmYWxz
ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChtX3Rv
UHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVlKSB7CiAgICAgICAgICAgICBTdHJpbmcg
dG9OdW1iZXJTdHJpbmc7CiAgICAgICAgICAgICBhZGp1c3RGb3JJbmhlcml0YW5jZSh0YXJnZXRF
bGVtZW50LCBhdHRyaWJ1dGVOYW1lKCksIHRvTnVtYmVyU3RyaW5nKTsKLSAgICAgICAgICAgIGlm
ICghcGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQodG9OdW1iZXJTdHJpbmcsIG1fdG9OdW1iZXIsIG1f
bnVtYmVyVW5pdCkpCisgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyh0b051
bWJlclN0cmluZywgbV90b051bWJlciwgZmFsc2UpKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIGRvdWJsZSBudW1iZXI7CisgICAgICAgIGZsb2F0IG51bWJl
cjsKICAgICAgICAgaWYgKGNhbGNNb2RlKCkgPT0gQ2FsY01vZGVEaXNjcmV0ZSkKICAgICAgICAg
ICAgIG51bWJlciA9IGlzSW5GaXJzdEhhbGZPZkFuaW1hdGlvbiA/IG1fZnJvbU51bWJlciA6IG1f
dG9OdW1iZXI7CiAgICAgICAgIGVsc2UKQEAgLTMwOSw2ICsyODYsNyBAQCB2b2lkIFNWR0FuaW1h
dGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDog
ewogICAgICAgICBBU1NFUlQobV9hbmltYXRvcik7CiAgICAgICAgIEFTU0VSVChyZXN1bHRzLT5t
X2FuaW1hdGVkVHlwZSk7CkBAIC0zODAsMTAgKzM1OCw5IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1l
bnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQW5p
bWF0ZWROdW1iZXI6IHsKLSAgICAgICAgbV9udW1iZXJVbml0ID0gU3RyaW5nKCk7Ci0gICAgICAg
IGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5pdCh0b1N0cmluZywgbV90b051bWJlciwgbV9udW1i
ZXJVbml0KSkgeworICAgICAgICBpZiAocGFyc2VOdW1iZXJGcm9tU3RyaW5nKHRvU3RyaW5nLCBt
X3RvTnVtYmVyLCBmYWxzZSkpIHsKICAgICAgICAgICAgIC8vIEZvciB0by1hbmltYXRpb25zIHRo
ZSBmcm9tIG51bWJlciBpcyBjYWxjdWxhdGVkIGxhdGVyCi0gICAgICAgICAgICBpZiAoYW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uIHx8IHBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21T
dHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJVbml0KSkKKyAgICAgICAgICAgIGlmIChhbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gfHwgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKGZyb21T
dHJpbmcsIG1fZnJvbU51bWJlciwgZmFsc2UpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNDA4LDYgKzM4NSw3IEBAIGJvb2wgU1ZH
QW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgfQogICAgICAgICBicmVh
azsKICAgICB9CisgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5n
dGg6IHsKICAgICAgICAgZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVz
KG1fZnJvbVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCB0b1N0cmluZyk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtNDQ5LDE3ICs0MjcsMTcgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6
Y2FsY3VsYXRlRnJvbUFuZAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0
ZWRMZW5ndGg6IHsKICAgICAgICAgZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJvbUFuZEJ5
VmFsdWVzKG1fZnJvbVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCBieVN0cmluZyk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgfQogICAgIGRlZmF1bHQ6Ci0gICAgICAgIG1fbnVtYmVy
VW5pdCA9IFN0cmluZygpOwogICAgICAgICBtX2Zyb21OdW1iZXIgPSAwOwotICAgICAgICBpZiAo
IWZyb21TdHJpbmcuaXNFbXB0eSgpICYmICFwYXJzZU51bWJlclZhbHVlQW5kVW5pdChmcm9tU3Ry
aW5nLCBtX2Zyb21OdW1iZXIsIG1fbnVtYmVyVW5pdCkpCisgICAgICAgIGlmICghZnJvbVN0cmlu
Zy5pc0VtcHR5KCkgJiYgIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhmcm9tU3RyaW5nLCBtX2Zyb21O
dW1iZXIsIGZhbHNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFw
YXJzZU51bWJlclZhbHVlQW5kVW5pdChieVN0cmluZywgbV90b051bWJlciwgbV9udW1iZXJVbml0
KSkKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoYnlTdHJpbmcsIG1fdG9OdW1i
ZXIsIGZhbHNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgbV90b051bWJl
ciArPSBtX2Zyb21OdW1iZXI7CiAgICAgfQpAQCAtNDg0LDEwICs0NjIsOSBAQCB2b2lkIFNWR0Fu
aW1hdGVFbGVtZW50OjpyZXNldFRvQmFzZVZhbHVlCiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
ICAgICAgICAgaWYgKGJhc2VTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX2FuaW1h
dGVkTnVtYmVyID0gMDsKLSAgICAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChwYXJzZU51bWJlclZhbHVl
QW5kVW5pdChiYXNlU3RyaW5nLCBtX2FuaW1hdGVkTnVtYmVyLCBtX251bWJlclVuaXQpKQorICAg
ICAgICBpZiAocGFyc2VOdW1iZXJGcm9tU3RyaW5nKGJhc2VTdHJpbmcsIG1fYW5pbWF0ZWROdW1i
ZXIsIGZhbHNlKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBBbmltYXRlZFBhdGg6IHsKQEAgLTUwMCw4ICs0NzcsMTIgQEAgdm9pZCBTVkdBbmltYXRlRWxl
bWVudDo6cmVzZXRUb0Jhc2VWYWx1ZQogICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAgICAgICAg
IG1fYW5pbWF0ZWRQb2ludHMuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQW5p
bWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOiB7Ci0gICAgICAgIG1fYW5pbWF0
ZWRUeXBlID0gZW5zdXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlU3RyaW5n
KTsKKyAgICAgICAgaWYgKCFtX2FuaW1hdGVkVHlwZSkKKyAgICAgICAgICAgIG1fYW5pbWF0ZWRU
eXBlID0gZW5zdXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlU3RyaW5nKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9hbmltYXRlZFR5cGUtPnNldFZhbHVlQXNTdHJp
bmcoYXR0cmlidXRlTmFtZSgpLCBiYXNlU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBkZWZhdWx0OgpAQCAtNTEzLDExICs0OTQsMTQgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVu
dDo6cmVzZXRUb0Jhc2VWYWx1ZQogdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRz
VG9UYXJnZXQoKQogewogICAgIFN0cmluZyB2YWx1ZVRvQXBwbHk7Ci0gICAgaWYgKG1fYW5pbWF0
ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpCisgICAgc3dpdGNoIChtX2FuaW1hdGVk
QXR0cmlidXRlVHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgdmFsdWVU
b0FwcGx5ID0gbV9hbmltYXRlZENvbG9yLnNlcmlhbGl6ZWQoKTsKLSAgICBlbHNlIGlmIChtX2Fu
aW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikKLSAgICAgICAgdmFsdWVUb0Fw
cGx5ID0gU3RyaW5nOjpudW1iZXIobV9hbmltYXRlZE51bWJlcikgKyBtX251bWJlclVuaXQ7Ci0g
ICAgZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CisgICAgICAgIHZhbHVlVG9B
cHBseSA9IFN0cmluZzo6bnVtYmVyKG1fYW5pbWF0ZWROdW1iZXIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFuaW1hdGVkUGF0aDogewogICAgICAgICBpZiAoIW1fYW5pbWF0ZWRQYXRoUG9p
bnRlciB8fCBtX2FuaW1hdGVkUGF0aFBvaW50ZXItPmlzRW1wdHkoKSkKICAgICAgICAgICAgIHZh
bHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRTdHJpbmc7CiAgICAgICAgIGVsc2UgewpAQCAtNTI4LDEz
ICs1MTIsMTggQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYQogICAg
ICAgICAgICAgU1ZHUGF0aFBhcnNlckZhY3RvcnkqIGZhY3RvcnkgPSBTVkdQYXRoUGFyc2VyRmFj
dG9yeTo6c2VsZigpOwogICAgICAgICAgICAgZmFjdG9yeS0+YnVpbGRTdHJpbmdGcm9tQnl0ZVN0
cmVhbShtX2FuaW1hdGVkUGF0aFBvaW50ZXIsIHZhbHVlVG9BcHBseSwgVW5hbHRlcmVkUGFyc2lu
Zyk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09
IEFuaW1hdGVkUG9pbnRzKQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBBbmltYXRl
ZFBvaW50czoKICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFBvaW50cy5pc0VtcHR5
KCkgPyBtX2FuaW1hdGVkU3RyaW5nIDogbV9hbmltYXRlZFBvaW50cy52YWx1ZUFzU3RyaW5nKCk7
Ci0gICAgZWxzZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRMZW5ndGgp
Ci0gICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRUeXBlLT5sZW5ndGgoKS52YWx1ZUFz
U3RyaW5nKCk7Ci0gICAgZWxzZQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuaW1hdGVkQW5n
bGU6CisgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKKyAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9h
bmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKLSAgICAKKyAgICB9
CiAgICAgc2V0VGFyZ2V0QXR0cmlidXRlQW5pbWF0ZWRWYWx1ZSh2YWx1ZVRvQXBwbHkpOwogfQog
ICAgIApAQCAtNTQ1LDE0ICs1MzQsMTMgQEAgZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1
bGF0ZURpc3RhbgogICAgICAgICByZXR1cm4gLTE7CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPSBkZXRlcm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7CiAgICAg
aWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7Ci0gICAgICAg
IGRvdWJsZSBmcm9tOwotICAgICAgICBkb3VibGUgdG87Ci0gICAgICAgIFN0cmluZyB1bml0Owot
ICAgICAgICBpZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIGZyb20sIHVu
aXQpKQorICAgICAgICBmbG9hdCBmcm9tOworICAgICAgICBmbG9hdCB0bzsKKyAgICAgICAgaWYg
KCFwYXJzZU51bWJlckZyb21TdHJpbmcoZnJvbVN0cmluZywgZnJvbSwgZmFsc2UpKQogICAgICAg
ICAgICAgcmV0dXJuIC0xOwotICAgICAgICBpZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KHRv
U3RyaW5nLCB0bywgdW5pdCkpCisgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHRv
U3RyaW5nLCB0bywgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICByZXR1
cm4gbmFycm93UHJlY2lzaW9uVG9GbG9hdChmYWJzKHRvIC0gZnJvbSkpOworICAgICAgICByZXR1
cm4gZmFicyh0byAtIGZyb20pOwogICAgIH0KICAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5
cGUgPT0gQW5pbWF0ZWRDb2xvcikgewogICAgICAgICBDb2xvciBmcm9tID0gU1ZHQ29sb3I6OmNv
bG9yRnJvbVJHQkNvbG9yU3RyaW5nKGZyb21TdHJpbmcpOwpAQCAtNTYzLDcgKzU1MSw4IEBAIGZs
b2F0IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICAgICAgICAgIHJldHVy
biAtMTsKICAgICAgICAgcmV0dXJuIENvbG9yRGlzdGFuY2UoZnJvbSwgdG8pLmRpc3RhbmNlKCk7
CiAgICAgfQotICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0
aCkKKyAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRBbmdsZQorICAg
ICAgICB8fCBtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGVuc3VyZUFuaW1hdG9yKCktPmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMsIGZyb21T
dHJpbmcsIHRvU3RyaW5nKTsKICAgICByZXR1cm4gLTE7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAkocmV2aXNpb24gODkwNjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsMTAgKzcyLDkg
QEAgcHJpdmF0ZToKIAogICAgIEFuaW1hdGVkUHJvcGVydHlWYWx1ZVR5cGUgbV9mcm9tUHJvcGVy
dHlWYWx1ZVR5cGU7CiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVZhbHVlVHlwZSBtX3RvUHJvcGVydHlW
YWx1ZVR5cGU7Ci0gICAgZG91YmxlIG1fZnJvbU51bWJlcjsKLSAgICBkb3VibGUgbV90b051bWJl
cjsKLSAgICBkb3VibGUgbV9hbmltYXRlZE51bWJlcjsKLSAgICBTdHJpbmcgbV9udW1iZXJVbml0
OworICAgIGZsb2F0IG1fZnJvbU51bWJlcjsKKyAgICBmbG9hdCBtX3RvTnVtYmVyOworICAgIGZs
b2F0IG1fYW5pbWF0ZWROdW1iZXI7CiAgICAgQ29sb3IgbV9mcm9tQ29sb3I7CiAgICAgQ29sb3Ig
bV90b0NvbG9yOwogICAgIENvbG9yIG1fYW5pbWF0ZWRDb2xvcjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkocmV2aXNpb24gODkwNjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBA
CiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSw3ICszNiwyNCBAQCBERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRZKFNWR0FuaW1hdGVkQW5nCiAjZGVmaW5lIERFRklORV9BTklNQVRFRF9BTkdM
RV9NVUxUSVBMRV9XUkFQUEVSUyhPd25lclR5cGUsIERPTUF0dHJpYnV0ZSwgU1ZHRE9NQXR0cmli
dXRlSWRlbnRpZmllciwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXAogREVGSU5FX0FO
SU1BVEVEX1BST1BFUlRZKE93bmVyVHlwZSwgRE9NQXR0cmlidXRlLCBTVkdET01BdHRyaWJ1dGVJ
ZGVudGlmaWVyLCBTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmdsZSwgVXBwZXJQcm9wZXJ0eSwgTG93
ZXJQcm9wZXJ0eSkKIAorI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQorY2xhc3MgU1ZHQW5pbWF0
ZWRBbmdsZUFuaW1hdG9yIDogcHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKKyAgICAK
K3B1YmxpYzoKKyAgICBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3IoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKKyAgICB2aXJ0dWFsIH5TVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3IoKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOworICAgIAorICAg
IHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVk
VHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0
IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZyk7CisgICAgdmlydHVh
bCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYg
ZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29uc3QgU3RyaW5n
JiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJ5U3RyaW5nKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShTVkdTTUlMRWxlbWVudCosIGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUsIE93blB0cjxTVkdBbmlt
YXRlZFR5cGU+JiB0b1ZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgYW5pbWF0ZWRWYWx1
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZyb21Qcm9w
ZXJ0eUluaGVyaXRzLCBib29sIHRvUHJvcGVydHlJbmhlcml0cyk7CisgICAgdmlydHVhbCBmbG9h
dCBjYWxjdWxhdGVEaXN0YW5jZShTVkdTTUlMRWxlbWVudCosIGNvbnN0IFN0cmluZyYgZnJvbVN0
cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZyk7Cit9OwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCisjZW5kaWYgLy8gRU5BQkxFKFNWR19BTklNQVRJT04pCiAjZW5kaWYgLy8gRU5BQkxFKFNW
RykKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
CShyZXZpc2lvbiA4OTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDkgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhB
bmltYXRvcjo6U1ZHQW5pbWF0ZWRMZQogc3RhdGljIGlubGluZSBTVkdMZW5ndGgmIHNoYXJlZFNW
R0xlbmd0aChTVkdMZW5ndGhNb2RlIG1vZGUsIGNvbnN0IFN0cmluZyYgdmFsdWVBc1N0cmluZykK
IHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0xlbmd0aCwgc2hhcmVkTGVuZ3RoLCAoKSk7
Ci0gICAgc2hhcmVkTGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVBc1N0cmluZywgbW9kZSk7
CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgc2hhcmVkTGVuZ3RoLnNldFZhbHVlQXNT
dHJpbmcodmFsdWVBc1N0cmluZywgbW9kZSwgZWMpOworICAgIEFTU0VSVCghZWMpOwogICAgIHJl
dHVybiBzaGFyZWRMZW5ndGg7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlLmgJKHJldmlzaW9uIDg5MDYzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIFNWR0FuaW1h
dGVkVHlwZV9oCiAKICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNp
bmNsdWRlICJTVkdBbmdsZS5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgpAQCAtMzAsMTUgKzMx
LDQwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR0FuaW1hdGVkVHlwZSB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkVHlwZSh0eXBlKSk7Cisg
ICAgfQorICAgIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
TGVuZ3RoKFNWR0xlbmd0aCogbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRMZW5ndGgsIGxlbmd0aCkpOworICAgICAgICBB
U1NFUlQobGVuZ3RoKTsKKyAgICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gYW5pbWF0ZWRU
eXBlID0gY3JlYXRlKEFuaW1hdGVkTGVuZ3RoKTsKKyAgICAgICAgYW5pbWF0ZWRUeXBlLT5tX2Rh
dGEubGVuZ3RoID0gbGVuZ3RoOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlLnJlbGVhc2Uo
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0
ZUFuZ2xlKFNWR0FuZ2xlKiBhbmdsZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChhbmdsZSk7Cisg
ICAgICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IGFuaW1hdGVkVHlwZSA9IGNyZWF0ZShBbmlt
YXRlZEFuZ2xlKTsKKyAgICAgICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5nbGUgPSBhbmdsZTsK
KyAgICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZS5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgdmly
dHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRMZW5ndGgpOwotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKKyAgICAgICAg
c3dpdGNoIChtX3R5cGUpIHsKKyAgICAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKKyAgICAgICAg
ICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQW5pbWF0ZWRBbmdsZToKKyAgICAgICAgICAgIGRlbGV0ZSBtX2RhdGEuYW5nbGU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAg
ICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
QEAgLTQ4LDEyICs3NCw1MiBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRMZW5ndGgpOwogICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7CiAgICAgfQorCisg
ICAgU1ZHQW5nbGUmIGFuZ2xlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRBbmdsZSk7CisgICAgICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlOworICAgIH0KKyAgICAK
KyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG1fdHlw
ZSkgeworICAgICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAgICAgICAgICAgQVNTRVJUKG1f
ZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGgtPnZhbHVlQXNT
dHJpbmcoKTsKKyAgICAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgorICAgICAgICAgICAgQVNTRVJU
KG1fZGF0YS5hbmdsZSk7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhLmFuZ2xlLT52YWx1ZUFz
U3RyaW5nKCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgIH0KKyAgICAKKyAgICBib29sIHNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICAgICAgY2Fz
ZSBBbmltYXRlZExlbmd0aDoKKyAgICAgICAgICAgIEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKKyAg
ICAgICAgICAgIG1fZGF0YS5sZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIFNWR0xlbmd0
aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSwgZWMpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKKyAgICAgICAg
ICAgIEFTU0VSVChtX2RhdGEuYW5nbGUpOworICAgICAgICAgICAgbV9kYXRhLmFuZ2xlLT5zZXRW
YWx1ZUFzU3RyaW5nKHZhbHVlLCBlYyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICFlYzsKKyAgICB9CiAgICAgCiBwcml2YXRl
OgotICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSwgU1ZHTGVu
Z3RoKiBsZW5ndGgpCisgICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0
eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgIHsKLSAgICAgICAgbV9kYXRhLmxlbmd0
aCA9IGxlbmd0aDsKICAgICB9CiAgICAgCiAgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIG1fdHlw
ZTsKQEAgLTY2LDYgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICAvLyBGSVhN
RTogTW9yZSBTVkcgcHJpbWl0aXZlIHR5cGVzIG5lZWQgdG8gYmUgYWRkZWQgc3RlcCBieSBzdGVw
LgogICAgICAgICBTVkdMZW5ndGgqIGxlbmd0aDsKKyAgICAgICAgU1ZHQW5nbGUqIGFuZ2xlOwog
ICAgIH0gbV9kYXRhOwogfTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRvckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
b3JGYWN0b3J5LmgJKHJldmlzaW9uIDg5MDYzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdG9yRmFjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5l
IFNWR0FuaW1hdG9yRmFjdG9yeV9oCiAKICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FO
SU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRMZW5ndGguaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzMsNiArMzQsOCBAQCBw
dWJsaWM6CiAgICAgICAgIHN3aXRjaCAoYXR0cmlidXRlVHlwZSkgewogICAgICAgICBjYXNlIEFu
aW1hdGVkTGVuZ3RoOgogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAg
IGNhc2UgQW5pbWF0ZWRBbmdsZToKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZH
QW5pbWF0ZWRBbmdsZUFuaW1hdG9yKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKSk7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihjb250
ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xlbmd0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5j
cHAJKHJldmlzaW9uIDg5MDYzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMiwxMyArMTMyLDExIEBAIFNWR0xlbmd0aDo6U1ZHTGVuZ3Ro
KFNWR0xlbmd0aE1vZGUgbW9kZSwKICAgICBzZXRWYWx1ZUFzU3RyaW5nKHZhbHVlQXNTdHJpbmcs
IGVjKTsKIH0KICAgICAKLXZvaWQgU1ZHTGVuZ3RoOjpzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0
cmluZyYgdmFsdWVBc1N0cmluZywgU1ZHTGVuZ3RoTW9kZSBtb2RlKQordm9pZCBTVkdMZW5ndGg6
OnNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3RyaW5nLCBTVkdMZW5ndGhN
b2RlIG1vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG1fdmFsdWVJblNwZWNpZmllZFVu
aXRzID0gMDsKICAgICBtX3VuaXQgPSBzdG9yZVVuaXQobW9kZSwgTGVuZ3RoVHlwZU51bWJlcik7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFz
U3RyaW5nLCBlYyk7Ci0gICAgQVNTRVJUKCFlYyk7CiB9CiAKIFNWR0xlbmd0aDo6U1ZHTGVuZ3Ro
KGNvbnN0IFNWR0xlbmd0aCYgb3RoZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCShyZXZp
c2lvbiA4OTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBj
b3B5KQpAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmlu
ZygpIGNvbnN0OwogICAgIHZvaWQgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYsIFNW
R0xlbmd0aE1vZGUpOworICAgIHZvaWQgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmLCBT
VkdMZW5ndGhNb2RlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgCiAgICAgdm9pZCBuZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0LCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2ln
bmVkIHNob3J0LCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAkocmV2aXNpb24g
ODkwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0NywxMyBAQCBib29sIHBhcnNlTnVtYmVyKGNvbnN0IFVD
aGFyKiYgcHRyLCBjb25zCiAgICAgcmV0dXJuIGdlbmVyaWNQYXJzZU51bWJlcihwdHIsIGVuZCwg
bnVtYmVyLCBza2lwKTsKIH0KIAorYm9vbCBwYXJzZU51bWJlckZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIGZsb2F0JiBudW1iZXIsIGJvb2wgc2tpcCkKK3sKKyAgICBjb25zdCBVQ2hh
ciogcHRyID0gc3RyaW5nLmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hhciogZW5kID0gcHRy
ICsgc3RyaW5nLmxlbmd0aCgpOworICAgIHJldHVybiBnZW5lcmljUGFyc2VOdW1iZXIocHRyLCBl
bmQsIG51bWJlciwgc2tpcCk7Cit9CisKIC8vIG9ubHkgdXNlZCB0byBwYXJzZSBsYXJnZUFyY0Zs
YWcgYW5kIHN3ZWVwRmxhZyB3aGljaCBtdXN0IGJlIGEgIjAiIG9yICIxIgogLy8gYW5kIG1pZ2h0
IG5vdCBoYXZlIGFueSB3aGl0ZXNwYWNlL2NvbW1hIGFmdGVyIGl0CiBib29sIHBhcnNlQXJjRmxh
Zyhjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxhZykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHJldmlzaW9uIDg5MDYzKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNWR1BvaW50TGlz
dDsKIAogYm9vbCBwYXJzZU51bWJlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVu
ZCwgZmxvYXQmIG51bWJlciwgYm9vbCBza2lwID0gdHJ1ZSk7Citib29sIHBhcnNlTnVtYmVyRnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmLCBmbG9hdCYgbnVtYmVyLCBib29sIHNraXAgPSB0cnVlKTsK
IGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHJpbmcmIHMsIGZsb2F0JiBo
LCBmbG9hdCYgdik7CiBib29sIHBhcnNlQXJjRmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29uc3Qg
VUNoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MDYzKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIw
MTEtMDYtMTYgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVz
ZSBkaXJlY3QgdW5pdCBhbmltYXRpb24gZm9yIFNWR0FuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjgwNworCisgICAgICAgIFRlc3RzIGFuaW1h
dGlvbiBvZiBTVkdBbmdsZSB3aXRoIGRpZmZlcmVudCB1bml0cy4KKworICAgICAgICAqIHN2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuanM6
IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAg
KHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC5qczogQWRkZWQu
CisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxl
Myk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5qczogQWRkZWQuCisgICAgICAgIChz
YW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAg
IChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEp
OgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1
dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUt
YW5pbWF0aW9uLXJhZC10by1ncmFkLmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAg
ICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0
KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdy
YWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmds
ZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24t
Z3JhZC10by1kZWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1kZWcuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdy
YWQtdG8tcmFkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xl
LWFuaW1hdGlvbi1yYWQtdG8tZGVnLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5p
bWF0aW9uLXJhZC10by1ncmFkLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTE2ICBTdGVwaGVuIFdo
aXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRv
LWdyYWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVn
LXRvLWdyYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcg
MS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBm
cm9tIHB4IHRvIGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXJr
ZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmds
ZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFs
dWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgOTAKK1BB
U1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5v
cmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDE4MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUu
YW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVl
IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVn
LXRvLWdyYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENh
c2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0
Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMg
YW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1h
dGlvbi1kZWctdG8tZ3JhZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
YW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRv
IGNtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXJrZXIub3JpZW50
QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFs
LnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgOTAK
K1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2Vy
Lm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmds
ZS5iYXNlVmFsLnZhbHVlIGlzIDE4MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52
YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFu
aW1hdGlvbi1kZWctdG8tcmFkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8t
cmFkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0
aW9uLWdyYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRp
b24gdGVzdHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmlt
VmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMg
MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJr
ZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5n
bGUuYW5pbVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwu
dmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAK
K1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1n
cmFkLXRvLWRlZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gx
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdy
YWQtdG8tcmFkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHMKKworVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZh
bHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFT
UyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3Jp
ZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5p
bVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUg
aXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1Mg
bWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRv
LXJhZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
YW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRl
Zy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRlZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAK
K1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIu
b3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUu
YmFzZVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMTgwCitQ
QVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9y
aWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1h
dGlvbi1yYWQtdG8tZGVnLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5p
bWF0aW9uLXJhZC10by1ncmFkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUt
YW5pbWF0aW9uLXJhZC10by1ncmFkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0IFNWR0xlbmd0
aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBtYXJr
ZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmds
ZS5hbmltVmFsLnZhbHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZh
bHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDE4MAor
UEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2Vy
Lm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUu
YmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUt
YW5pbWF0aW9uLXJhZC10by1ncmFkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFk
LXRvLWdyYWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZH
QW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZH
IDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9z
dmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2Fu
Z2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1ncmFk
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3NCBAQAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4
IHRvIGNtLiIpOworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVu
dAordmFyIGRlZnMgPSBjcmVhdGVTVkdFbGVtZW50KCJkZWZzIik7CisKK3ZhciBtYXJrZXIgPSBj
cmVhdGVTVkdFbGVtZW50KCJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoImlkIiwgIm1h
cmtlciIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgidmlld0JveCIsICIwIDAgMTAgMTAiKTsKK21h
cmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlcldpZHRoIiwgIjQiKTsKK21hcmtlci5zZXRBdHRyaWJ1
dGUoIm1hcmtlckhlaWdodCIsICIzIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJVbml0
cyIsICJzdHJva2VXaWR0aCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWCIsICIxIik7Citt
YXJrZXIuc2V0QXR0cmlidXRlKCJyZWZZIiwgIjUiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm9y
aWVudCIsICIwZGVnIik7CitkZWZzLmFwcGVuZENoaWxkKG1hcmtlcik7CisKK3ZhciBwb2x5bGlu
ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUo
ImlkIiwgInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoInBvaW50cyIsICIwLDAg
MTAsNSAwLDEwIDEsNSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7
CittYXJrZXIuYXBwZW5kQ2hpbGQocG9seWxpbmUpOworCit2YXIgcGF0aCA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNl
dEF0dHJpYnV0ZSgiZCIsICJNNDUsNTAgTDU1LDUwIik7CitwYXRoLnNldEF0dHJpYnV0ZSgic3Ry
b2tlLXdpZHRoIiwiMTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2UiLCAiZ3JlZW4iKTsK
K3BhdGguc2V0QXR0cmlidXRlKCJtYXJrZXItZW5kIiwgInVybCgjbWFya2VyKSIpOworcGF0aC5z
ZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9
IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIs
ICJhbmltYXRpb24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIm9y
aWVudCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgInBhdGguY2xpY2siKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJm
cm9tIiwgIjBkZWciKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIyMDBncmFkIik7Citt
YXJrZXIuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChk
ZWZzKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHBhdGgpOworCisvLyBTZXR1cCBhbmlt
YXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2Vu
ZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZh
bHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFs
dWUiLCAiMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjkwIiwgMC4xKTsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSIs
ICI5MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUiLCAiMTgwIiwgMC4xKTsK
KyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1
ZSIsICIxODAiLCAwLjEpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25z
dCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVt
ZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1hdGlvbiIsIDAuMCwgICAgIm1h
cmtlciIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgIm1hcmtlciIs
IHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgIm1hcmtlciIsIHNhbXBs
ZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgIm1hcmtlciIsIHNhbXBsZTFdCisg
ICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBC
ZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgNTAp
IiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJh
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVz
dHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRl
Zy10by1yYWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IFNWR0xlbmd0aCBhbmltYXRpb24gZnJvbSBweCB0byBjbS4iKTsKK2NyZWF0ZVNWR1Rlc3RD
YXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBkZWZzID0gY3JlYXRlU1ZHRWxl
bWVudCgiZGVmcyIpOworCit2YXIgbWFya2VyID0gY3JlYXRlU1ZHRWxlbWVudCgibWFya2VyIik7
CittYXJrZXIuc2V0QXR0cmlidXRlKCJpZCIsICJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1
dGUoInZpZXdCb3giLCAiMCAwIDEwIDEwIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJX
aWR0aCIsICI0Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJIZWlnaHQiLCAiMyIpOwor
bWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyVW5pdHMiLCAic3Ryb2tlV2lkdGgiKTsKK21hcmtl
ci5zZXRBdHRyaWJ1dGUoInJlZlgiLCAiMSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWSIs
ICI1Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJvcmllbnQiLCAiMGRlZyIpOworZGVmcy5hcHBl
bmRDaGlsZChtYXJrZXIpOworCit2YXIgcG9seWxpbmUgPSBjcmVhdGVTVkdFbGVtZW50KCJwb2x5
bGluZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJpZCIsICJwb2x5bGluZSIpOworcG9seWxp
bmUuc2V0QXR0cmlidXRlKCJwb2ludHMiLCAiMCwwIDEwLDUgMCwxMCAxLDUiKTsKK3BvbHlsaW5l
LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworbWFya2VyLmFwcGVuZENoaWxkKHBvbHls
aW5lKTsKKwordmFyIHBhdGggPSBjcmVhdGVTVkdFbGVtZW50KCJwYXRoIik7CitwYXRoLnNldEF0
dHJpYnV0ZSgiaWQiLCAicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImQiLCAiTTQ1LDUwIEw1
NSw1MCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIjEwIik7CitwYXRoLnNl
dEF0dHJpYnV0ZSgic3Ryb2tlIiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgibWFya2Vy
LWVuZCIsICJ1cmwoI21hcmtlcikiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4
ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRl
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJvcmllbnQiKTsKK2FuaW1hdGUuc2V0QXR0cmli
dXRlKCJiZWdpbiIsICJwYXRoLmNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwg
IjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIwZGVnIik7CithbmltYXRlLnNl
dEF0dHJpYnV0ZSgidG8iLCAiMy4xNDE1OTI2NXJhZCIpOworbWFya2VyLmFwcGVuZENoaWxkKGFu
aW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVmcyk7Cityb290U1ZHRWxlbWVu
dC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9u
IHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNo
b3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hv
dWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVu
Y3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50
QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3Vn
aCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiOTAiLCAwLjEpOworfQorCitm
dW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmll
bnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMTgwIiwgMC4xKTsKK30K
KworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBb
CisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFj
a10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJrZXIiLCBzYW1wbGUxXSwKKyAg
ICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBzYW1wbGUyXSwKKyAgICAgICAg
WyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmlt
YXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2lu
ZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRp
b24tZ3JhZC10by1kZWcuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5p
bWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1
cCB0ZXN0IGRvY3VtZW50Cit2YXIgZGVmcyA9IGNyZWF0ZVNWR0VsZW1lbnQoImRlZnMiKTsKKwor
dmFyIG1hcmtlciA9IGNyZWF0ZVNWR0VsZW1lbnQoIm1hcmtlciIpOworbWFya2VyLnNldEF0dHJp
YnV0ZSgiaWQiLCAibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgIjAg
MCAxMCAxMCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyV2lkdGgiLCAiNCIpOworbWFy
a2VyLnNldEF0dHJpYnV0ZSgibWFya2VySGVpZ2h0IiwgIjMiKTsKK21hcmtlci5zZXRBdHRyaWJ1
dGUoIm1hcmtlclVuaXRzIiwgInN0cm9rZVdpZHRoIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJy
ZWZYIiwgIjEiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlkiLCAiNSIpOworbWFya2VyLnNl
dEF0dHJpYnV0ZSgib3JpZW50IiwgIjBkZWciKTsKK2RlZnMuYXBwZW5kQ2hpbGQobWFya2VyKTsK
KwordmFyIHBvbHlsaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgicG9seWxpbmUiKTsKK3BvbHlsaW5l
LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgi
cG9pbnRzIiwgIjAsMCAxMCw1IDAsMTAgMSw1Iik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoImZp
bGwiLCAiZ3JlZW4iKTsKK21hcmtlci5hcHBlbmRDaGlsZChwb2x5bGluZSk7CisKK3ZhciBwYXRo
ID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImlkIiwgInBh
dGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk00NSw1MCBMNTUsNTAiKTsKK3BhdGguc2V0
QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCIxMCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9r
ZSIsICJncmVlbiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm1hcmtlci1lbmQiLCAidXJsKCNtYXJr
ZXIpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisK
K3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJp
YnV0ZU5hbWUiLCAib3JpZW50Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAicGF0
aC5jbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5z
ZXRBdHRyaWJ1dGUoImZyb20iLCAiMGdyYWQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIs
ICIxODBkZWciKTsKK21hcmtlci5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50
LmFwcGVuZENoaWxkKGRlZnMpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocGF0aCk7CisK
Ky8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENo
ZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgibWFya2VyLm9yaWVudEFu
Z2xlLmFuaW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5n
bGUuYmFzZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUiLCAi
OTAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5i
YXNlVmFsLnZhbHVlIiwgIjkwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIs
ICIxODAiLCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmds
ZS5iYXNlVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9u
SWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgMC4wLCAgICAibWFya2VyIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4w
LCAgICAibWFya2VyIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAi
bWFya2VyIiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAibWFya2Vy
Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVl
cyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2Vy
VXBkYXRlKDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1h
dGlvbi1ncmFkLXRvLXJhZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2Fu
Z2xlLWFuaW1hdGlvbi1ncmFkLXRvLXJhZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBA
QAorZGVzY3JpcHRpb24oIlRlc3QgU1ZHTGVuZ3RoIGFuaW1hdGlvbiBmcm9tIHB4IHRvIGNtLiIp
OworY3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGRl
ZnMgPSBjcmVhdGVTVkdFbGVtZW50KCJkZWZzIik7CisKK3ZhciBtYXJrZXIgPSBjcmVhdGVTVkdF
bGVtZW50KCJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoImlkIiwgIm1hcmtlciIpOwor
bWFya2VyLnNldEF0dHJpYnV0ZSgidmlld0JveCIsICIwIDAgMTAgMTAiKTsKK21hcmtlci5zZXRB
dHRyaWJ1dGUoIm1hcmtlcldpZHRoIiwgIjQiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtl
ckhlaWdodCIsICIzIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJVbml0cyIsICJzdHJv
a2VXaWR0aCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWCIsICIxIik7CittYXJrZXIuc2V0
QXR0cmlidXRlKCJyZWZZIiwgIjUiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm9yaWVudCIsICIw
ZGVnIik7CitkZWZzLmFwcGVuZENoaWxkKG1hcmtlcik7CisKK3ZhciBwb2x5bGluZSA9IGNyZWF0
ZVNWR0VsZW1lbnQoInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoImlkIiwgInBv
bHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoInBvaW50cyIsICIwLDAgMTAsNSAwLDEw
IDEsNSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CittYXJrZXIu
YXBwZW5kQ2hpbGQocG9seWxpbmUpOworCit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBh
dGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0
ZSgiZCIsICJNNDUsNTAgTDU1LDUwIik7CitwYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRo
IiwiMTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2UiLCAiZ3JlZW4iKTsKK3BhdGguc2V0
QXR0cmlidXRlKCJtYXJrZXItZW5kIiwgInVybCgjbWFya2VyKSIpOworcGF0aC5zZXRBdHRyaWJ1
dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNW
R0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRp
b24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIm9yaWVudCIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgInBhdGguY2xpY2siKTsKK2FuaW1hdGUuc2V0
QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjBn
cmFkIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMy4xNDE1OTI2NXJhZCIpOworbWFy
a2VyLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVm
cyk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0
aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQg
Y29uZGl0aW9ucworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSIsICIwIik7CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVl
IiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5v
dWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAi
OTAiLCAwLjEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7Cisg
ICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUi
LCAiMTgwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVu
dElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJr
ZXIiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBz
YW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUz
XSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAg
IF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVn
aW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIs
IDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3Rz
L3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQt
dG8tZGVnLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVz
dCBTVkdMZW5ndGggYW5pbWF0aW9uIGZyb20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2Fz
ZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgZGVmcyA9IGNyZWF0ZVNWR0VsZW1l
bnQoImRlZnMiKTsKKwordmFyIG1hcmtlciA9IGNyZWF0ZVNWR0VsZW1lbnQoIm1hcmtlciIpOwor
bWFya2VyLnNldEF0dHJpYnV0ZSgiaWQiLCAibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRl
KCJ2aWV3Qm94IiwgIjAgMCAxMCAxMCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyV2lk
dGgiLCAiNCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VySGVpZ2h0IiwgIjMiKTsKK21h
cmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlclVuaXRzIiwgInN0cm9rZVdpZHRoIik7CittYXJrZXIu
c2V0QXR0cmlidXRlKCJyZWZYIiwgIjEiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlkiLCAi
NSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgib3JpZW50IiwgIjBkZWciKTsKK2RlZnMuYXBwZW5k
Q2hpbGQobWFya2VyKTsKKwordmFyIHBvbHlsaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgicG9seWxp
bmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiaWQiLCAicG9seWxpbmUiKTsKK3BvbHlsaW5l
LnNldEF0dHJpYnV0ZSgicG9pbnRzIiwgIjAsMCAxMCw1IDAsMTAgMSw1Iik7Citwb2x5bGluZS5z
ZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK21hcmtlci5hcHBlbmRDaGlsZChwb2x5bGlu
ZSk7CisKK3ZhciBwYXRoID0gY3JlYXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRy
aWJ1dGUoImlkIiwgInBhdGgiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk00NSw1MCBMNTUs
NTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCIxMCIpOworcGF0aC5zZXRB
dHRyaWJ1dGUoInN0cm9rZSIsICJncmVlbiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm1hcmtlci1l
bmQiLCAidXJsKCNtYXJrZXIpIik7CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVj
dXRlVGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAib3JpZW50Iik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiYmVnaW4iLCAicGF0aC5jbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0
cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMHJhZCIpOworYW5pbWF0ZS5zZXRB
dHRyaWJ1dGUoInRvIiwgIjE4MGRlZyIpOworbWFya2VyLmFwcGVuZENoaWxkKGFuaW1hdGUpOwor
cm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVmcyk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJt
YXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoIm1h
cmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5p
bVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2Vy
Lm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiOTAiLCAwLjEpOworfQorCitmdW5jdGlvbiBz
YW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5h
bmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFy
a2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMTgwIiwgMC4xKTsKK30KKworZnVuY3Rp
b24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAg
IC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAg
ICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJrZXIiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0
LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0
KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRp
bWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRv
LWdyYWQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVzdCBTVkdMZW5ndGggYW5pbWF0aW9uIGZy
b20gcHggdG8gY20uIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRv
Y3VtZW50Cit2YXIgZGVmcyA9IGNyZWF0ZVNWR0VsZW1lbnQoImRlZnMiKTsKKwordmFyIG1hcmtl
ciA9IGNyZWF0ZVNWR0VsZW1lbnQoIm1hcmtlciIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgiaWQi
LCAibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgIjAgMCAxMCAxMCIp
OworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyV2lkdGgiLCAiNCIpOworbWFya2VyLnNldEF0
dHJpYnV0ZSgibWFya2VySGVpZ2h0IiwgIjMiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtl
clVuaXRzIiwgInN0cm9rZVdpZHRoIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJyZWZYIiwgIjEi
KTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlkiLCAiNSIpOworbWFya2VyLnNldEF0dHJpYnV0
ZSgib3JpZW50IiwgIjBkZWciKTsKK2RlZnMuYXBwZW5kQ2hpbGQobWFya2VyKTsKKwordmFyIHBv
bHlsaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJp
YnV0ZSgiaWQiLCAicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgicG9pbnRzIiwg
IjAsMCAxMCw1IDAsMTAgMSw1Iik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3Jl
ZW4iKTsKK21hcmtlci5hcHBlbmRDaGlsZChwb2x5bGluZSk7CisKK3ZhciBwYXRoID0gY3JlYXRl
U1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdGgiKTsKK3Bh
dGguc2V0QXR0cmlidXRlKCJkIiwgIk00NSw1MCBMNTUsNTAiKTsKK3BhdGguc2V0QXR0cmlidXRl
KCJzdHJva2Utd2lkdGgiLCIxMCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsICJncmVl
biIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm1hcmtlci1lbmQiLCAidXJsKCNtYXJrZXIpIik7Citw
YXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBhbmlt
YXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
ImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUi
LCAib3JpZW50Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAicGF0aC5jbGljayIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImZyb20iLCAiMHJhZCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjIwMGdyYWQi
KTsKK21hcmtlci5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENo
aWxkKGRlZnMpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocGF0aCk7CisKKy8vIFNldHVw
IGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRp
YWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1W
YWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZh
bC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUiLCAiOTAiLCAwLjEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZh
bHVlIiwgIjkwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIxODAiLCAw
LjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFs
LnZhbHVlIiwgIjE4MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUs
IGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAg
ICAibWFya2VyIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAibWFy
a2VyIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAibWFya2VyIiwg
c2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAibWFya2VyIiwgc2FtcGxl
MV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisK
Ky8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUw
LCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97646</attachid>
            <date>2011-06-17 13:24:28 -0700</date>
            <delta_ts>2011-06-17 17:13:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62807-20110617222425.patch</filename>
            <type>text/plain</type>
            <size>64513</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MTUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDYtMTcgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdBbmltYXRpb24gc2hvdWxkIHVzZSBkaXJlY3QgdW5pdCBhbmlt
YXRpb24gZm9yIFNWR0FuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MjgwNworCisgICAgICAgIEZvbGxvdyB1cCBvZiAiU1ZHQW5pbWF0aW9uIHNo
b3VsZCB1c2UgZGlyZWN0IHVuaXQgYW5pbWF0aW9uIGZvciBTVkdMZW5ndGgiOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNjgKKyAgICAgICAgVGhpcyBwYXRjaCBj
b250aW51ZXMgdGhlIGNvbnZlcnNpb24gdG8gdGhlIG5ldyBjb25jZXB0IG9mIFNWR0FuaW1hdG9y
RmFjdG9yeSB3aXRoIFNWR0FuZ2xlLiBXZSBjYW4gYW5pbWF0ZSB0aGUgU1ZHIHByaW1pdGl2ZSBk
YXRhdHlwZSBTVkdBbmdsZQorICAgICAgICB3aXRoIGRpZmZlcmVudCB1bml0IHR5cGVzIG5vdy4K
KyAgICAgICAgUmVtb3ZlZCBudW1iZXIgYW5kIHVuaXQgcGFyc2VyIGZyb20gU1ZHQW5pbWF0ZUVs
ZW1lbnQuIFRoaXMgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgIFRlc3RzOiBzdmcv
YW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuaHRtbAorICAgICAgICAg
ICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuaHRtbAor
ICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8t
ZGVnLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlv
bi1ncmFkLXRvLXJhZC5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdhbmds
ZS1hbmltYXRpb24tcmFkLXRvLWRlZy5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9u
cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkIFNWR0FuaW1hdGVkQW5nbGUuY3BwCisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAq
IHN2Zy9TVkdBbGxJbk9uZS5jcHA6IERpdHRvLiAKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwOiBNYWtlIHVzZSBvZiBTVkdBbmltYXRvciBmb3IgQW5pbWF0ZWRBbmdsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpTVkdBbmltYXRlRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5lQW5pbWF0ZWRBdHRy
aWJ1dGVUeXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFs
dWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJl
c3VsdHNUb1RhcmdldCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1l
bnQ6OmNhbGN1bGF0ZURpc3RhbmNlKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaDogQWRkZWQgU1ZHQW5p
bWF0ZWRBbmdsZUFuaW1hdG9yIGZvciBhbmltYXRpb24gb2YgU1ZHQW5nbGVzLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRBbmdsZUFuaW1h
dG9yKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2hhcmVkU1ZHTGVuZ3RoKTogVXNlIGFuIEV4Y2VwdGlvbkNvZGUgZm9yIFNWR0xlbmd0
aDo6c2V0VmFsdWVBc1N0cmluZy4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6flNWR0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6OmFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVB
c1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNT
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5
cGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3Ro
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVBc1N0cmluZyk6IEFk
ZGVkIGFuIEV4Y2VwdGlvbkNvZGUgZm9yIGNvbnNpc3RlbmN5IHJlYXNvbnMgYW5kIGFzIHByZXBh
cmF0aW9uIGZvciBmdXR1cmUgZXJyb3IgaGFuZGxpbmcuCisgICAgICAgICogc3ZnL1NWR0xlbmd0
aC5oOiAKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBhcnNlTnVtYmVyRnJvbVN0cmluZyk6IEFkZGVkIG51bWJlciBwYXJzZXIgZm9yIFN0
cmluZyBvYmplY3RzLgorICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaDoKKwogMjAx
MS0wNi0xNyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lv
biA4OTE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xNjUxLDYgKzE2NTEsNyBAQCBJRiAoRU5BQkxFX1NWRykKICAgICAgICAgc3ZnL1NWR0Fs
dEdseXBoRWxlbWVudC5jcHAKICAgICAgICAgc3ZnL1NWR0FuZ2xlLmNwcAogICAgICAgICBzdmcv
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKyAgICAgICAgc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
Y3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKICAgICAgICAgc3ZnL1NWR0Fu
aW1hdGVFbGVtZW50LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDg5MTUxKQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzMz
NSw2ICszMzM1LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5nbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEJvb2xlYW4uaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
aCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA4OTE1MSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNTY4Miw2ICs1NjgyLDcgQEAKICAg
ICAgICAgICAgICdzdmcvU1ZHQW5nbGUuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcCcsCiAgICAgICAg
ICAgICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0Fu
aW1hdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmgn
LApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDg5MTUxKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTMyNzksNiArMzI3OSw3IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICAgICAgICBzdmcvU1ZHQWx0R2x5cGhF
bGVtZW50LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmdsZS5jcHAgXAogICAgICAgICAg
ICAgICBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAorICAgICAgICAgICAgICBzdmcv
U1ZHQW5pbWF0ZWRBbmdsZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCBcCiAgICAg
ICAgICAgICAgIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgXApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gODkxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkyNSw2ICs5MjUsNyBAQAogCQk0MUY1ODRDNzEwNDY1
MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpT
TWVzc2FnZVBvcnRDdXN0b20uaCAqLzsgfTsKIAkJNDFGQTMwM0UxMzE2QzI5QzAwQzBCRkM1IC8q
IFJlbmRlck1lZGlhQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29u
dHJvbHMuY3BwICovOyB9OwogCQk0MUZBMzAzRjEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVk
aWFDb250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLzsg
fTsKKwkJNDMzQ0M1Q0MxM0FCRTY4MTAwMjNFNUE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMzQ0M1Q0IxM0FC
RTY4MTAwMjNFNUE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuY3BwICovOyB9OwogCQk0MzU4RTg2QTEz
NjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4NjcxMzYwQTIxNjAwRTQ3
NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJNDM1OEU4NkIxMzYw
QTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzU4RTg2ODEzNjBBMjE2MDBFNDc0
OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLzsgfTsKIAkJNDM1OEU4NkMxMzYw
QTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM1OEU4NjkxMzYwQTIx
NjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnRJbnRlcm5hbC5oICovOyB9OwpA
QCAtNzMzNiw2ICs3MzM3LDcgQEAKIAkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVz
c2FnZVBvcnRDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXNz
YWdlUG9ydEN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzQzEz
MTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1l
ZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWVk
aWFDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzNDQzVDQjEzQUJF
NjgxMDAyM0U1QTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZEFuZ2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDM1OEU4NjcxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg2ODEz
NjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY5MTM2MEEyMTYwMEU0NzQ4
QyAvKiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI2MSw2ICsxNzI2Myw3IEBACiAJCQkJQjIy
Mjc3RTMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwICovLAog
CQkJCUIyMjI3N0U0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50Lmgg
Ki8sCiAJCQkJQjIyMjc3RTUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1l
bnQuaWRsICovLAorCQkJCTQzM0NDNUNCMTNBQkU2ODEwMDIzRTVBNyAvKiBTVkdBbmltYXRlZEFu
Z2xlLmNwcCAqLywKIAkJCQkwODdCODQ5NTEyNzJDRUM3MDBBMTQ0MTcgLyogU1ZHQW5pbWF0ZWRB
bmdsZS5oICovLAogCQkJCUIyMjI3N0U2MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZEFu
Z2xlLmlkbCAqLywKIAkJCQkwODU3OTcwODEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRC
b29sZWFuLmggKi8sCkBAIC0yNTYzMiw2ICsyNTYzNSw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5
QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIx
MzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk4NUJC
OTZEMTNBOTQwNTgwMDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTQzM0NDNUNDMTNBQkU2ODEwMDIzRTVBNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCShyZXZpc2lv
biA4OTE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTVkdBbHRHbHlwaEVsZW1lbnQuY3Bw
IgogI2luY2x1ZGUgIlNWR0FuZ2xlLmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmNwcCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmNwcCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZExlbmd0aC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkocmV2aXNpb24gODkxNTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1
MCw3IEBAIFNWR0FuaW1hdGVFbGVtZW50OjpTVkdBbmltYXRlRWxlbWVudChjb24KICAgICAsIG1f
YW5pbWF0ZWRBdHRyaWJ1dGVUeXBlKEFuaW1hdGVkU3RyaW5nKQogICAgICwgbV9mcm9tTnVtYmVy
KDApCiAgICAgLCBtX3RvTnVtYmVyKDApCi0gICAgLCBtX2FuaW1hdGVkTnVtYmVyKG51bWVyaWNf
bGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpCisgICAgLCBtX2FuaW1hdGVkTnVtYmVyKG51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSkKICAgICAsIG1fYW5pbWF0ZWRQYXRoUG9pbnRl
cigwKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVGFnKSB8fCBo
YXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpIHx8IGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1h
dGVDb2xvclRhZykpOwpAQCAtNjUsMzAgKzY1LDYgQEAgU1ZHQW5pbWF0ZUVsZW1lbnQ6On5TVkdB
bmltYXRlRWxlbWVudCgpCiB7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlTnVtYmVyVmFsdWVBbmRV
bml0KGNvbnN0IFN0cmluZyYgaW4sIGRvdWJsZSYgdmFsdWUsIFN0cmluZyYgdW5pdCkKLXsKLSAg
ICAvLyBGSVhNRTogVGhlc2UgYXJlIGZyb20gdG9wIG9mIG15IGhlYWQsIGZpZ3VyZSBvdXQgYWxs
IHByb3BlcnR5IHR5cGVzIHRoYXQgY2FuIGJlIGFuaW1hdGVkIGFzIG51bWJlcnMuCi0gICAgdW5z
aWduZWQgdW5pdExlbmd0aCA9IDA7Ci0gICAgU3RyaW5nIHBhcnNlID0gaW4uc3RyaXBXaGl0ZVNw
YWNlKCk7Ci0gICAgaWYgKHBhcnNlLmVuZHNXaXRoKCIlIikpCi0gICAgICAgIHVuaXRMZW5ndGgg
PSAxOwotICAgIGVsc2UgaWYgKHBhcnNlLmVuZHNXaXRoKCJkZWciKSB8fCBwYXJzZS5lbmRzV2l0
aCgicmFkIikpCi0gICAgICAgIHVuaXRMZW5ndGggPSAzOwotICAgIGVsc2UgaWYgKHBhcnNlLmVu
ZHNXaXRoKCJncmFkIikpCi0gICAgICAgIHVuaXRMZW5ndGggPSA0OwotICAgIFN0cmluZyBuZXdV
bml0ID0gcGFyc2UucmlnaHQodW5pdExlbmd0aCk7Ci0gICAgU3RyaW5nIG51bWJlciA9IHBhcnNl
LmxlZnQocGFyc2UubGVuZ3RoKCkgLSB1bml0TGVuZ3RoKTsKLSAgICBpZiAoKCF1bml0LmlzRW1w
dHkoKSAmJiBuZXdVbml0ICE9IHVuaXQpIHx8IG51bWJlci5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBVQ2hhciBsYXN0ID0gbnVtYmVyW251bWJlci5sZW5ndGgoKSAtIDFd
OwotICAgIGlmIChsYXN0IDwgJzAnIHx8IGxhc3QgPiAnOScpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB1bml0ID0gbmV3VW5pdDsKLSAgICBib29sIG9rOwotICAgIHZhbHVlID0gbnVtYmVy
LnRvRG91YmxlKCZvayk7Ci0gICAgcmV0dXJuIG9rOwotfQotCiB2b2lkIFNWR0FuaW1hdGVFbGVt
ZW50OjphZGp1c3RGb3JDdXJyZW50Q29sb3IoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ29s
b3ImIGNvbG9yKQogewogICAgIEFTU0VSVCh0YXJnZXRFbGVtZW50KTsKQEAgLTE0MCw2ICsxMTYs
OCBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZHQW5pbWF0ZUVsZW1lbnQ6CiAgICAgLy8gRklY
TUU6IFdlIG5lZWQgdHlwZSBzcGVjaWZpYyBhbmltYXRpb25zIGluIHRoZSBmdXR1cmUuIE1hbnkg
YW5pbWF0aW9ucyBtYXJrZWQgYXMgQW5pbWF0ZWRTdHJpbmcgdG9kYXkgd2lsbAogICAgIC8vIHN1
cHBvcnQgY29udGludW91cyBhbmltYXRpb25zLgogICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgQW5pbWF0ZWRBbmdsZToKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkQW5nbGU7CiAgICAgY2Fz
ZSBBbmltYXRlZEJvb2xlYW46CiAgICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgogICAgIGNh
c2UgQW5pbWF0ZWROdW1iZXJMaXN0OgpAQCAtMTUxLDcgKzEyOSw2IEBAIEFuaW1hdGVkQXR0cmli
dXRlVHlwZSBTVkdBbmltYXRlRWxlbWVudDoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3RyaW5n
OwogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgICAgIHJldHVybiBBbmltYXRlZExlbmd0
aDsKLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZEludGVnZXI6CiAg
ICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyOwpA
QCAtMjAxLDE3ICsxNzgsMTcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5p
bWF0ZQogICAgICAgICBpZiAobV9mcm9tUHJvcGVydHlWYWx1ZVR5cGUgPT0gSW5oZXJpdFZhbHVl
KSB7CiAgICAgICAgICAgICBTdHJpbmcgZnJvbU51bWJlclN0cmluZzsKICAgICAgICAgICAgIGFk
anVzdEZvckluaGVyaXRhbmNlKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUoKSwgZnJvbU51
bWJlclN0cmluZyk7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZy
b21OdW1iZXJTdHJpbmcsIG1fZnJvbU51bWJlciwgbV9udW1iZXJVbml0KSkKKyAgICAgICAgICAg
IGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKGZyb21OdW1iZXJTdHJpbmcsIG1fZnJvbU51bWJl
ciwgZmFsc2UpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBp
ZiAobV90b1Byb3BlcnR5VmFsdWVUeXBlID09IEluaGVyaXRWYWx1ZSkgewogICAgICAgICAgICAg
U3RyaW5nIHRvTnVtYmVyU3RyaW5nOwogICAgICAgICAgICAgYWRqdXN0Rm9ySW5oZXJpdGFuY2Uo
dGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSgpLCB0b051bWJlclN0cmluZyk7Ci0gICAgICAg
ICAgICBpZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KHRvTnVtYmVyU3RyaW5nLCBtX3RvTnVt
YmVyLCBtX251bWJlclVuaXQpKQorICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJp
bmcodG9OdW1iZXJTdHJpbmcsIG1fdG9OdW1iZXIsIGZhbHNlKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBkb3VibGUgbnVtYmVyOworICAgICAgICBmbG9h
dCBudW1iZXI7CiAgICAgICAgIGlmIChjYWxjTW9kZSgpID09IENhbGNNb2RlRGlzY3JldGUpCiAg
ICAgICAgICAgICBudW1iZXIgPSBpc0luRmlyc3RIYWxmT2ZBbmltYXRpb24gPyBtX2Zyb21OdW1i
ZXIgOiBtX3RvTnVtYmVyOwogICAgICAgICBlbHNlCkBAIC0zMDksNiArMjg2LDcgQEAgdm9pZCBT
VkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGg6IHsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0b3IpOwogICAgICAgICBBU1NFUlQocmVz
dWx0cy0+bV9hbmltYXRlZFR5cGUpOwpAQCAtMzgwLDEwICszNTgsOSBAQCBib29sIFNWR0FuaW1h
dGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIEFuaW1hdGVkTnVtYmVyOiB7Ci0gICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwot
ICAgICAgICBpZiAocGFyc2VOdW1iZXJWYWx1ZUFuZFVuaXQodG9TdHJpbmcsIG1fdG9OdW1iZXIs
IG1fbnVtYmVyVW5pdCkpIHsKKyAgICAgICAgaWYgKHBhcnNlTnVtYmVyRnJvbVN0cmluZyh0b1N0
cmluZywgbV90b051bWJlciwgZmFsc2UpKSB7CiAgICAgICAgICAgICAvLyBGb3IgdG8tYW5pbWF0
aW9ucyB0aGUgZnJvbSBudW1iZXIgaXMgY2FsY3VsYXRlZCBsYXRlcgotICAgICAgICAgICAgaWYg
KGFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiB8fCBwYXJzZU51bWJlclZhbHVlQW5kVW5p
dChmcm9tU3RyaW5nLCBtX2Zyb21OdW1iZXIsIG1fbnVtYmVyVW5pdCkpCisgICAgICAgICAgICBp
ZiAoYW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uIHx8IHBhcnNlTnVtYmVyRnJvbVN0cmlu
Zyhmcm9tU3RyaW5nLCBtX2Zyb21OdW1iZXIsIGZhbHNlKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTQwOCwxMCArMzg1LDEwIEBA
IGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgfQogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aDogeworICAgIGNhc2Ug
QW5pbWF0ZWRBbmdsZToKKyAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgICAgICBlbnN1cmVB
bmltYXRvcigpLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUs
IGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQ0OSwxNyArNDI2LDE1IEBAIGJv
b2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGg6IHsKKyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAgY2FzZSBBbmltYXRlZExlbmd0
aDoKICAgICAgICAgZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKG1f
ZnJvbVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCBieVN0cmluZyk7CiAgICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgfQogICAgIGRlZmF1bHQ6Ci0gICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0
cmluZygpOwogICAgICAgICBtX2Zyb21OdW1iZXIgPSAwOwotICAgICAgICBpZiAoIWZyb21TdHJp
bmcuaXNFbXB0eSgpICYmICFwYXJzZU51bWJlclZhbHVlQW5kVW5pdChmcm9tU3RyaW5nLCBtX2Zy
b21OdW1iZXIsIG1fbnVtYmVyVW5pdCkpCisgICAgICAgIGlmICghZnJvbVN0cmluZy5pc0VtcHR5
KCkgJiYgIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhmcm9tU3RyaW5nLCBtX2Zyb21OdW1iZXIsIGZh
bHNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFwYXJzZU51bWJl
clZhbHVlQW5kVW5pdChieVN0cmluZywgbV90b051bWJlciwgbV9udW1iZXJVbml0KSkKKyAgICAg
ICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoYnlTdHJpbmcsIG1fdG9OdW1iZXIsIGZhbHNl
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgbV90b051bWJlciArPSBtX2Zy
b21OdW1iZXI7CiAgICAgfQpAQCAtNDg0LDEwICs0NTksOSBAQCB2b2lkIFNWR0FuaW1hdGVFbGVt
ZW50OjpyZXNldFRvQmFzZVZhbHVlCiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAg
aWYgKGJhc2VTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX2FuaW1hdGVkTnVtYmVy
ID0gMDsKLSAgICAgICAgICAgIG1fbnVtYmVyVW5pdCA9IFN0cmluZygpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChwYXJzZU51bWJlclZhbHVlQW5kVW5pdChi
YXNlU3RyaW5nLCBtX2FuaW1hdGVkTnVtYmVyLCBtX251bWJlclVuaXQpKQorICAgICAgICBpZiAo
cGFyc2VOdW1iZXJGcm9tU3RyaW5nKGJhc2VTdHJpbmcsIG1fYW5pbWF0ZWROdW1iZXIsIGZhbHNl
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbmltYXRl
ZFBhdGg6IHsKQEAgLTUwMCw4ICs0NzQsMTIgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVz
ZXRUb0Jhc2VWYWx1ZQogICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAgICAgICAgIG1fYW5pbWF0
ZWRQb2ludHMuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQW5pbWF0ZWRBbmds
ZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOiB7Ci0gICAgICAgIG1fYW5pbWF0ZWRUeXBlID0g
ZW5zdXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlU3RyaW5nKTsKKyAgICAg
ICAgaWYgKCFtX2FuaW1hdGVkVHlwZSkKKyAgICAgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gZW5z
dXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlU3RyaW5nKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9hbmltYXRlZFR5cGUtPnNldFZhbHVlQXNTdHJpbmcoYXR0cmli
dXRlTmFtZSgpLCBiYXNlU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkZWZh
dWx0OgpAQCAtNTEzLDExICs0OTEsMTQgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRU
b0Jhc2VWYWx1ZQogdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQo
KQogewogICAgIFN0cmluZyB2YWx1ZVRvQXBwbHk7Ci0gICAgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1
dGVUeXBlID09IEFuaW1hdGVkQ29sb3IpCisgICAgc3dpdGNoIChtX2FuaW1hdGVkQXR0cmlidXRl
VHlwZSkgeworICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgdmFsdWVUb0FwcGx5ID0g
bV9hbmltYXRlZENvbG9yLnNlcmlhbGl6ZWQoKTsKLSAgICBlbHNlIGlmIChtX2FuaW1hdGVkQXR0
cmlidXRlVHlwZSA9PSBBbmltYXRlZE51bWJlcikKLSAgICAgICAgdmFsdWVUb0FwcGx5ID0gU3Ry
aW5nOjpudW1iZXIobV9hbmltYXRlZE51bWJlcikgKyBtX251bWJlclVuaXQ7Ci0gICAgZWxzZSBp
ZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRQYXRoKSB7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CisgICAgICAgIHZhbHVlVG9BcHBseSA9IFN0
cmluZzo6bnVtYmVyKG1fYW5pbWF0ZWROdW1iZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFuaW1hdGVkUGF0aDogewogICAgICAgICBpZiAoIW1fYW5pbWF0ZWRQYXRoUG9pbnRlciB8fCBt
X2FuaW1hdGVkUGF0aFBvaW50ZXItPmlzRW1wdHkoKSkKICAgICAgICAgICAgIHZhbHVlVG9BcHBs
eSA9IG1fYW5pbWF0ZWRTdHJpbmc7CiAgICAgICAgIGVsc2UgewpAQCAtNTI4LDEzICs1MDksMTgg
QEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYQogICAgICAgICAgICAg
U1ZHUGF0aFBhcnNlckZhY3RvcnkqIGZhY3RvcnkgPSBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6c2Vs
ZigpOwogICAgICAgICAgICAgZmFjdG9yeS0+YnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbShtX2Fu
aW1hdGVkUGF0aFBvaW50ZXIsIHZhbHVlVG9BcHBseSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgaWYgKG1fYW5pbWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVk
UG9pbnRzKQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoK
ICAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFBvaW50cy5pc0VtcHR5KCkgPyBtX2Fu
aW1hdGVkU3RyaW5nIDogbV9hbmltYXRlZFBvaW50cy52YWx1ZUFzU3RyaW5nKCk7Ci0gICAgZWxz
ZSBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpCi0gICAgICAg
IHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRUeXBlLT5sZW5ndGgoKS52YWx1ZUFzU3RyaW5nKCk7
Ci0gICAgZWxzZQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAg
Y2FzZSBBbmltYXRlZExlbmd0aDoKKyAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFR5
cGUtPnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKICAgICAg
ICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFN0cmluZzsKLSAgICAKKyAgICB9CiAgICAgc2V0
VGFyZ2V0QXR0cmlidXRlQW5pbWF0ZWRWYWx1ZSh2YWx1ZVRvQXBwbHkpOwogfQogICAgIApAQCAt
NTQ1LDE0ICs1MzEsMTMgQEAgZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3Rh
bgogICAgICAgICByZXR1cm4gLTE7CiAgICAgbV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPSBkZXRl
cm1pbmVBbmltYXRlZEF0dHJpYnV0ZVR5cGUodGFyZ2V0RWxlbWVudCk7CiAgICAgaWYgKG1fYW5p
bWF0ZWRBdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkTnVtYmVyKSB7Ci0gICAgICAgIGRvdWJsZSBm
cm9tOwotICAgICAgICBkb3VibGUgdG87Ci0gICAgICAgIFN0cmluZyB1bml0OwotICAgICAgICBp
ZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KGZyb21TdHJpbmcsIGZyb20sIHVuaXQpKQorICAg
ICAgICBmbG9hdCBmcm9tOworICAgICAgICBmbG9hdCB0bzsKKyAgICAgICAgaWYgKCFwYXJzZU51
bWJlckZyb21TdHJpbmcoZnJvbVN0cmluZywgZnJvbSwgZmFsc2UpKQogICAgICAgICAgICAgcmV0
dXJuIC0xOwotICAgICAgICBpZiAoIXBhcnNlTnVtYmVyVmFsdWVBbmRVbml0KHRvU3RyaW5nLCB0
bywgdW5pdCkpCisgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHRvU3RyaW5nLCB0
bywgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICByZXR1cm4gbmFycm93
UHJlY2lzaW9uVG9GbG9hdChmYWJzKHRvIC0gZnJvbSkpOworICAgICAgICByZXR1cm4gZmFicyh0
byAtIGZyb20pOwogICAgIH0KICAgICBpZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5p
bWF0ZWRDb2xvcikgewogICAgICAgICBDb2xvciBmcm9tID0gU1ZHQ29sb3I6OmNvbG9yRnJvbVJH
QkNvbG9yU3RyaW5nKGZyb21TdHJpbmcpOwpAQCAtNTYzLDcgKzU0OCw3IEBAIGZsb2F0IFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICAgICAgICAgIHJldHVybiAtMTsKICAg
ICAgICAgcmV0dXJuIENvbG9yRGlzdGFuY2UoZnJvbSwgdG8pLmRpc3RhbmNlKCk7CiAgICAgfQot
ICAgIGlmIChtX2FuaW1hdGVkQXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0aCkKKyAgICBp
ZiAobV9hbmltYXRlZEF0dHJpYnV0ZVR5cGUgPT0gQW5pbWF0ZWRBbmdsZSB8fCBtX2FuaW1hdGVk
QXR0cmlidXRlVHlwZSA9PSBBbmltYXRlZExlbmd0aCkKICAgICAgICAgcmV0dXJuIGVuc3VyZUFu
aW1hdG9yKCktPmNhbGN1bGF0ZURpc3RhbmNlKHRoaXMsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsK
ICAgICByZXR1cm4gLTE7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuaAkocmV2aXNpb24gODkxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsMTAgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAg
IEFuaW1hdGVkUHJvcGVydHlWYWx1ZVR5cGUgbV9mcm9tUHJvcGVydHlWYWx1ZVR5cGU7CiAgICAg
QW5pbWF0ZWRQcm9wZXJ0eVZhbHVlVHlwZSBtX3RvUHJvcGVydHlWYWx1ZVR5cGU7Ci0gICAgZG91
YmxlIG1fZnJvbU51bWJlcjsKLSAgICBkb3VibGUgbV90b051bWJlcjsKLSAgICBkb3VibGUgbV9h
bmltYXRlZE51bWJlcjsKLSAgICBTdHJpbmcgbV9udW1iZXJVbml0OworICAgIGZsb2F0IG1fZnJv
bU51bWJlcjsKKyAgICBmbG9hdCBtX3RvTnVtYmVyOworICAgIGZsb2F0IG1fYW5pbWF0ZWROdW1i
ZXI7CiAgICAgQ29sb3IgbV9mcm9tQ29sb3I7CiAgICAgQ29sb3IgbV90b0NvbG9yOwogICAgIENv
bG9yIG1fYW5pbWF0ZWRDb2xvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEFuZ2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRB
bmdsZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRB
bmdsZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FO
SU1BVElPTikKKyNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0
b3IoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmKQorICAg
IDogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IoQW5pbWF0ZWRBbmdsZSwgY29udGV4dEVsZW1lbnQp
Cit7Cit9CisKK3N0YXRpYyBpbmxpbmUgU1ZHQW5nbGUmIHNoYXJlZFNWR0FuZ2xlKGNvbnN0IFN0
cmluZyYgdmFsdWVBc1N0cmluZykKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0FuZ2xl
LCBzaGFyZWRBbmdsZSwgKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHNoYXJl
ZEFuZ2xlLnNldFZhbHVlQXNTdHJpbmcodmFsdWVBc1N0cmluZywgZWMpOworICAgIEFTU0VSVCgh
ZWMpOworICAgIHJldHVybiBzaGFyZWRBbmdsZTsKK30KKworUGFzc093blB0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBhbmltYXRl
ZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlKG5ldyBTVkdBbmdsZSgpKTsKKyAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbmltYXRlZFR5cGUtPmFuZ2xlKCkuc2V0VmFs
dWVBc1N0cmluZyhzdHJpbmcsIGVjKTsKKyAgICBBU1NFUlQoIWVjKTsKKyAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlLnJlbGVhc2UoKTsKK30KKwordm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6
OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwg
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNv
bnN0IFN0cmluZyYgdG9TdHJpbmcpCit7CisgICAgZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJpbmco
ZnJvbVN0cmluZyk7CisgICAgdG8gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKHRvU3RyaW5nKTsKK30K
Kwordm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVl
cyhPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4m
IHRvLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpCit7
CisgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOworICAgIAorICAgIGZyb20gPSBjb25zdHJ1
Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyhi
eVN0cmluZyk7CisgICAgCisgICAgU1ZHQW5nbGUmIGZyb21BbmdsZSA9IGZyb20tPmFuZ2xlKCk7
CisgICAgU1ZHQW5nbGUmIHRvQW5nbGUgPSB0by0+YW5nbGUoKTsKKyAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICB0b0FuZ2xlLnNldFZhbHVlKHRvQW5nbGUudmFsdWUoKSArIGZyb21Bbmds
ZS52YWx1ZSgpKTsKKyAgICBBU1NFUlQoIWVjKTsKK30KKwordm9pZCBTVkdBbmltYXRlZEFuZ2xl
QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoU1ZHU01JTEVsZW1lbnQqIHNtaWxFbGVt
ZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93blB0cjxTVkdBbmlt
YXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG8sIE93blB0cjxTVkdB
bmltYXRlZFR5cGU+JiBhbmltYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3BlcnR5SW5oZXJpdHMsIGJvb2wgdG9Q
cm9wZXJ0eUluaGVyaXRzKQoreworICAgIEFTU0VSVChzbWlsRWxlbWVudCk7CisgICAgQVNTRVJU
KG1fY29udGV4dEVsZW1lbnQpOworICAgIFNWR0FuaW1hdGVFbGVtZW50KiBhbmltYXRpb25FbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQqPihzbWlsRWxlbWVudCk7CisgICAg
CisgICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlID0gYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpOworICAgIC8vIFRvIGFuaW1hdGlvbiB1c2VzIGNvbnRyaWJ1dGlvbnMgZnJv
bSB0aGUgbG93ZXIgcHJpb3JpdHkgYW5pbWF0aW9ucyBhcyB0aGUgYmFzZSB2YWx1ZS4KKyAgICAv
LyBGSVhNRTogQXZvaWQgc3RyaW5nIHBhcnNpbmcuCisgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0g
VG9BbmltYXRpb24pCisgICAgICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGFuaW1hdGVk
LT5hbmdsZSgpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgCisgICAgLy8gUmVwbGFjZSAnaW5oZXJp
dCcgYnkgdGhlaXIgY29tcHV0ZWQgcHJvcGVydHkgdmFsdWVzLgorICAgIGZsb2F0IG51bWJlcjsK
KyAgICBmbG9hdCBmcm9tQW5nbGUgPSBmcm9tLT5hbmdsZSgpLnZhbHVlKCk7CisgICAgZmxvYXQg
dG9BbmdsZSA9IHRvLT5hbmdsZSgpLnZhbHVlKCk7CisgICAgCisgICAgaWYgKGZyb21Qcm9wZXJ0
eUluaGVyaXRzKSB7CisgICAgICAgIFN0cmluZyBmcm9tQW5nbGVTdHJpbmc7CisgICAgICAgIGFu
aW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlKG1fY29udGV4dEVsZW1lbnQsIGFu
aW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgZnJvbUFuZ2xlU3RyaW5nKTsKKyAgICAg
ICAgZnJvbUFuZ2xlID0gc2hhcmVkU1ZHQW5nbGUoZnJvbUFuZ2xlU3RyaW5nKS52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAodG9Qcm9wZXJ0eUluaGVyaXRzKSB7CisgICAgICAgIFN0cmluZyB0b0Fu
Z2xlU3RyaW5nOworICAgICAgICBhbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5j
ZShtX2NvbnRleHRFbGVtZW50LCBhbmltYXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHRv
QW5nbGVTdHJpbmcpOworICAgICAgICB0b0FuZ2xlID0gc2hhcmVkU1ZHQW5nbGUodG9BbmdsZVN0
cmluZykudmFsdWUoKTsgCisgICAgfQorICAgIAorICAgIGlmIChhbmltYXRpb25FbGVtZW50LT5j
YWxjTW9kZSgpID09IENhbGNNb2RlRGlzY3JldGUpCisgICAgICAgIG51bWJlciA9IHBlcmNlbnRh
Z2UgPCAwLjVmID8gZnJvbUFuZ2xlIDogdG9BbmdsZTsKKyAgICBlbHNlCisgICAgICAgIG51bWJl
ciA9ICh0b0FuZ2xlIC0gZnJvbUFuZ2xlKSAqIHBlcmNlbnRhZ2UgKyBmcm9tQW5nbGU7CisgICAg
CisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGNvcnJlY3QgZm9yIHZhbHVlcyBhbmltYXRpb24u
CisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3Vu
dCkKKyAgICAgICAgbnVtYmVyICs9IHRvQW5nbGUgKiByZXBlYXRDb3VudDsKKyAgICBTVkdBbmds
ZSYgYW5pbWF0ZWRTVkdBbmdsZSA9IGFuaW1hdGVkLT5hbmdsZSgpOworICAgIGlmIChhbmltYXRp
b25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgYW5pbWF0aW9uTW9kZSAhPSBUb0FuaW1hdGlvbikg
eworICAgICAgICBmbG9hdCBhbmltYXRlZFNWR0FuZ2xlVmFsdWUgPSBhbmltYXRlZFNWR0FuZ2xl
LnZhbHVlKCk7CisgICAgICAgIGFuaW1hdGVkU1ZHQW5nbGVWYWx1ZSArPSBudW1iZXI7CisgICAg
ICAgIGFuaW1hdGVkU1ZHQW5nbGUuc2V0VmFsdWUoYW5pbWF0ZWRTVkdBbmdsZVZhbHVlKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgYW5pbWF0ZWRTVkdBbmdsZS5zZXRWYWx1ZShudW1iZXIpOworfQor
CitmbG9hdCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKFNWR1NN
SUxFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3Ry
aW5nKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIFNWR0FuZ2xlIGZyb20gPSBT
VkdBbmdsZSgpOworICAgIGZyb20uc2V0VmFsdWVBc1N0cmluZyhmcm9tU3RyaW5nLCBlYyk7Cisg
ICAgQVNTRVJUKCFlYyk7CisgICAgU1ZHQW5nbGUgdG8gPSBTVkdBbmdsZSgpOworICAgIHRvLnNl
dFZhbHVlQXNTdHJpbmcodG9TdHJpbmcsIGVjKTsKKyAgICBBU1NFUlQoIWVjKTsKKyAgICByZXR1
cm4gZmFic2YodG8udmFsdWUoKSAtIGZyb20udmFsdWUoKSk7Cit9CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCShyZXZpc2lvbiA4OTE1MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAK
IAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKKyNpbmNsdWRlICJTVkdB
bmltYXRlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDcgKzM2LDI0IEBAIERFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVFkoU1ZHQW5pbWF0ZWRBbmcKICNkZWZpbmUgREVGSU5FX0FOSU1BVEVEX0FOR0xF
X01VTFRJUExFX1dSQVBQRVJTKE93bmVyVHlwZSwgRE9NQXR0cmlidXRlLCBTVkdET01BdHRyaWJ1
dGVJZGVudGlmaWVyLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBERUZJTkVfQU5J
TUFURURfUFJPUEVSVFkoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIFNWR0RPTUF0dHJpYnV0ZUlk
ZW50aWZpZXIsIFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuZ2xlLCBVcHBlclByb3BlcnR5LCBMb3dl
clByb3BlcnR5KQogCisjaWYgRU5BQkxFKFNWR19BTklNQVRJT04pCitjbGFzcyBTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3IgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgeworICAgIAor
cHVibGljOgorICAgIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOworICAgIHZpcnR1YWwgflNWR0FuaW1hdGVk
QW5nbGVBbmltYXRvcigpIHsgfQorICAgIAorICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmlt
YXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRU
eXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29uc3Qg
U3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBm
cm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcm
IGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwg
dW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4mIHRvVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZFZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3Bl
cnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0eUluaGVyaXRzKTsKKyAgICB2aXJ0dWFsIGZsb2F0
IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKK307CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHX0FOSU1BVElPTikKICNlbmRpZiAvLyBFTkFCTEUoU1ZH
KQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJ
KHJldmlzaW9uIDg5MTUxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3Ro
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsOSBAQCBTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpTVkdBbmltYXRlZExlCiBzdGF0aWMgaW5saW5lIFNWR0xlbmd0aCYgc2hhcmVkU1ZH
TGVuZ3RoKFNWR0xlbmd0aE1vZGUgbW9kZSwgY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3RyaW5nKQog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU1ZHTGVuZ3RoLCBzaGFyZWRMZW5ndGgsICgpKTsK
LSAgICBzaGFyZWRMZW5ndGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBtb2RlKTsK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBzaGFyZWRMZW5ndGguc2V0VmFsdWVBc1N0
cmluZyh2YWx1ZUFzU3RyaW5nLCBtb2RlLCBlYyk7CisgICAgQVNTRVJUKCFlYyk7CiAgICAgcmV0
dXJuIHNoYXJlZExlbmd0aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5
cGUuaAkocmV2aXNpb24gODkxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICNkZWZpbmUgU1ZHQW5pbWF0
ZWRUeXBlX2gKIAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKICNpbmNs
dWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAKQEAgLTMwLDMwICsz
MCw5NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTVkdBbmltYXRlZFR5cGUgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0eXBlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZFR5cGUodHlwZSkpOwor
ICAgIH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQW5n
bGUoU1ZHQW5nbGUqIGFuZ2xlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFuZ2xlKTsKKyAgICAg
ICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gYW5pbWF0ZWRUeXBlID0gY3JlYXRlKEFuaW1hdGVk
QW5nbGUpOworICAgICAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5hbmdsZSA9IGFuZ2xlOworICAg
ICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlLnJlbGVhc2UoKTsKKyAgICB9CisKICAgICBzdGF0aWMg
UGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aChTVkdMZW5ndGgqIGxlbmd0
aCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRUeXBlKEFu
aW1hdGVkTGVuZ3RoLCBsZW5ndGgpKTsKKyAgICAgICAgQVNTRVJUKGxlbmd0aCk7CisgICAgICAg
IE93blB0cjxTVkdBbmltYXRlZFR5cGU+IGFuaW1hdGVkVHlwZSA9IGNyZWF0ZShBbmltYXRlZExl
bmd0aCk7CisgICAgICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aCA9IGxlbmd0aDsKKyAg
ICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZS5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgdmlydHVh
bCB+U1ZHQW5pbWF0ZWRUeXBlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRMZW5ndGgpOwotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKKyAgICAgICAgc3dp
dGNoIChtX3R5cGUpIHsKKyAgICAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgorICAgICAgICAgICAg
ZGVsZXRlIG1fZGF0YS5hbmdsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFu
aW1hdGVkTGVuZ3RoOgorICAgICAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAg
QW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAg
ICAKKworICAgIFNWR0FuZ2xlJiBhbmdsZSgpCisgICAgeworICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkQW5nbGUpOworICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmdsZTsKKyAgICB9
CisKICAgICBTVkdMZW5ndGgmIGxlbmd0aCgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkTGVuZ3RoKTsKICAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwogICAg
IH0KICAgICAKKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCisgICAgeworICAgICAgICBzd2l0
Y2ggKG1fdHlwZSkgeworICAgICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAgICAgICAgICBB
U1NFUlQobV9kYXRhLmFuZ2xlKTsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGEuYW5nbGUtPnZh
bHVlQXNTdHJpbmcoKTsKKyAgICAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKKyAgICAgICAgICAg
IEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGEubGVuZ3Ro
LT52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgIH0KKyAgICAKKyAgICBib29sIHNldFZhbHVlQXNTdHJpbmcoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAg
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAg
ICAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgorICAgICAgICAgICAgQVNTRVJUKG1fZGF0YS5hbmds
ZSk7CisgICAgICAgICAgICBtX2RhdGEuYW5nbGUtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIGVj
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgorICAg
ICAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgbV9kYXRhLmxlbmd0
aC0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0
ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpLCBlYyk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICFlYzsKKyAgICB9CisgICAg
CiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlw
ZSwgU1ZHTGVuZ3RoKiBsZW5ndGgpCisgICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkQXR0cmli
dXRlVHlwZSB0eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgIHsKLSAgICAgICAgbV9k
YXRhLmxlbmd0aCA9IGxlbmd0aDsKICAgICB9CiAgICAgCiAgICAgQW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlIG1fdHlwZTsKQEAgLTY1LDYgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIC8vIEZJWE1FOiBNb3JlIFNWRyBwcmltaXRpdmUgdHlwZXMgbmVlZCB0byBi
ZSBhZGRlZCBzdGVwIGJ5IHN0ZXAuCisgICAgICAgIFNWR0FuZ2xlKiBhbmdsZTsKICAgICAgICAg
U1ZHTGVuZ3RoKiBsZW5ndGg7CiAgICAgfSBtX2RhdGE7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gODkxNTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIx
LDcgQEAKICNkZWZpbmUgU1ZHQW5pbWF0b3JGYWN0b3J5X2gKIAogI2lmIEVOQUJMRShTVkcpICYm
IEVOQUJMRShTVkdfQU5JTUFUSU9OKQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
MSw2ICszMiw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgYW5pbWF0
aW9uIHN1cHBvcnQgZm9yIGFsbCBTVkcgdW5pdHMuCiAgICAgICAgIHN3aXRjaCAoYXR0cmlidXRl
VHlwZSkgeworICAgICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAgICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcihjb250ZXh0RWxlbWVudCwgYXR0
cmlidXRlTmFtZSkpOwogICAgICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKGNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lKSk7CiAgICAgICAgIGRlZmF1bHQ6CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoLmNwcAkocmV2aXNpb24gODkxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDEzICsxMzIsMTEgQEAgU1ZHTGVuZ3Ro
OjpTVkdMZW5ndGgoU1ZHTGVuZ3RoTW9kZSBtb2RlLAogICAgIHNldFZhbHVlQXNTdHJpbmcodmFs
dWVBc1N0cmluZywgZWMpOwogfQogICAgIAotdm9pZCBTVkdMZW5ndGg6OnNldFZhbHVlQXNTdHJp
bmcoY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3RyaW5nLCBTVkdMZW5ndGhNb2RlIG1vZGUpCit2b2lk
IFNWR0xlbmd0aDo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlQXNTdHJpbmcs
IFNWR0xlbmd0aE1vZGUgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHMgPSAwOwogICAgIG1fdW5pdCA9IHN0b3JlVW5pdChtb2RlLCBMZW5ndGhU
eXBlTnVtYmVyKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBzZXRWYWx1ZUFzU3Ry
aW5nKHZhbHVlQXNTdHJpbmcsIGVjKTsKLSAgICBBU1NFUlQoIWVjKTsKIH0KIAogU1ZHTGVuZ3Ro
OjpTVkdMZW5ndGgoY29uc3QgU1ZHTGVuZ3RoJiBvdGhlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoLmgJKHJldmlzaW9uIDg5MTUxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5o
CSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB2
YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFZhbHVlQXNTdHJpbmcoY29uc3Qg
U3RyaW5nJiwgU1ZHTGVuZ3RoTW9kZSk7CisgICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0
IFN0cmluZyYsIFNWR0xlbmd0aE1vZGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAKICAgICB2b2lk
IG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQsIGZsb2F0IHZhbHVlSW5TcGVj
aWZpZWRVbml0cywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgY29udmVydFRvU3BlY2lmaWVk
VW5pdHModW5zaWduZWQgc2hvcnQsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHQsIEV4Y2VwdGlv
bkNvZGUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
CShyZXZpc2lvbiA4OTE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDEzIEBAIGJvb2wgcGFyc2VOdW1i
ZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnMKICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTnVtYmVy
KHB0ciwgZW5kLCBudW1iZXIsIHNraXApOwogfQogCitib29sIHBhcnNlTnVtYmVyRnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZywgZmxvYXQmIG51bWJlciwgYm9vbCBza2lwKQoreworICAg
IGNvbnN0IFVDaGFyKiBwdHIgPSBzdHJpbmcuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFy
KiBlbmQgPSBwdHIgKyBzdHJpbmcubGVuZ3RoKCk7CisgICAgcmV0dXJuIGdlbmVyaWNQYXJzZU51
bWJlcihwdHIsIGVuZCwgbnVtYmVyLCBza2lwKTsKK30KKwogLy8gb25seSB1c2VkIHRvIHBhcnNl
IGxhcmdlQXJjRmxhZyBhbmQgc3dlZXBGbGFnIHdoaWNoIG11c3QgYmUgYSAiMCIgb3IgIjEiCiAv
LyBhbmQgbWlnaHQgbm90IGhhdmUgYW55IHdoaXRlc3BhY2UvY29tbWEgYWZ0ZXIgaXQKIGJvb2wg
cGFyc2VBcmNGbGFnKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBib29sJiBm
bGFnKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAkocmV2aXNp
b24gODkxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
U1ZHUG9pbnRMaXN0OwogCiBib29sIHBhcnNlTnVtYmVyKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25z
dCBVQ2hhciogZW5kLCBmbG9hdCYgbnVtYmVyLCBib29sIHNraXAgPSB0cnVlKTsKK2Jvb2wgcGFy
c2VOdW1iZXJGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYsIGZsb2F0JiBudW1iZXIsIGJvb2wgc2tp
cCA9IHRydWUpOwogYm9vbCBwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cmluZyYg
cywgZmxvYXQmIGgsIGZsb2F0JiB2KTsKIGJvb2wgcGFyc2VBcmNGbGFnKGNvbnN0IFVDaGFyKiYg
cHRyLCBjb25zdCBVQ2hhciogZW5kLCBib29sJiBmbGFnKTsKIApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
ODkxNTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSw1NSBAQAorMjAxMS0wNi0xNyAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWR0FuaW1hdGlv
biBzaG91bGQgdXNlIGRpcmVjdCB1bml0IGFuaW1hdGlvbiBmb3IgU1ZHQW5nbGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODA3CisKKyAgICAgICAg
VGVzdHMgYW5pbWF0aW9uIG9mIFNWR0FuZ2xlIHdpdGggZGlmZmVyZW50IHVuaXRzLgorCisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWct
dG8tZ3JhZC5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIp
OgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tcmFk
LmpzOiBBZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAg
ICAgIChzYW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChz
YW1wbGUzKToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUz
KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuanM6IEFkZGVkLgorICAgICAg
ICAoc2FtcGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAg
ICAgICAoZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanM6IEFkZGVkLgorICAgICAgICAoc2Ft
cGxlMSk6CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAo
ZXhlY3V0ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlv
bi1kZWctdG8tZ3JhZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1k
ZWctdG8tcmFkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z2FuZ2xl
LWFuaW1hdGlvbi1ncmFkLXRvLWRlZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1ncmFkLXRvLWRlZy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1yYWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1h
bmltYXRpb24tZ3JhZC10by1yYWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRlZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFk
LXRvLWdyYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMTcg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hyb21pdW0gTWFj
IHJlYmFzZWxpbmVzIGZvciByODkwOTEuCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8t
Z3JhZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisK
K1Rlc3RzIFNWR0FuZ2xlIGFuaW1hdGlvbiBmcm9tIGRlZyB0byBncmFkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1Mg
bWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVu
dEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1W
YWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlz
IDE4MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1h
cmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdyYWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLWdy
YWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2Fu
Z2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
dmdhbmdsZS1hbmltYXRpb24tZGVnLXRvLXJhZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE5IEBACitTVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3Rz
IFNWR0FuZ2xlIGFuaW1hdGlvbiBmcm9tIGRlZyB0byByYWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAK
K1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIu
b3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUu
YmFzZVZhbC52YWx1ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMTgwCitQ
QVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9y
aWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tcmFkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1h
dGlvbi1kZWctdG8tcmFkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5p
bWF0aW9uLWdyYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1kZWctZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUt
YW5pbWF0aW9uLWdyYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0cyBTVkdBbmds
ZSBhbmltYXRpb24gZnJvbSBncmFkIHRvIGRlZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBt
YXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRB
bmdsZS5hbmltVmFsLnZhbHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFs
LnZhbHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDE4
MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFy
a2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5n
bGUuYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5n
bGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24t
Z3JhZC10by1kZWcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
U1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1kZWcuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0
aW9uLWdyYWQtdG8tcmFkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1yYWQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5p
bWF0aW9uLWdyYWQtdG8tcmFkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
OSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0cyBTVkdBbmdsZSBh
bmltYXRpb24gZnJvbSBncmFkIHRvIHJhZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBtYXJr
ZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmds
ZS5hbmltVmFsLnZhbHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZh
bHVlIGlzIDkwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDE4MAor
UEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2Vy
Lm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUu
YmFzZVZhbC52YWx1ZSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUt
YW5pbWF0aW9uLWdyYWQtdG8tcmFkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tZ3Jh
ZC10by1yYWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZH
QW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZH
IDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9z
dmdhbmdsZS1hbmltYXRpb24tZ3JhZC10by1yYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9u
LXJhZC10by1kZWctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlv
bi1yYWQtdG8tZGVnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAor
U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0cyBTVkdBbmdsZSBhbmltYXRp
b24gZnJvbSByYWQgdG8gZGVnLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmll
bnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1W
YWwudmFsdWUgaXMgOTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMg
OTAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUgaXMgMTgwCitQQVNTIG1h
cmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIGlzIDE4MAorUEFTUyBtYXJrZXIub3JpZW50
QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFs
LnZhbHVlIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRp
b24tcmFkLXRvLWRlZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWRlZy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVz
dENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25U
ZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFt
aWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFu
aW1hdGlvbi1yYWQtdG8tZGVnLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZ3Jh
ZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8t
Z3JhZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1NWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdHMgU1ZHQW5nbGUgYW5pbWF0aW9uIGZyb20g
cmFkIHRvIGdyYWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtl
ci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xl
LmJhc2VWYWwudmFsdWUgaXMgMAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1
ZSBpcyA5MAorUEFTUyBtYXJrZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSBpcyA5MAorUEFT
UyBtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSBpcyAxODAKK1BBU1MgbWFya2VyLm9y
aWVudEFuZ2xlLmJhc2VWYWwudmFsdWUgaXMgMTgwCitQQVNTIG1hcmtlci5vcmllbnRBbmdsZS5h
bmltVmFsLnZhbHVlIGlzIDAKK1BBU1MgbWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUg
aXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQt
dG8tZ3JhZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZ3JhZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1ncmFkLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RD
YXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBh
bmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0
aW9uLXJhZC10by1ncmFkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24t
ZGVnLXRvLWdyYWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tZ3JhZC5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1h
bmltYXRpb24tZGVnLXRvLWdyYWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQgQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0cyBTVkdBbmdsZSBhbmltYXRpb24gZnJvbSBkZWcgdG8gZ3JhZC4iKTsK
K2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBkZWZz
ID0gY3JlYXRlU1ZHRWxlbWVudCgiZGVmcyIpOworCit2YXIgbWFya2VyID0gY3JlYXRlU1ZHRWxl
bWVudCgibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJpZCIsICJtYXJrZXIiKTsKK21h
cmtlci5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCAiMCAwIDEwIDEwIik7CittYXJrZXIuc2V0QXR0
cmlidXRlKCJtYXJrZXJXaWR0aCIsICI0Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJI
ZWlnaHQiLCAiMyIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyVW5pdHMiLCAic3Ryb2tl
V2lkdGgiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlgiLCAiMSIpOworbWFya2VyLnNldEF0
dHJpYnV0ZSgicmVmWSIsICI1Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJvcmllbnQiLCAiMGRl
ZyIpOworZGVmcy5hcHBlbmRDaGlsZChtYXJrZXIpOworCit2YXIgcG9seWxpbmUgPSBjcmVhdGVT
VkdFbGVtZW50KCJwb2x5bGluZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJpZCIsICJwb2x5
bGluZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJwb2ludHMiLCAiMCwwIDEwLDUgMCwxMCAx
LDUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworbWFya2VyLmFw
cGVuZENoaWxkKHBvbHlsaW5lKTsKKwordmFyIHBhdGggPSBjcmVhdGVTVkdFbGVtZW50KCJwYXRo
Iik7CitwYXRoLnNldEF0dHJpYnV0ZSgiaWQiLCAicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUo
ImQiLCAiTTQ1LDUwIEw1NSw1MCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIs
IjEwIik7CitwYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwgImdyZWVuIik7CitwYXRoLnNldEF0
dHJpYnV0ZSgibWFya2VyLWVuZCIsICJ1cmwoI21hcmtlcikiKTsKK3BhdGguc2V0QXR0cmlidXRl
KCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdF
bGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9u
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJvcmllbnQiKTsKK2Fu
aW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJwYXRoLmNsaWNrIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIwZGVn
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwZ3JhZCIpOworbWFya2VyLmFwcGVu
ZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVmcyk7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QK
K2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9u
cworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIwIik7
CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjAiKTsK
K30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJr
ZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiOTAiLCAwLjEp
OworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1h
cmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMTgwIiwg
MC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRW
YWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1w
bGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJrZXIiLCBzYW1w
bGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBzYW1wbGUyXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUzXSwKKyAgICAg
ICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAgIF07CisKKyAg
ICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBh
c3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWRlZy10by1yYWQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xl
LWFuaW1hdGlvbi1kZWctdG8tcmFkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1kZWctdG8tcmFkLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVzdHMgU1ZHQW5n
bGUgYW5pbWF0aW9uIGZyb20gZGVnIHRvIHJhZC4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisK
Ky8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBkZWZzID0gY3JlYXRlU1ZHRWxlbWVudCgiZGVm
cyIpOworCit2YXIgbWFya2VyID0gY3JlYXRlU1ZHRWxlbWVudCgibWFya2VyIik7CittYXJrZXIu
c2V0QXR0cmlidXRlKCJpZCIsICJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInZpZXdC
b3giLCAiMCAwIDEwIDEwIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJXaWR0aCIsICI0
Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJIZWlnaHQiLCAiMyIpOworbWFya2VyLnNl
dEF0dHJpYnV0ZSgibWFya2VyVW5pdHMiLCAic3Ryb2tlV2lkdGgiKTsKK21hcmtlci5zZXRBdHRy
aWJ1dGUoInJlZlgiLCAiMSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWSIsICI1Iik7Citt
YXJrZXIuc2V0QXR0cmlidXRlKCJvcmllbnQiLCAiMGRlZyIpOworZGVmcy5hcHBlbmRDaGlsZCht
YXJrZXIpOworCit2YXIgcG9seWxpbmUgPSBjcmVhdGVTVkdFbGVtZW50KCJwb2x5bGluZSIpOwor
cG9seWxpbmUuc2V0QXR0cmlidXRlKCJpZCIsICJwb2x5bGluZSIpOworcG9seWxpbmUuc2V0QXR0
cmlidXRlKCJwb2ludHMiLCAiMCwwIDEwLDUgMCwxMCAxLDUiKTsKK3BvbHlsaW5lLnNldEF0dHJp
YnV0ZSgiZmlsbCIsICJncmVlbiIpOworbWFya2VyLmFwcGVuZENoaWxkKHBvbHlsaW5lKTsKKwor
dmFyIHBhdGggPSBjcmVhdGVTVkdFbGVtZW50KCJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgi
aWQiLCAicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImQiLCAiTTQ1LDUwIEw1NSw1MCIpOwor
cGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIjEwIik7CitwYXRoLnNldEF0dHJpYnV0
ZSgic3Ryb2tlIiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgibWFya2VyLWVuZCIsICJ1
cmwoI21hcmtlcikiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0
KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiYXR0cmlidXRlTmFtZSIsICJvcmllbnQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdp
biIsICJwYXRoLmNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIwZGVnIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgidG8iLCAiMy4xNDE1OTI2NXJhZCIpOworbWFya2VyLmFwcGVuZENoaWxkKGFuaW1hdGUpOwor
cm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVmcyk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRD
aGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEo
KSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJt
YXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoIm1h
cmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2Ft
cGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5p
bVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2Vy
Lm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiOTAiLCAwLjEpOworfQorCitmdW5jdGlvbiBz
YW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5h
bmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFy
a2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMTgwIiwgMC4xKTsKK30KKworZnVuY3Rp
b24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAg
IC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAg
ICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJrZXIiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0
LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0
KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRp
bWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tZ3JhZC10
by1kZWcuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tZGVnLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVzdHMgU1ZHQW5nbGUgYW5pbWF0aW9uIGZy
b20gZ3JhZCB0byBkZWcuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0
IGRvY3VtZW50Cit2YXIgZGVmcyA9IGNyZWF0ZVNWR0VsZW1lbnQoImRlZnMiKTsKKwordmFyIG1h
cmtlciA9IGNyZWF0ZVNWR0VsZW1lbnQoIm1hcmtlciIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgi
aWQiLCAibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgIjAgMCAxMCAx
MCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFya2VyV2lkdGgiLCAiNCIpOworbWFya2VyLnNl
dEF0dHJpYnV0ZSgibWFya2VySGVpZ2h0IiwgIjMiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1h
cmtlclVuaXRzIiwgInN0cm9rZVdpZHRoIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJyZWZYIiwg
IjEiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlkiLCAiNSIpOworbWFya2VyLnNldEF0dHJp
YnV0ZSgib3JpZW50IiwgIjBkZWciKTsKK2RlZnMuYXBwZW5kQ2hpbGQobWFya2VyKTsKKwordmFy
IHBvbHlsaW5lID0gY3JlYXRlU1ZHRWxlbWVudCgicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0
dHJpYnV0ZSgiaWQiLCAicG9seWxpbmUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgicG9pbnRz
IiwgIjAsMCAxMCw1IDAsMTAgMSw1Iik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAi
Z3JlZW4iKTsKK21hcmtlci5hcHBlbmRDaGlsZChwb2x5bGluZSk7CisKK3ZhciBwYXRoID0gY3Jl
YXRlU1ZHRWxlbWVudCgicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImlkIiwgInBhdGgiKTsK
K3BhdGguc2V0QXR0cmlidXRlKCJkIiwgIk00NSw1MCBMNTUsNTAiKTsKK3BhdGguc2V0QXR0cmli
dXRlKCJzdHJva2Utd2lkdGgiLCIxMCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsICJn
cmVlbiIpOworcGF0aC5zZXRBdHRyaWJ1dGUoIm1hcmtlci1lbmQiLCAidXJsKCNtYXJrZXIpIik7
CitwYXRoLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7CisKK3ZhciBh
bmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1
dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5h
bWUiLCAib3JpZW50Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAicGF0aC5jbGlj
ayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0cyIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImZyb20iLCAiMGdyYWQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJ0byIsICIxODBk
ZWciKTsKK21hcmtlci5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVu
ZENoaWxkKGRlZnMpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocGF0aCk7CisKKy8vIFNl
dHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGlu
aXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91bGRCZSgibWFya2VyLm9yaWVudEFuZ2xlLmFu
aW1WYWwudmFsdWUiLCAiMCIpOworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYmFz
ZVZhbC52YWx1ZSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFuaW1WYWwudmFsdWUiLCAiOTAiLCAw
LjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFs
LnZhbHVlIiwgIjkwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICIxODAi
LCAwLjEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5iYXNl
VmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewor
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRp
bWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4w
LCAgICAibWFya2VyIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAi
bWFya2VyIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAibWFya2Vy
Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAibWFya2VyIiwgc2Ft
cGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9
CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRl
KDUwLCA1MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1n
cmFkLXRvLXJhZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLWdyYWQtdG8tcmFkLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFu
aW1hdGlvbi1ncmFkLXRvLXJhZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorZGVz
Y3JpcHRpb24oIlRlc3RzIFNWR0FuZ2xlIGFuaW1hdGlvbiBmcm9tIGdyYWQgdG8gcmFkLiIpOwor
Y3JlYXRlU1ZHVGVzdENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIGRlZnMg
PSBjcmVhdGVTVkdFbGVtZW50KCJkZWZzIik7CisKK3ZhciBtYXJrZXIgPSBjcmVhdGVTVkdFbGVt
ZW50KCJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoImlkIiwgIm1hcmtlciIpOworbWFy
a2VyLnNldEF0dHJpYnV0ZSgidmlld0JveCIsICIwIDAgMTAgMTAiKTsKK21hcmtlci5zZXRBdHRy
aWJ1dGUoIm1hcmtlcldpZHRoIiwgIjQiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm1hcmtlckhl
aWdodCIsICIzIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJVbml0cyIsICJzdHJva2VX
aWR0aCIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWCIsICIxIik7CittYXJrZXIuc2V0QXR0
cmlidXRlKCJyZWZZIiwgIjUiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoIm9yaWVudCIsICIwZGVn
Iik7CitkZWZzLmFwcGVuZENoaWxkKG1hcmtlcik7CisKK3ZhciBwb2x5bGluZSA9IGNyZWF0ZVNW
R0VsZW1lbnQoInBvbHlsaW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoImlkIiwgInBvbHls
aW5lIik7Citwb2x5bGluZS5zZXRBdHRyaWJ1dGUoInBvaW50cyIsICIwLDAgMTAsNSAwLDEwIDEs
NSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7CittYXJrZXIuYXBw
ZW5kQ2hpbGQocG9seWxpbmUpOworCit2YXIgcGF0aCA9IGNyZWF0ZVNWR0VsZW1lbnQoInBhdGgi
KTsKK3BhdGguc2V0QXR0cmlidXRlKCJpZCIsICJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgi
ZCIsICJNNDUsNTAgTDU1LDUwIik7CitwYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwi
MTAiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2UiLCAiZ3JlZW4iKTsKK3BhdGguc2V0QXR0
cmlidXRlKCJtYXJrZXItZW5kIiwgInVybCgjbWFya2VyKSIpOworcGF0aC5zZXRBdHRyaWJ1dGUo
Im9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24i
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgIm9yaWVudCIpOworYW5p
bWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgInBhdGguY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjBncmFk
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMy4xNDE1OTI2NXJhZCIpOworbWFya2Vy
LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQoZGVmcyk7
Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0dXAgYW5pbWF0aW9u
IHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29u
ZGl0aW9ucworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIs
ICIwIik7CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNlVmFsLnZhbHVlIiwg
IjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7CisgICAgc2hv
dWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiOTAi
LCAwLjEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIsIDAuMSk7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAi
MTgwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElk
LCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJtYXJrZXIi
LCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJtYXJrZXIiLCBzYW1w
bGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIiLCBzYW1wbGUzXSwK
KyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1wbGUxXQorICAgIF07
CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4g
dGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDAp
OwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZnYW5nbGUtYW5pbWF0aW9uLXJhZC10by1kZWcuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2
Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8tZGVnLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8t
ZGVnLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACitkZXNjcmlwdGlvbigiVGVzdHMg
U1ZHQW5nbGUgYW5pbWF0aW9uIGZyb20gcmFkIHRvIGRlZy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNl
KCk7CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBkZWZzID0gY3JlYXRlU1ZHRWxlbWVu
dCgiZGVmcyIpOworCit2YXIgbWFya2VyID0gY3JlYXRlU1ZHRWxlbWVudCgibWFya2VyIik7Citt
YXJrZXIuc2V0QXR0cmlidXRlKCJpZCIsICJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUo
InZpZXdCb3giLCAiMCAwIDEwIDEwIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJXaWR0
aCIsICI0Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJIZWlnaHQiLCAiMyIpOworbWFy
a2VyLnNldEF0dHJpYnV0ZSgibWFya2VyVW5pdHMiLCAic3Ryb2tlV2lkdGgiKTsKK21hcmtlci5z
ZXRBdHRyaWJ1dGUoInJlZlgiLCAiMSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWSIsICI1
Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJvcmllbnQiLCAiMGRlZyIpOworZGVmcy5hcHBlbmRD
aGlsZChtYXJrZXIpOworCit2YXIgcG9seWxpbmUgPSBjcmVhdGVTVkdFbGVtZW50KCJwb2x5bGlu
ZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJpZCIsICJwb2x5bGluZSIpOworcG9seWxpbmUu
c2V0QXR0cmlidXRlKCJwb2ludHMiLCAiMCwwIDEwLDUgMCwxMCAxLDUiKTsKK3BvbHlsaW5lLnNl
dEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworbWFya2VyLmFwcGVuZENoaWxkKHBvbHlsaW5l
KTsKKwordmFyIHBhdGggPSBjcmVhdGVTVkdFbGVtZW50KCJwYXRoIik7CitwYXRoLnNldEF0dHJp
YnV0ZSgiaWQiLCAicGF0aCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoImQiLCAiTTQ1LDUwIEw1NSw1
MCIpOworcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIjEwIik7CitwYXRoLnNldEF0
dHJpYnV0ZSgic3Ryb2tlIiwgImdyZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgibWFya2VyLWVu
ZCIsICJ1cmwoI21hcmtlcikiKTsKK3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1
dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJvcmllbnQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJiZWdpbiIsICJwYXRoLmNsaWNrIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRz
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZnJvbSIsICIwcmFkIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgidG8iLCAiMTgwZGVnIik7CittYXJrZXIuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7City
b290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChkZWZzKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENo
aWxkKHBhdGgpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgp
IHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoIm1h
cmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjAiKTsKKyAgICBzaG91bGRCZSgibWFy
a2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwudmFsdWUiLCAiMCIpOworfQorCitmdW5jdGlvbiBzYW1w
bGUyKCkgeworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmlt
VmFsLnZhbHVlIiwgIjkwIiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJrZXIu
b3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSIsICI5MCIsIDAuMSk7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmFu
aW1WYWwudmFsdWUiLCAiMTgwIiwgMC4xKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJtYXJr
ZXIub3JpZW50QW5nbGUuYmFzZVZhbC52YWx1ZSIsICIxODAiLCAwLjEpOworfQorCitmdW5jdGlv
biBleGVjdXRlVGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAg
Ly8gW2FuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAg
ICBbImFuaW1hdGlvbiIsIDAuMCwgICAgIm1hcmtlciIsIHNhbXBsZTFdLAorICAgICAgICBbImFu
aW1hdGlvbiIsIDIuMCwgICAgIm1hcmtlciIsIHNhbXBsZTJdLAorICAgICAgICBbImFuaW1hdGlv
biIsIDMuOTk5OSwgIm1hcmtlciIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQu
MCAsICAgIm1hcmtlciIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3Qo
ZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGlt
ZW91dCgidHJpZ2dlclVwZGF0ZSg1MCwgNTApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9z
dmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z2FuZ2xlLWFuaW1hdGlvbi1yYWQtdG8t
Z3JhZC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdhbmdsZS1hbmltYXRpb24tcmFkLXRvLWdyYWQuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBTVkdBbmdsZSBhbmltYXRpb24gZnJv
bSByYWQgdG8gZ3JhZC4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8vIFNldHVwIHRlc3Qg
ZG9jdW1lbnQKK3ZhciBkZWZzID0gY3JlYXRlU1ZHRWxlbWVudCgiZGVmcyIpOworCit2YXIgbWFy
a2VyID0gY3JlYXRlU1ZHRWxlbWVudCgibWFya2VyIik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJp
ZCIsICJtYXJrZXIiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCAiMCAwIDEwIDEw
Iik7CittYXJrZXIuc2V0QXR0cmlidXRlKCJtYXJrZXJXaWR0aCIsICI0Iik7CittYXJrZXIuc2V0
QXR0cmlidXRlKCJtYXJrZXJIZWlnaHQiLCAiMyIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgibWFy
a2VyVW5pdHMiLCAic3Ryb2tlV2lkdGgiKTsKK21hcmtlci5zZXRBdHRyaWJ1dGUoInJlZlgiLCAi
MSIpOworbWFya2VyLnNldEF0dHJpYnV0ZSgicmVmWSIsICI1Iik7CittYXJrZXIuc2V0QXR0cmli
dXRlKCJvcmllbnQiLCAiMGRlZyIpOworZGVmcy5hcHBlbmRDaGlsZChtYXJrZXIpOworCit2YXIg
cG9seWxpbmUgPSBjcmVhdGVTVkdFbGVtZW50KCJwb2x5bGluZSIpOworcG9seWxpbmUuc2V0QXR0
cmlidXRlKCJpZCIsICJwb2x5bGluZSIpOworcG9seWxpbmUuc2V0QXR0cmlidXRlKCJwb2ludHMi
LCAiMCwwIDEwLDUgMCwxMCAxLDUiKTsKK3BvbHlsaW5lLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJn
cmVlbiIpOworbWFya2VyLmFwcGVuZENoaWxkKHBvbHlsaW5lKTsKKwordmFyIHBhdGggPSBjcmVh
dGVTVkdFbGVtZW50KCJwYXRoIik7CitwYXRoLnNldEF0dHJpYnV0ZSgiaWQiLCAicGF0aCIpOwor
cGF0aC5zZXRBdHRyaWJ1dGUoImQiLCAiTTQ1LDUwIEw1NSw1MCIpOworcGF0aC5zZXRBdHRyaWJ1
dGUoInN0cm9rZS13aWR0aCIsIjEwIik7CitwYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwgImdy
ZWVuIik7CitwYXRoLnNldEF0dHJpYnV0ZSgibWFya2VyLWVuZCIsICJ1cmwoI21hcmtlcikiKTsK
K3BhdGguc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFu
aW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0
ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFt
ZSIsICJvcmllbnQiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJwYXRoLmNsaWNr
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjRzIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiZnJvbSIsICIwcmFkIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMjAwZ3Jh
ZCIpOworbWFya2VyLmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5k
Q2hpbGQoZGVmcyk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwYXRoKTsKKworLy8gU2V0
dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5p
dGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJtYXJrZXIub3JpZW50QW5nbGUuYW5p
bVZhbC52YWx1ZSIsICIwIik7CisgICAgc2hvdWxkQmUoIm1hcmtlci5vcmllbnRBbmdsZS5iYXNl
VmFsLnZhbHVlIiwgIjAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJtYXJrZXIub3JpZW50QW5nbGUuYW5pbVZhbC52YWx1ZSIsICI5MCIsIDAu
MSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VWYWwu
dmFsdWUiLCAiOTAiLCAwLjEpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIHNob3Vs
ZEJlQ2xvc2VFbm91Z2goIm1hcmtlci5vcmllbnRBbmdsZS5hbmltVmFsLnZhbHVlIiwgIjE4MCIs
IDAuMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgibWFya2VyLm9yaWVudEFuZ2xlLmJhc2VW
YWwudmFsdWUiLCAiMTgwIiwgMC4xKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7Cisg
ICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGlt
ZSwgZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAs
ICAgICJtYXJrZXIiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAgICJt
YXJrZXIiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAzLjk5OTksICJtYXJrZXIi
LCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJtYXJrZXIiLCBzYW1w
bGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30K
KworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUo
NTAsIDUwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="91658"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
    <flag name="commit-queue"
          id="91659"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>