<?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>63171</bug_id>
          
          <creation_ts>2011-06-22 12:58:07 -0700</creation_ts>
          <short_desc>Convert SVGPointList to SVGAnimatorFactory concept</short_desc>
          <delta_ts>2011-06-22 23:32:23 -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>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>425497</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 12:58:07 -0700</bug_when>
    <thetext>Convert SVGPointList to SVGAnimatorFactory concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425519</commentid>
    <comment_count>1</comment_count>
      <attachid>98227</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 13:15:31 -0700</bug_when>
    <thetext>Created attachment 98227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425524</commentid>
    <comment_count>2</comment_count>
      <attachid>98227</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 13:24:16 -0700</bug_when>
    <thetext>Comment on attachment 98227
Patch

Attachment 98227 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8924674</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425534</commentid>
    <comment_count>3</comment_count>
      <attachid>98227</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-06-22 13:33:28 -0700</bug_when>
    <thetext>Comment on attachment 98227
Patch

Attachment 98227 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8921756</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425555</commentid>
    <comment_count>4</comment_count>
      <attachid>98236</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 13:55:29 -0700</bug_when>
    <thetext>Created attachment 98236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425607</commentid>
    <comment_count>5</comment_count>
      <attachid>98236</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-06-22 14:38:55 -0700</bug_when>
    <thetext>Comment on attachment 98236
Patch

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

LGTM

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:999
&gt; +		43B9336A13B261B1004584BF /* SVGAnimatedPointList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43B9336813B261B1004584BF /* SVGAnimatedPointList.cpp */; };

You may want to sort this.

&gt; Source/WebCore/svg/SVGAnimatedPointList.cpp:86
&gt; +            animatedPointList = ((animationMode == FromToAnimation &amp;&amp; percentage &gt; 0.5f) || animationMode == ToAnimation || percentage == 1) 

0.5f -&gt; 0.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425975</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 23:32:23 -0700</bug_when>
    <thetext>Committed r89536: &lt;http://trac.webkit.org/changeset/89536&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98227</attachid>
            <date>2011-06-22 13:15:31 -0700</date>
            <delta_ts>2011-06-22 13:55:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63171-20110622221528.patch</filename>
            <type>text/plain</type>
            <size>33530</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NDY2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMDYtMjIgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDb252ZXJ0IFNWR1BvaW50TGlzdCB0byBTVkdBbmltYXRvckZhY3Rv
cnkgY29uY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjMxNzEKKworICAgICAgICBGb2xsb3cgdXAgb2YgIlNWR0FuaW1hdGlvbiBzaG91bGQgdXNl
IGRpcmVjdCB1bml0IGFuaW1hdGlvbiBmb3IgU1ZHTGVuZ3RoIjogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzY4CisgICAgICAgIFRoaXMgcGF0Y2ggY29udGludWVz
IHRoZSBjb252ZXJzaW9uIHRvIHRoZSBuZXcgY29uY2VwdCBvZiBTVkdBbmltYXRvckZhY3Rvcnkg
d2l0aCBTVkdQb2ludExpc3QuCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgZnJvbS1ieSBh
bmltYXRpb25zIG9mIFNWR1BvaW50TGlzdHMuCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRp
b25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5p
bWF0aW9ucy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTIuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHN2Zy9TVkdBbGxJbk9uZS5jcHA6CisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVF
bGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6flNWR0FuaW1hdGVkVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorCiAyMDExLTA2
LTIyICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA4OTQz
MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NjU3LDYgKzE2NTcsNyBAQCBJRiAoRU5BQkxFX1NWRykKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKICAgICAgICAgc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyLmNwcAorICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3Qu
Y3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmlt
YXRlZFR5cGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zNDE2LDYgKzM0MTYs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZE51bWJlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCVNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFJlY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmggXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEwNTEsNiArMTA1MSw3IEBACiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5p
bWF0ZWROdW1iZXIuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5o
JywKKyAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oJywKICAgICAgICAgICAgICdz
dmcvU1ZHQW5pbWF0ZWRSZWN0LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFN0cmlu
Zy5oJywKQEAgLTU3MTQsNiArNTcxNSw3IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwJywKICAg
ICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwJywKKyAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRS
ZWN0LmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAnLAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJl
dmlzaW9uIDg5NDMxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29w
eSkKQEAgLTIzMzgsNiArMjMzOCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHN2Zy9TVkdBbmltYXRl
ZE51bWJlci5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAogICAgIHN2Zy9T
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisgICAgc3ZnL1NWR0FuaW1hdGVkUG9p
bnRMaXN0LmggXAogICAgIHN2Zy9TVkdBbmltYXRlZFJlY3QuaCBcCiAgICAgc3ZnL1NWR0FuaW1h
dGVkU3RyaW5nLmggXAogICAgIHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCkBAIC0z
Mjk2LDYgKzMyOTcsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAg
ICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlZE51bWJl
ci5jcHAgXAorICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwIFwKICAg
ICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAgXAogICAgICAgICAgICAgICBzdmcv
U1ZHQW5pbWF0ZWRUeXBlLmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVu
dC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oJKHJldmlzaW9uIDg5NDMwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTY1MzkwLDYgKzY1MzkwLDEwIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xTVkdB
bmltYXRlZFBvaW50TGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZWRSZWN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk5NSw2ICs5OTUsOCBAQAogCQk0
MzlEMzM0NTEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzlEMzM0MjEzQTY5MTFDMDBD
MjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggKi87IH07CiAJCTQzQTBGMEIxMTNBQzdENkQw
MEE1RjBBNyAvKiBTVkdBbmltYXRlZE51bWJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0EwRjBCMDEzQUM3RDZEMDBBNUYwQTcgLyogU1ZHQW5p
bWF0ZWROdW1iZXIuY3BwICovOyB9OwogCQk0M0EwRjBCNjEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZH
QW5pbWF0ZWRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzQTBGMEI1MTNBQ0NDRkYwMEE1RjBBNyAvKiBTVkdBbmltYXRlZFR5cGUuY3BwICov
OyB9OworCQk0M0I5MzM2OTEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQjkzMzY3
MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5oICovOyB9OworCQk0M0I5
MzM2QTEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNCOTMzNjgxM0IyNjFCMTAw
NDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCAqLzsgfTsKIAkJNDNDMDkyQkMxMkQ5
RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQzA5MkJBMTJEOUU0RUUwMEE5ODlDMyAv
KiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0
QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MTUyOTJEMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCAq
LzsgfTsKQEAgLTc0NzMsNiArNzQ3NSw4IEBACiAJCTQzOUQzMzQyMTNBNjkxMUMwMEMyMEY0RiAv
KiBTVkdBbmltYXRvckZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTBG
MEIwMTNBQzdENkQwMEE1RjBBNyAvKiBTVkdBbmltYXRlZE51bWJlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZE51bWJlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTBGMEI1MTNBQ0NDRkYwMEE1RjBBNyAvKiBTVkdBbmlt
YXRlZFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5p
bWF0ZWRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDNCOTMzNjcxM0Iy
NjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9pbnRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQzQjkzMzY4MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
ZFBvaW50TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQzA5MkI5MTJE
OUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0MwOTJCQTEyRDlFNEVFMDBBOTg5QzMgLyogUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJTVkdGb3JlaWduT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
MTUyOTJDMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Mzg5LDYgKzE3MzkzLDggQEAKIAkJCQlCMjIy
NzdFQzBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaWRsICovLAogCQkJCTA4
QjM1QjE2MTI3QjZBODgwMDUzMTRERCAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuaCAqLywKIAkJ
CQlCMjIyNzdFRDBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbCAq
LywKKwkJCQk0M0I5MzM2NzEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3Qu
aCAqLywKKwkJCQk0M0I5MzM2ODEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExp
c3QuY3BwICovLAogCQkJCTA4RkUwQkM0MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uaCAqLywKIAkJCQlCMjIyNzdGNDBEMDBCRjFGMDA3MUI3ODIgLyog
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKIAkJCQk0MzE0MkU3OTEzQjFF
OTc3MDBGMUM4NzEgLyogU1ZHQW5pbWF0ZWRSZWN0LmNwcCAqLywKQEAgLTIzMDI3LDYgKzIzMDMz
LDcgQEAKIAkJCQlCMUFENEU3QzEzQTEyQTcyMDA4NDZCMjcgLyogQ3VlUGFyc2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMUFENEU3RDEzQTEyQTcyMDA4NDZCMjcgLyogQ3VlUGFyc2VyUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCMUYwMkYxM0IwMjVEMjAwRjUxMDNGIC8qIFNoYXJl
ZEJ1ZmZlckNodW5rUmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0M0I5MzM2OTEzQjI2MUIx
MDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU3
ODUsNiArMjU3OTIsNyBAQAogCQkJCTQzQTBGMEI2MTNBQ0NDRkYwMEE1RjBBNyAvKiBTVkdBbmlt
YXRlZFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdCMUYwMkUxM0IwMjVDQTAwRjUxMDNG
IC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzMTQy
RTdBMTNCMUU5NzcwMEYxQzg3MSAvKiBTVkdBbmltYXRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDNCOTMzNkExM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCShyZXZp
c2lvbiA4OTQzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmNw
cCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWROdW1iZXIuY3BwIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZFJlY3QuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZS5jcHAi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA4OTQzMSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEwICsz
NCw3IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0b3JGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU1ZHQ29s
b3IuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGll
cy5oIgogI2luY2x1ZGUgIlNWR1BhdGhQYXJzZXJGYWN0b3J5LmgiCi0jaW5jbHVkZSAiU1ZHUGF0
aFNlZ0xpc3QuaCIKLSNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIKICNpbmNsdWRlICJTVkdTdHls
ZWRFbGVtZW50LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0yMzIsMjYgKzIyOSwxMCBA
QCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlCiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOiB7Ci0gICAgICAg
IGlmICghcGVyY2VudGFnZSkKLSAgICAgICAgICAgIHJlc3VsdHMtPm1fYW5pbWF0ZWRQb2ludHMg
PSBtX2Zyb21Qb2ludHM7Ci0gICAgICAgIGVsc2UgaWYgKHBlcmNlbnRhZ2UgPT0gMSkKLSAgICAg
ICAgICAgIHJlc3VsdHMtPm1fYW5pbWF0ZWRQb2ludHMgPSBtX3RvUG9pbnRzOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGlmICghbV9mcm9tUG9pbnRzLmlzRW1wdHkoKSAmJiAhbV90b1Bv
aW50cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgU1ZHUG9pbnRMaXN0OjpjcmVhdGVBbmlt
YXRlZChtX2Zyb21Qb2ludHMsIG1fdG9Qb2ludHMsIHJlc3VsdHMtPm1fYW5pbWF0ZWRQb2ludHMs
IHBlcmNlbnRhZ2UpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdHMt
Pm1fYW5pbWF0ZWRQb2ludHMuY2xlYXIoKTsKLSAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBk
aXNjcmV0ZSBhbmltYXRpb24gaWYgdGhlIHBvaW50cyBhcmUgbm90IGNvbXBhdGlibGUKLSAgICAg
ICAgICAgIGlmIChyZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gKChhbmltYXRpb25Nb2RlID09IEZy
b21Ub0FuaW1hdGlvbiAmJiBwZXJjZW50YWdlID4gMC41ZikgfHwgYW5pbWF0aW9uTW9kZSA9PSBU
b0FuaW1hdGlvbiB8fCBwZXJjZW50YWdlID09IDEpIAotICAgICAgICAgICAgICAgICAgICA/IG1f
dG9Qb2ludHMgOiBtX2Zyb21Qb2ludHM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAg
IH0KICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKICAg
ICBjYXNlIEFuaW1hdGVkTnVtYmVyOgorICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAgICAgY2Fz
ZSBBbmltYXRlZFJlY3Q6IHsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0b3IpOwogICAgICAgICBB
U1NFUlQocmVzdWx0cy0+bV9hbmltYXRlZFR5cGUpOwpAQCAtMzI3LDE4ICszMDgsMTAgQEAgYm9v
bCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAgICAgICBtX3RvUGF0aC5j
bGVhcigpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czog
ewotICAgICAgICBtX2Zyb21Qb2ludHMuY2xlYXIoKTsKLSAgICAgICAgaWYgKHBvaW50c0xpc3RG
cm9tU1ZHRGF0YShtX2Zyb21Qb2ludHMsIGZyb21TdHJpbmcpKSB7Ci0gICAgICAgICAgICBtX3Rv
UG9pbnRzLmNsZWFyKCk7Ci0gICAgICAgICAgICBpZiAocG9pbnRzTGlzdEZyb21TVkdEYXRhKG1f
dG9Qb2ludHMsIHRvU3RyaW5nKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKKyAgICBjYXNl
IEFuaW1hdGVkUG9pbnRzOgogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgogICAgICAgICBlbnN1cmVB
bmltYXRvcigpLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUs
IGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zODIsNiAr
MzU1LDcgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZAogICAgIGNh
c2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgIGNhc2UgQW5p
bWF0ZWROdW1iZXI6CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoKICAgICBjYXNlIEFuaW1hdGVk
UmVjdDoKICAgICAgICAgZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVz
KG1fZnJvbVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCBieVN0cmluZyk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtNDEzLDEyICszODcsMTAgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6
cmVzZXRUb0Jhc2VWYWx1ZQogICAgICAgICBtX2FuaW1hdGVkUGF0aFBvaW50ZXIgPSBtX2FuaW1h
dGVkUGF0aC5nZXQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjYXNlIEFuaW1hdGVk
UG9pbnRzOgotICAgICAgICBtX2FuaW1hdGVkUG9pbnRzLmNsZWFyKCk7Ci0gICAgICAgIHJldHVy
bjsKICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKICAg
ICBjYXNlIEFuaW1hdGVkTnVtYmVyOgorICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAgICAgY2Fz
ZSBBbmltYXRlZFJlY3Q6IHsKICAgICAgICAgaWYgKCFtX2FuaW1hdGVkVHlwZSkKICAgICAgICAg
ICAgIG1fYW5pbWF0ZWRUeXBlID0gZW5zdXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0RnJvbVN0cmlu
ZyhiYXNlU3RyaW5nKTsKQEAgLTQ1MiwxMiArNDI0LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1l
bnQ6OmFwcGx5UmVzdWx0c1RvVGEKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9Ci0g
ICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRl
ZFBvaW50cy5pc0VtcHR5KCkgPyBtX2FuaW1hdGVkU3RyaW5nIDogbV9hbmltYXRlZFBvaW50cy52
YWx1ZUFzU3RyaW5nKCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToK
ICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CisgICAg
Y2FzZSBBbmltYXRlZFBvaW50czoKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICAgICAgdmFs
dWVUb0FwcGx5ID0gbV9hbmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKTsKICAgICAgICAgYnJl
YWs7CkBAIC00ODcsNiArNDU3LDcgQEAgZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0
ZURpc3RhbgogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoKICAg
ICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICAgICAgcmV0dXJuIGVuc3VyZUFuaW1hdG9yKCktPmNh
bGN1bGF0ZURpc3RhbmNlKHRoaXMsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKICAgICBkZWZhdWx0
OgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHJldmlzaW9uIDg5
NDMwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDEzICsyOSwxMCBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1Bh
dGhCeXRlU3RyZWFtLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1BhdGhTZWdMaXN0
OwotCiBjbGFzcyBTVkdBbmltYXRlRWxlbWVudCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmltYXRlRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpAQCAtODMsOSArODAsNiBAQCBw
cml2YXRlOgogICAgIE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gbV90b1BhdGg7CiAgICAgT3du
UHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBtX2FuaW1hdGVkUGF0aDsKICAgICBTVkdQYXRoQnl0ZVN0
cmVhbSogbV9hbmltYXRlZFBhdGhQb2ludGVyOwotICAgIFNWR1BvaW50TGlzdCBtX2Zyb21Qb2lu
dHM7Ci0gICAgU1ZHUG9pbnRMaXN0IG1fdG9Qb2ludHM7Ci0gICAgU1ZHUG9pbnRMaXN0IG1fYW5p
bWF0ZWRQb2ludHM7CiAgICAgCiAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9mcm9tVHlw
ZTsKICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX3RvVHlwZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShyZXZpc2lvbiA4OTQzMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKICNp
bmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdQb2ludExpc3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Niw2ICs0Nyw5IEBAIFNWR0FuaW1hdGVkVHlw
ZTo6flNWR0FuaW1hdGVkVHlwZSgpCiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAgICAg
ZGVsZXRlIG1fZGF0YS5udW1iZXI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWRQ
b2ludHM6CisgICAgICAgIGRlbGV0ZSBtX2RhdGEucG9pbnRMaXN0OworICAgICAgICBicmVhazsK
ICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICAgICAgZGVsZXRlIG1fZGF0YS5yZWN0OwogICAg
ICAgICBicmVhazsKQEAgLTc5LDYgKzgzLDE0IEBAIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFQKICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlLnJlbGVhc2UoKTsKIH0KIAor
UGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9pbnRM
aXN0KFNWR1BvaW50TGlzdCogcG9pbnRMaXN0KQoreworICAgIEFTU0VSVChwb2ludExpc3QpOwor
ICAgIE93blB0cjxTVkdBbmltYXRlZFR5cGU+IGFuaW1hdGVkVHlwZSA9IGFkb3B0UHRyKG5ldyBT
VkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQb2ludHMpKTsKKyAgICBhbmltYXRlZFR5cGUtPm1fZGF0
YS5wb2ludExpc3QgPSBwb2ludExpc3Q7CisgICAgcmV0dXJuIGFuaW1hdGVkVHlwZS5yZWxlYXNl
KCk7Cit9CisKIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVJlY3QoRmxvYXRSZWN0KiByZWN0KQogewogICAgIEFTU0VSVChyZWN0KTsKQEAgLTEwNSw2
ICsxMTcsMTIgQEAgZmxvYXQmIFNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKCkKICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXI7CiB9CiAKK1NWR1BvaW50TGlzdCYgU1ZHQW5pbWF0ZWRUeXBlOjpwb2lu
dExpc3QoKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQb2ludHMpOworICAgIHJl
dHVybiAqbV9kYXRhLnBvaW50TGlzdDsKK30KKwogRmxvYXRSZWN0JiBTVkdBbmltYXRlZFR5cGU6
OnJlY3QoKQogewogICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRSZWN0KTsKQEAgLTEyMyw2
ICsxNDEsOSBAQCBTdHJpbmcgU1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkKICAgICBj
YXNlIEFuaW1hdGVkTnVtYmVyOgogICAgICAgICBBU1NFUlQobV9kYXRhLm51bWJlcik7CiAgICAg
ICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9kYXRhLm51bWJlcik7CisgICAgY2FzZSBBbmlt
YXRlZFBvaW50czoKKyAgICAgICAgQVNTRVJUKG1fZGF0YS5wb2ludExpc3QpOworICAgICAgICBy
ZXR1cm4gbV9kYXRhLnBvaW50TGlzdC0+dmFsdWVBc1N0cmluZygpOwogICAgIGNhc2UgQW5pbWF0
ZWRSZWN0OgogICAgICAgICBBU1NFUlQobV9kYXRhLnJlY3QpOwogICAgICAgICByZXR1cm4gU3Ry
aW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPngoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2Rh
dGEucmVjdC0+eSgpKSArICcgJwpAQCAtMTUwLDYgKzE3MSwxMSBAQCBib29sIFNWR0FuaW1hdGVk
VHlwZTo6c2V0VmFsdWVBc1N0cmluZyhjCiAgICAgICAgIEFTU0VSVChtX2RhdGEubnVtYmVyKTsK
ICAgICAgICAgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHZhbHVlLCAqbV9kYXRhLm51bWJlcik7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CisgICAgICAgIEFTU0VSVCht
X2RhdGEucG9pbnRMaXN0KTsKKyAgICAgICAgbV9kYXRhLnBvaW50TGlzdC0+Y2xlYXIoKTsKKyAg
ICAgICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKCptX2RhdGEucG9pbnRMaXN0LCB2YWx1ZSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgogICAgICAgICBBU1NFUlQobV9k
YXRhLnJlY3QpOwogICAgICAgICBwYXJzZVJlY3QodmFsdWUsICptX2RhdGEucmVjdCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCShyZXZpc2lvbiA4OTQzMSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NiArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBT
VkdBbmdsZTsKIGNsYXNzIFNWR0xlbmd0aDsKK2NsYXNzIFNWR1BvaW50TGlzdDsKIAogY2xhc3Mg
U1ZHQW5pbWF0ZWRUeXBlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM3LDYg
KzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4g
Y3JlYXRlQW5nbGUoU1ZHQW5nbGUqKTsKICAgICBzdGF0aWMgUGFzc093blB0cjxTVkdBbmltYXRl
ZFR5cGU+IGNyZWF0ZUxlbmd0aChTVkdMZW5ndGgqKTsKICAgICBzdGF0aWMgUGFzc093blB0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJlcihmbG9hdCopOworICAgIHN0YXRpYyBQYXNzT3du
UHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUG9pbnRMaXN0KFNWR1BvaW50TGlzdCopOwogICAg
IHN0YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVjdChGbG9hdFJlY3Qq
KTsKICAgICAKICAgICBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQpAQCAtNDQsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgU1ZHQW5nbGUmIGFuZ2xl
KCk7CiAgICAgU1ZHTGVuZ3RoJiBsZW5ndGgoKTsKICAgICBmbG9hdCYgbnVtYmVyKCk7CisgICAg
U1ZHUG9pbnRMaXN0JiBwb2ludExpc3QoKTsKICAgICBGbG9hdFJlY3QmIHJlY3QoKTsKIAogICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCk7CkBAIC02NCw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIFNWR0FuZ2xlKiBhbmdsZTsKICAgICAgICAgU1ZHTGVuZ3RoKiBsZW5ndGg7CiAgICAgICAg
IGZsb2F0KiBudW1iZXI7CisgICAgICAgIFNWR1BvaW50TGlzdCogcG9pbnRMaXN0OwogICAgICAg
ICBGbG9hdFJlY3QqIHJlY3Q7CiAgICAgfSBtX2RhdGE7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0
LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgorI2luY2x1ZGUgIlNW
R0FuaW1hdGVkUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDYgKzQxLDggQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKGNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lKSk7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAg
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3IoY29u
dGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpKTsKKyAgICAgICAgY2FzZSBBbmltYXRlZFBvaW50
czoKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRQb2ludExpc3RB
bmltYXRvcihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOwogICAgICAgICBjYXNlIEFu
aW1hdGVkUmVjdDoKICAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpKTsKICAgICAgICAgZGVm
YXVsdDoKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NDY2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDYtMjIgIERpcmsgU2NodWx6
ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb252ZXJ0IFNWR1BvaW50TGlzdCB0byBTVkdBbmltYXRvckZhY3Rvcnkg
Y29uY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjMxNzEKKyAgICAgICAgCisgICAgICAgIFJlbmFtZWQgdGVzdCBhbmltYXRlLXBvaW50cyB0byBz
dmdwb2ludGxpc3QtYW5pbWF0aW9uLTEgYW5kIGNsZWFuZWQgaXQgdXAuCisgICAgICAgIHN2Z3Bv
aW50bGlzdC1hbmltYXRpb24tMiBjaGVja3MgZnJvbS1ieSBhbmltYXRpb25zIG9mIFNWR1BvaW50
TGlzdHMuCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBvaW50cy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wb2ludHMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5p
bWF0ZS1wb2ludHMuanM6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0
LXRlc3RzL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS5qczogQWRkZWQuCisgICAgICAgIChzYW1w
bGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChl
eGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z3Bv
aW50bGlzdC1hbmltYXRpb24tMi5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUxKToKKyAgICAg
ICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVjdXRlVGVzdCk6
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0xLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFu
aW1hdGlvbi0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z3BvaW50
bGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi5odG1sOiBBZGRlZC4KKwogMjAxMS0wNi0y
MiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
LXBvaW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1wb2ludHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4OTQzMCkKKysrIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcG9pbnRzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi1TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzCi0KLVRlc3RzIGlmIHBvaW50cyBvZiBhIHBvbHlnb24gYXJlIGFuaW1hdGVhYmxlLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIp
LnggaXMgMjAwCi1QQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueSBpcyAyMDAKLVBBU1MgcG9s
eS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIDE1MAotUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIp
LnkgaXMgMTUwCi1QQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyBhbG1vc3QgMTAwLCBq
dXN0IGJlZm9yZS1lbmQKLVBBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIDIwMAotUEFT
UyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkgaXMgMjAwCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1wb2ludHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltYXRlLXBvaW50cy5odG1sCShyZXZpc2lvbiA4OTQzMCkKKysrIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtcG9pbnRzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0
czwvaDE+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hbmltYXRlLXBvaW50cy5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdw
b2ludGxpc3QtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdwb2ludGxpc3Qt
YW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitT
VkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3RzIGZyb20tdG8gYW5pbWF0aW9u
IG9mIHBvaW50cyBvbiBwb2x5Z29ucy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIDIwMAorUEFTUyBwb2x5LnBvaW50cy5n
ZXRJdGVtKDIpLnkgaXMgMjAwCitQQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAxNTAK
K1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS55IGlzIDE1MAorUEFTUyBwb2x5LnBvaW50cy5n
ZXRJdGVtKDIpLnggaXMgMTAwCitQQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueSBpcyAxMDAK
K1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIDIwMAorUEFTUyBwb2x5LnBvaW50cy5n
ZXRJdGVtKDIpLnkgaXMgMjAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRs
aXN0LWFuaW1hdGlvbi0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTEuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2Uu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1h
dGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmdwb2ludGxpc3QtYW5pbWF0
aW9uLTEuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdwb2ludGxpc3QtYW5pbWF0
aW9uLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0
cyBmcm9tLWJ5IGFuaW1hdGlvbiBvZiBwb2ludHMgb24gcG9seWdvbnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAyMDAK
K1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS55IGlzIDIwMAorUEFTUyBwb2x5LnBvaW50cy5n
ZXRJdGVtKDIpLnggaXMgMjUwCitQQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueSBpcyAyNTAK
K1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIDMwMAorUEFTUyBwb2x5LnBvaW50cy5n
ZXRJdGVtKDIpLnkgaXMgMzAwCitQQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAyMDAK
K1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS55IGlzIDIwMAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFu
aW1hdGlvbi0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NW
R0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNW
RyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
c3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0yLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBv
aW50cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvYW5pbWF0ZS1wb2ludHMuanMJKHJldmlzaW9uIDg5NDMwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtcG9pbnRzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcwICswLDAgQEAKLS8vIEZJWE1FOiBUaGlzIHRlc3Qgd2lsbCBiZWNvbWUgdXNl
ZnVsIG9uY2Ugd2UgaGF2ZSBiYXNpYyBhbmltVmFsIHN1cHBvcnQuIEZvciBub3cgaXQncyBqdXN0
IHRlc3RpbmcgdGhlIFNWRyBhbmltYXRpb24gdGVzdCBpbmZyYXN0cnVjdHVyZQotZGVzY3JpcHRp
b24oIlRlc3RzIGlmIHBvaW50cyBvZiBhIHBvbHlnb24gYXJlIGFuaW1hdGVhYmxlLiIpOwotY3Jl
YXRlU1ZHVGVzdENhc2UoKTsKLQotLy8gU2V0dXAgdGVzdCBkb2N1bWVudAotdmFyIHBvbHkgPSBj
cmVhdGVTVkdFbGVtZW50KCJwb2x5Z29uIik7Ci1wb2x5LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9s
eSIpOwotcG9seS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKLXBvbHkuc2V0QXR0cmli
dXRlKCJwb2ludHMiLCAiMCwwIDIwMCwwIDIwMCwyMDAgMCwyMDAiKTsKLXBvbHkuc2V0QXR0cmli
dXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKLQotdmFyIGFuaW1hdGUgPSBjcmVhdGVT
VkdFbGVtZW50KCJhbmltYXRlIik7Ci1hbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0
aW9uIik7Ci1hbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJwb2ludHMiKTsK
LWFuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjAsMCAyMDAsMCAyMDAsMjAwIDAsMjAwIik7
Ci1hbmltYXRlLnNldEF0dHJpYnV0ZSgidG8iLCAiMCwwIDEwMCwwIDEwMCwxMDAgMCwxMDAiKTsK
LWFuaW1hdGUuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOwotYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImR1ciIsICI0cyIpOwotcG9seS5hcHBlbmRDaGlsZChhbmltYXRlKTsKLXJvb3RTVkdF
bGVtZW50LmFwcGVuZENoaWxkKHBvbHkpOwotCi0vLyBTZXR1cCBhbmltYXRpb24gdGVzdAotZnVu
Y3Rpb24gc2FtcGxlMSgpIHsKLSAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCi0g
ICAgc2hvdWxkQmUoInBvbHkucG9pbnRzLmdldEl0ZW0oMikueCIsICIyMDAiKTsKLSAgICBzaG91
bGRCZSgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS55IiwgIjIwMCIpOwotICAgIC8vc2hvdWxkQmUo
InBvbHkuYW5pbWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS54IiwgIjIwMCIpOwotICAgIC8vc2hvdWxk
QmUoInBvbHkuYW5pbWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS55IiwgIjIwMCIpOwotfQotCi1mdW5j
dGlvbiBzYW1wbGUyKCkgewotICAgIC8vIEZJWE1FOiBBZGQgYW5pbVZhbCBzdXBwb3J0LiBBbmlt
YXRlcyBiYXNlVmFsIGF0IHRoZSBtb21lbnQuCi0gICAgLy8gc2hvdWxkQmUoInJlY3Qud2lkdGgu
YW5pbVZhbC52YWx1ZSIsICIxNTAiKTsKLSAgICAvLyBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNl
VmFsLnZhbHVlIiwgIjIwMCIpOwotCi0gICAgLy8gQ2hlY2sgaGFsZi10aW1lIGNvbmRpdGlvbnMK
LSAgICBzaG91bGRCZSgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IiwgIjE1MCIpOwotICAgIHNo
b3VsZEJlKCJwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMTUwIik7Ci0gICAgLy9zaG91bGRC
ZSgicG9seS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLngiLCAiMTUwIik7Ci0gICAgLy9zaG91
bGRCZSgicG9seS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMTUwIik7Ci19Ci0KLWZ1
bmN0aW9uIHNhbXBsZTMoKSB7Ci0gICAgLy8gRklYTUU6IEFkZCBhbmltVmFsIHN1cHBvcnQuIEFu
aW1hdGVzIGJhc2VWYWwgYXQgdGhlIG1vbWVudC4KLSAgICAvLyBzaG91bGRCZSgicmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIiwgIjEwMCIpOwotICAgIC8vIHNob3VsZEJlKCJyZWN0LndpZHRoLmJh
c2VWYWwudmFsdWUiLCAiMjAwIik7Ci0KLSAgICAvLyBDaGVjayBqdXN0IGJlZm9yZS1lbmQgY29u
ZGl0aW9ucwotICAgIHZhciBvayA9IGlzQ2xvc2VFbm91Z2gocG9seS5wb2ludHMuZ2V0SXRlbSgy
KS54LCAxMDAsIDAuMDEpOwotICAgIGlmIChvaykKLSAgICAgICAgdGVzdFBhc3NlZCgicG9seS5w
b2ludHMuZ2V0SXRlbSgyKS54IGlzIGFsbW9zdCAxMDAsIGp1c3QgYmVmb3JlLWVuZCIpOwotICAg
IGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIE5P
VCBhbG1vc3QgMTAwLCBhcyBleHBlY3RlZCIpOwotfQotCi1mdW5jdGlvbiBleGVjdXRlVGVzdCgp
IHsKLSAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKLSAgICAgICAgLy8gW2FuaW1hdGlvbklk
LCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQotICAgICAgICBbImFuaW1hdGlvbiIs
IDAuMCwgICAgInBvbHkiLCBzYW1wbGUxXSwKLSAgICAgICAgWyJhbmltYXRpb24iLCAyLjAsICAg
ICJwb2x5Iiwgc2FtcGxlMl0sCi0gICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAicG9seSIs
IHNhbXBsZTNdLAotICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInBvbHkiLCBzYW1wbGUx
XQotICAgIF07Ci0KLSAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKLX0KLQot
Ly8gQmVnaW4gdGVzdCBhc3luYwotd2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoMTUs
IDMwKSIsIDApOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0x
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTEuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0xLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACitkZXNjcmlwdGlvbigiVGVzdHMgZnJvbS10
byBhbmltYXRpb24gb2YgcG9pbnRzIG9uIHBvbHlnb25zLiIpOworY3JlYXRlU1ZHVGVzdENhc2Uo
KTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHBvbHkgPSBjcmVhdGVTVkdFbGVtZW50
KCJwb2x5Z29uIik7Citwb2x5LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9seSIpOworcG9seS5zZXRB
dHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3BvbHkuc2V0QXR0cmlidXRlKCJwb2ludHMiLCAi
MCwwIDIwMCwwIDIwMCwyMDAgMCwyMDAiKTsKK3BvbHkuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwg
ImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50KCJhbmlt
YXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJwb2ludHMiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJmcm9tIiwgIjAsMCAyMDAsMCAyMDAsMjAwIDAsMjAwIik7CithbmltYXRlLnNldEF0
dHJpYnV0ZSgidG8iLCAiMCwwIDEwMCwwIDEwMCwxMDAgMCwxMDAiKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0
cyIpOworcG9seS5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENo
aWxkKHBvbHkpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2FtcGxlMSgp
IHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInBv
bHkucG9pbnRzLmdldEl0ZW0oMikueCIsICIyMDAiKTsKKyAgICBzaG91bGRCZSgicG9seS5wb2lu
dHMuZ2V0SXRlbSgyKS55IiwgIjIwMCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5pbWF0ZWRQ
b2ludHMuZ2V0SXRlbSgyKS54IiwgIjIwMCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5pbWF0
ZWRQb2ludHMuZ2V0SXRlbSgyKS55IiwgIjIwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkg
eworICAgIC8vIENoZWNrIGhhbGYtdGltZSBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInBvbHku
cG9pbnRzLmdldEl0ZW0oMikueCIsICIxNTAiKTsKKyAgICBzaG91bGRCZSgicG9seS5wb2ludHMu
Z2V0SXRlbSgyKS55IiwgIjE1MCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5pbWF0ZWRQb2lu
dHMuZ2V0SXRlbSgyKS54IiwgIjI1MCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5pbWF0ZWRQ
b2ludHMuZ2V0SXRlbSgyKS55IiwgIjI1MCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUzKCkgewor
ICAgIC8vIENoZWNrIGp1c3QgYmVmb3JlLWVuZCBjb25kaXRpb25zCisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IiwgIjEwMCIsIDAuMDEpOworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInBvbHkucG9pbnRzLmdldEl0ZW0oMikueSIsICIxMDAiLCAwLjAx
KTsKKyAgICAvL3Nob3VsZEJlQ2xvc2VFbm91Z2goInBvbHkuYW5pbWF0ZWRQb2ludHMuZ2V0SXRl
bSgyKS54IiwgIjMwMCIsIDAuMDEpOworICAgIC8vc2hvdWxkQmVDbG9zZUVub3VnaCgicG9seS5h
bmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMzAwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9u
IGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAv
LyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicG9seSIsIHNhbXBsZTFdLAorICAgICAgICBbImFuaW1h
dGlvbiIsIDIuMCwgICAgInBvbHkiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAz
Ljk5OTksICJwb2x5Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAi
cG9seSIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91dCgidHJp
Z2dlclVwZGF0ZSgxNSwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdwb2ludGxp
c3QtYW5pbWF0aW9uLTIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9zdmdwb2ludGxpc3Qt
YW5pbWF0aW9uLTIuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKK2Rlc2NyaXB0aW9u
KCJUZXN0cyBmcm9tLWJ5IGFuaW1hdGlvbiBvZiBwb2ludHMgb24gcG9seWdvbnMuIik7CitjcmVh
dGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcG9seSA9IGNy
ZWF0ZVNWR0VsZW1lbnQoInBvbHlnb24iKTsKK3BvbHkuc2V0QXR0cmlidXRlKCJpZCIsICJwb2x5
Iik7Citwb2x5LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJncmVlbiIpOworcG9seS5zZXRBdHRyaWJ1
dGUoInBvaW50cyIsICIwLDAgMjAwLDAgMjAwLDIwMCAwLDIwMCIpOworcG9seS5zZXRBdHRyaWJ1
dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNW
R0VsZW1lbnQoImFuaW1hdGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRp
b24iKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgInBvaW50cyIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMCwwIDIwMCwwIDIwMCwyMDAgMCwyMDAiKTsK
K2FuaW1hdGUuc2V0QXR0cmlidXRlKCJieSIsICIwLDAgMTAwLDAgMTAwLDEwMCAwLDEwMCIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImJlZ2luIiwgImNsaWNrIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgiZHVyIiwgIjRzIik7Citwb2x5LmFwcGVuZENoaWxkKGFuaW1hdGUpOworcm9vdFNWR0Vs
ZW1lbnQuYXBwZW5kQ2hpbGQocG9seSk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5j
dGlvbiBzYW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAg
ICBzaG91bGRCZSgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IiwgIjIwMCIpOworICAgIHNob3Vs
ZEJlKCJwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMjAwIik7CisgICAgLy9zaG91bGRCZSgi
cG9seS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLngiLCAiMjAwIik7CisgICAgLy9zaG91bGRC
ZSgicG9seS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMjAwIik7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZTIoKSB7CisgICAgLy8gQ2hlY2sgaGFsZi10aW1lIGNvbmRpdGlvbnMKKyAgICBz
aG91bGRCZSgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IiwgIjI1MCIpOworICAgIHNob3VsZEJl
KCJwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMjUwIik7CisgICAgLy9zaG91bGRCZSgicG9s
eS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLngiLCAiMjUwIik7CisgICAgLy9zaG91bGRCZSgi
cG9seS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMjUwIik7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZTMoKSB7CisgICAgLy8gQ2hlY2sganVzdCBiZWZvcmUtZW5kIGNvbmRpdGlvbnMKKyAg
ICBzaG91bGRCZUNsb3NlRW5vdWdoKCJwb2x5LnBvaW50cy5nZXRJdGVtKDIpLngiLCAiMzAwIiwg
MC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS55
IiwgIjMwMCIsIDAuMDEpOworICAgIC8vc2hvdWxkQmVDbG9zZUVub3VnaCgicG9seS5hbmltYXRl
ZFBvaW50cy5nZXRJdGVtKDIpLngiLCAiMzAwIiwgMC4wMSk7CisgICAgLy9zaG91bGRCZUNsb3Nl
RW5vdWdoKCJwb2x5LmFuaW1hdGVkUG9pbnRzLmdldEl0ZW0oMikueSIsICIzMDAiLCAwLjAxKTsK
K30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMg
PSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVDYWxs
YmFja10KKyAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAgICJwb2x5Iiwgc2FtcGxlMV0sCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicG9seSIsIHNhbXBsZTJdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDMuOTk5OSwgInBvbHkiLCBzYW1wbGUzXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCA0LjAgLCAgICJwb2x5Iiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5z
ZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDE1LCAzMCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98236</attachid>
            <date>2011-06-22 13:55:29 -0700</date>
            <delta_ts>2011-06-22 14:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63171-20110622225526.patch</filename>
            <type>text/plain</type>
            <size>41103</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NDc2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDYtMjIgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDb252ZXJ0IFNWR1BvaW50TGlzdCB0byBTVkdBbmltYXRvckZhY3Rv
cnkgY29uY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjMxNzEKKworICAgICAgICBGb2xsb3cgdXAgb2YgIlNWR0FuaW1hdGlvbiBzaG91bGQgdXNl
IGRpcmVjdCB1bml0IGFuaW1hdGlvbiBmb3IgU1ZHTGVuZ3RoIjogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzY4CisgICAgICAgIFRoaXMgcGF0Y2ggY29udGludWVz
IHRoZSBjb252ZXJzaW9uIHRvIHRoZSBuZXcgY29uY2VwdCBvZiBTVkdBbmltYXRvckZhY3Rvcnkg
d2l0aCBTVkdQb2ludExpc3QuCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgZnJvbS1ieSBh
bmltYXRpb25zIG9mIFNWR1BvaW50TGlzdHMuCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRp
b25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5p
bWF0aW9ucy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTIuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkIG5ldyBmaWxlcyB0byBidWlsZCBzeXN0ZW0uCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FsbEluT25lLmNwcDogQWRkZWQg
U1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxh
dGVGcm9tQW5kVG9WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6
OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OlNWR0Fu
aW1hdGVkUG9pbnRMaXN0QW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQ
b2ludExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3Vs
YXRlRnJvbUFuZEJ5VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRM
aXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UpOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6On5TVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6flNWR0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6Cisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorCiAyMDExLTA2LTIyICBCZXRoIERha2luICA8YmRh
a2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTY1Nyw2ICsxNjU3LDcgQEAgSUYgKEVO
QUJMRV9TVkcpCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAogICAgICAgICBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAK
KyAgICAgICAgc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAogICAgICAgICBzdmcvU1ZHQW5p
bWF0ZWRSZWN0LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAogICAgICAgICBz
dmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0JKHJldmlzaW9uIDg5NDMxKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkod29ya2luZyBjb3B5KQpAQCAtMzQxNiw2ICszNDE2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTnVtYmVyTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
b2ludExpc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3Qu
aCBcCiAJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlz
aW9uIDg5NDMxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDUxLDYgKzEwNTEsNyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZExlbmd0
aExpc3QuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmgnLAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaCcsCisgICAgICAgICAgICAnc3ZnL1NW
R0FuaW1hdGVkUG9pbnRMaXN0LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUmVjdC5oJywK
ICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaCcsCkBAIC01NzE0LDYgKzU3MTUs
NyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVkTnVtYmVyLmNwcCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNw
cCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAnLAogICAgICAgICAgICAg
J3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA4OTQzMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMzM4LDYgKzIzMzgsNyBA
QCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCiAgICAgc3ZnL1NW
R0FuaW1hdGVkTnVtYmVyTGlzdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5oIFwKICAgICBzdmcvU1ZH
QW5pbWF0ZWRSZWN0LmggXAogICAgIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oIFwKICAgICBzdmcv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggXApAQCAtMzI5Niw2ICszMjk3LDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRl
ZEFuZ2xlLmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgXAog
ICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKyAgICAgICAgICAgICAg
c3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCBcCiAgICAgICAgICAgICAgIHN2Zy9TVkdBbmlt
YXRlZFJlY3QuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAgXAog
ICAgICAgICAgICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA4OTQzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC02NTM5MCw2ICs2NTM5MCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0Fu
aW1hdGVkUmVjdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDg5NDMxKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OTUsNiArOTk1LDggQEAKIAkJNDM5RDMzNDUxM0E2OTExQzAwQzIwRjRG
IC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM5RDMzNDIxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdG9yRmFj
dG9yeS5oICovOyB9OwogCQk0M0EwRjBCMTEzQUM3RDZEMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRO
dW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDNBMEYwQjAxM0FDN0Q2RDAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmNwcCAqLzsgfTsK
IAkJNDNBMEYwQjYxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0EwRjBCNTEzQUNDQ0ZG
MDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLzsgfTsKKwkJNDNCOTMzNjkxM0IyNjFC
MTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I5MzM2NzEzQjI2MUIxMDA0NTg0QkYgLyogU1ZH
QW5pbWF0ZWRQb2ludExpc3QuaCAqLzsgfTsKKwkJNDNCOTMzNkExM0IyNjFCMTAwNDU4NEJGIC8q
IFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzQjkzMzY4MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBv
aW50TGlzdC5jcHAgKi87IH07CiAJCTQzQzA5MkJDMTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJT
VkdGb3JlaWduT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0MwOTJCQTEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5oICovOyB9OwogCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQxNTI5MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NDE1MjkyRjBF
MUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyRDBFMUFFOEEwMDBDNEEy
RDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgKi87IH07CkBAIC03NDczLDYgKzc0NzUs
OCBAQAogCQk0MzlEMzM0MjEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFjdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBBNUYwQTcgLyog
U1ZHQW5pbWF0ZWROdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
M0EwRjBCNTEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjkzMzY3MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmlt
YXRlZFBvaW50TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmlt
YXRlZFBvaW50TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0I5MzM2ODEz
QjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0M0MwOTJCOTEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDNDMDkyQkExMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAg
LyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNzM4OSw2ICsxNzM5Myw4IEBACiAJCQkJQjIyMjc3RUMwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkTnVtYmVyLmlkbCAqLywKIAkJCQkwOEIzNUIxNjEyN0I2QTg4MDA1MzE0REQg
LyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggKi8sCiAJCQkJQjIyMjc3RUQwRDAwQkYxRjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGwgKi8sCisJCQkJNDNCOTMzNjcxM0IyNjFC
MTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggKi8sCisJCQkJNDNCOTMzNjgxM0Iy
NjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCAqLywKIAkJCQkwOEZFMEJD
NDEyN0UyQUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi8s
CiAJCQkJQjIyMjc3RjQwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5pZGwgKi8sCiAJCQkJNDMxNDJFNzkxM0IxRTk3NzAwRjFDODcxIC8qIFNWR0FuaW1h
dGVkUmVjdC5jcHAgKi8sCkBAIC0yMzAyNyw2ICsyMzAzMyw3IEBACiAJCQkJQjFBRDRFN0MxM0Ex
MkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFBRDRFN0Qx
M0ExMkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QjFGMDJGMTNCMDI1RDIwMEY1MTAzRiAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDNCOTMzNjkxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVk
UG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1Nzg1LDYgKzI1NzkyLDcgQEAKIAkJCQk0
M0EwRjBCNjEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3QjFGMDJFMTNCMDI1Q0EwMEY1MTAzRiAvKiBTaGFyZWRCdWZmZXJDaHVua1Jl
YWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzE0MkU3QTEzQjFFOTc3MDBGMUM4NzEgLyog
U1ZHQW5pbWF0ZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzQjkzMzZBMTNCMjYxQjEw
MDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsbEluT25lLmNwcAkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRMZW5ndGguY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmNwcCIKKyNpbmNsdWRl
ICJTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0LmNw
cCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVF
bGVtZW50LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNw
cAkocmV2aXNpb24gODk0MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsNyBAQAogI2luY2x1ZGUgIlNWR0Fu
aW1hdG9yRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKLSNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdQYXRo
UGFyc2VyRmFjdG9yeS5oIgotI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0LmgiCi0jaW5jbHVkZSAi
U1ZHUG9pbnRMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgogCiB1c2luZyBu
YW1lc3BhY2Ugc3RkOwpAQCAtMjMyLDI2ICsyMjksMTAgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVu
dDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgY2FzZSBBbmltYXRlZFBvaW50czogewotICAgICAgICBpZiAoIXBlcmNlbnRhZ2UpCi0gICAg
ICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzID0gbV9mcm9tUG9pbnRzOwotICAgICAg
ICBlbHNlIGlmIChwZXJjZW50YWdlID09IDEpCi0gICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1h
dGVkUG9pbnRzID0gbV90b1BvaW50czsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
IW1fZnJvbVBvaW50cy5pc0VtcHR5KCkgJiYgIW1fdG9Qb2ludHMuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgICAgIFNWR1BvaW50TGlzdDo6Y3JlYXRlQW5pbWF0ZWQobV9mcm9tUG9pbnRzLCBtX3Rv
UG9pbnRzLCByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzLCBwZXJjZW50YWdlKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHRzLT5tX2FuaW1hdGVkUG9pbnRzLmNsZWFy
KCk7Ci0gICAgICAgICAgICAvLyBGYWxsIGJhY2sgdG8gZGlzY3JldGUgYW5pbWF0aW9uIGlmIHRo
ZSBwb2ludHMgYXJlIG5vdCBjb21wYXRpYmxlCi0gICAgICAgICAgICBpZiAocmVzdWx0cy0+bV9h
bmltYXRlZFBvaW50cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0cy0+bV9hbmlt
YXRlZFBvaW50cyA9ICgoYW5pbWF0aW9uTW9kZSA9PSBGcm9tVG9BbmltYXRpb24gJiYgcGVyY2Vu
dGFnZSA+IDAuNWYpIHx8IGFuaW1hdGlvbk1vZGUgPT0gVG9BbmltYXRpb24gfHwgcGVyY2VudGFn
ZSA9PSAxKSAKLSAgICAgICAgICAgICAgICAgICAgPyBtX3RvUG9pbnRzIDogbV9mcm9tUG9pbnRz
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgY2FzZSBBbmltYXRlZEFu
Z2xlOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
KyAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OiB7CiAgICAg
ICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdHMtPm1fYW5pbWF0
ZWRUeXBlKTsKQEAgLTMyNywxOCArMzA4LDEwIEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZUZyb21BbmQKICAgICAgICAgbV90b1BhdGguY2xlYXIoKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6IHsKLSAgICAgICAgbV9mcm9tUG9pbnRz
LmNsZWFyKCk7Ci0gICAgICAgIGlmIChwb2ludHNMaXN0RnJvbVNWR0RhdGEobV9mcm9tUG9pbnRz
LCBmcm9tU3RyaW5nKSkgewotICAgICAgICAgICAgbV90b1BvaW50cy5jbGVhcigpOwotICAgICAg
ICAgICAgaWYgKHBvaW50c0xpc3RGcm9tU1ZHRGF0YShtX3RvUG9pbnRzLCB0b1N0cmluZykpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgog
ICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoKICAgICBj
YXNlIEFuaW1hdGVkUmVjdDoKICAgICAgICAgZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJv
bUFuZFRvVmFsdWVzKG1fZnJvbVR5cGUsIG1fdG9UeXBlLCBmcm9tU3RyaW5nLCB0b1N0cmluZyk7
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzgyLDYgKzM1NSw3IEBAIGJvb2wgU1ZHQW5pbWF0
ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmQKICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAg
Y2FzZSBBbmltYXRlZExlbmd0aDoKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgorICAgIGNhc2Ug
QW5pbWF0ZWRQb2ludHM6CiAgICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAgICAgICAgIGVuc3VyZUFu
aW1hdG9yKCktPmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhtX2Zyb21UeXBlLCBtX3RvVHlwZSwg
ZnJvbVN0cmluZywgYnlTdHJpbmcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQxMywxMiAr
Mzg3LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0VG9CYXNlVmFsdWUKICAgICAg
ICAgbV9hbmltYXRlZFBhdGhQb2ludGVyID0gbV9hbmltYXRlZFBhdGguZ2V0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICAgICAgbV9hbmlt
YXRlZFBvaW50cy5jbGVhcigpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBbmltYXRlZEFu
Z2xlOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
KyAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OiB7CiAgICAg
ICAgIGlmICghbV9hbmltYXRlZFR5cGUpCiAgICAgICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IGVu
c3VyZUFuaW1hdG9yKCktPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVN0cmluZyk7CkBAIC00NTIs
MTIgKzQyNCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhCiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6
Ci0gICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRQb2ludHMuaXNFbXB0eSgpID8gbV9h
bmltYXRlZFN0cmluZyA6IG1fYW5pbWF0ZWRQb2ludHMudmFsdWVBc1N0cmluZygpOwotICAgICAg
ICBicmVhazsKICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0
aDoKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgorICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAg
ICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAgICAgICAgIHZhbHVlVG9BcHBseSA9IG1fYW5pbWF0ZWRU
eXBlLT52YWx1ZUFzU3RyaW5nKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtNDg3LDYgKzQ1Nyw3IEBA
IGZsb2F0IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW4KICAgICBjYXNlIEFuaW1h
dGVkQW5nbGU6CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aDoKICAgICBjYXNlIEFuaW1hdGVkTnVt
YmVyOgorICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6CiAgICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAg
ICAgICAgIHJldHVybiBlbnN1cmVBbmltYXRvcigpLT5jYWxjdWxhdGVEaXN0YW5jZSh0aGlzLCBm
cm9tU3RyaW5nLCB0b1N0cmluZyk7CiAgICAgZGVmYXVsdDoKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5oCShyZXZpc2lvbiA4OTQzMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMyArMjksMTAg
QEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgotI2luY2x1
ZGUgIlNWR1BvaW50TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBTVkdQYXRoU2VnTGlzdDsKLQogY2xhc3MgU1ZHQW5pbWF0ZUVs
ZW1lbnQgOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKQEAgLTgzLDkgKzgwLDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8U1ZH
UGF0aEJ5dGVTdHJlYW0+IG1fdG9QYXRoOwogICAgIE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbT4g
bV9hbmltYXRlZFBhdGg7CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIG1fYW5pbWF0ZWRQYXRoUG9p
bnRlcjsKLSAgICBTVkdQb2ludExpc3QgbV9mcm9tUG9pbnRzOwotICAgIFNWR1BvaW50TGlzdCBt
X3RvUG9pbnRzOwotICAgIFNWR1BvaW50TGlzdCBtX2FuaW1hdGVkUG9pbnRzOwogICAgIAogICAg
IE93blB0cjxTVkdBbmltYXRlZFR5cGU+IG1fZnJvbVR5cGU7CiAgICAgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4gbV90b1R5cGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
b2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQb2ludExpc3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNWRykgJiYgRU5B
QkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKKwor
I2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6
OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3IoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmKQorICAgIDogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IoQW5p
bWF0ZWRQb2ludHMsIGNvbnRleHRFbGVtZW50KQoreworfQorCitQYXNzT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBh
bmltdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0KG5ldyBTVkdQb2lu
dExpc3QpOworICAgIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShhbmltdGVkVHlwZS0+cG9pbnRMaXN0
KCksIHN0cmluZyk7CisgICAgcmV0dXJuIGFuaW10ZWRUeXBlLnJlbGVhc2UoKTsKK30KKwordm9p
ZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMo
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0
bywgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQorewor
ICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRvID0gY29u
c3RydWN0RnJvbVN0cmluZyh0b1N0cmluZyk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRQb2ludExp
c3RBbmltYXRvcjo6Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5
cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG8sIGNvbnN0IFN0cmluZyYgZnJv
bVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0cmluZykKK3sgICAgCisgICAgZnJvbSA9IGNvbnN0
cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CisgICAgdG8gPSBjb25zdHJ1Y3RGcm9tU3RyaW5n
KGJ5U3RyaW5nKTsKKyAgICAKKyAgICBTVkdQb2ludExpc3QmIGZyb21Qb2ludExpc3QgPSBmcm9t
LT5wb2ludExpc3QoKTsKKyAgICBTVkdQb2ludExpc3QmIHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50
TGlzdCgpOworICAgIHVuc2lnbmVkIGl0ZW1Db3VudCA9IGZyb21Qb2ludExpc3Quc2l6ZSgpOwor
ICAgIGlmICghaXRlbUNvdW50IHx8IGl0ZW1Db3VudCAhPSB0b1BvaW50TGlzdC5zaXplKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgaXRlbUNvdW50OyAr
K24pIHsKKyAgICAgICAgRmxvYXRQb2ludCYgdG8gPSB0b1BvaW50TGlzdC5hdChuKTsKKyAgICAg
ICAgdG8gKz0gZnJvbVBvaW50TGlzdC5hdChuKTsKKyAgICB9Cit9CisKK3ZvaWQgU1ZHQW5pbWF0
ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShTVkdTTUlMRWxlbWVu
dCogc21pbEVsZW1lbnQsIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93blB0cjxTVkdBbmlt
YXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG8sIE93blB0cjxTVkdB
bmltYXRlZFR5cGU+JiBhbmltYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sLCBib29sKQoreworICAgIEFTU0VSVChzbWlsRWxl
bWVudCk7CisgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOworICAgIAorICAgIFNWR1BvaW50
TGlzdCYgYW5pbWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgU1ZH
UG9pbnRMaXN0JiBmcm9tUG9pbnRMaXN0ID0gZnJvbS0+cG9pbnRMaXN0KCk7CisgICAgU1ZHUG9p
bnRMaXN0JiB0b1BvaW50TGlzdCA9IHRvLT5wb2ludExpc3QoKTsKKyAgICBpZiAoIXBlcmNlbnRh
Z2UpCisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0ID0gZnJvbVBvaW50TGlzdDsKKyAgICBlbHNl
IGlmIChwZXJjZW50YWdlID09IDEpCisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0ID0gdG9Qb2lu
dExpc3Q7CisgICAgZWxzZSB7CisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0LmNsZWFyKCk7Cisg
ICAgICAgIGlmICghZnJvbVBvaW50TGlzdC5pc0VtcHR5KCkgJiYgIXRvUG9pbnRMaXN0LmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIFNWR1BvaW50TGlzdDo6Y3JlYXRlQW5pbWF0ZWQoZnJvbVBvaW50
TGlzdCwgdG9Qb2ludExpc3QsIGFuaW1hdGVkUG9pbnRMaXN0LCBwZXJjZW50YWdlKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAvLyBGYWxsIGJhY2sgdG8gZGlzY3JldGUgYW5pbWF0aW9uIGlmIHRo
ZSBwb2ludHMgYXJlIG5vdCBjb21wYXRpYmxlCisgICAgICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0
aW9uTW9kZSA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVFbGVtZW50Kj4oc21pbEVsZW1lbnQpLT5h
bmltYXRpb25Nb2RlKCk7CisgICAgICAgIGlmIChhbmltYXRlZFBvaW50TGlzdC5pc0VtcHR5KCkp
CisgICAgICAgICAgICBhbmltYXRlZFBvaW50TGlzdCA9ICgoYW5pbWF0aW9uTW9kZSA9PSBGcm9t
VG9BbmltYXRpb24gJiYgcGVyY2VudGFnZSA+IDAuNWYpIHx8IGFuaW1hdGlvbk1vZGUgPT0gVG9B
bmltYXRpb24gfHwgcGVyY2VudGFnZSA9PSAxKSAKKyAgICAgICAgICAgID8gdG9Qb2ludExpc3Qg
OiBmcm9tUG9pbnRMaXN0OworICAgIH0KKyAgICByZXR1cm47Cit9CisKK2Zsb2F0IFNWR0FuaW1h
dGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVtZW50Kiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogRGlzdGFuY2Ug
Y2FsY3VsYXRpb24gaXMgbm90IHBvc3NpYmxlIGZvciBTVkdQb2ludExpc3QgcmlnaHQgbm93LiBX
ZSBuZWVkIHRoZSBkaXN0YW5jZSBvZiBmb3IgZXZlcnkgc2luZ2xlIHZhbHVlLgorICAgIHJldHVy
biAtMTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklN
QVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVm
IFNWR0FuaW1hdGVkUG9pbnRMaXN0X2gKKyNkZWZpbmUgU1ZHQW5pbWF0ZWRQb2ludExpc3RfaAor
CisjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yIDogcHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsK
KyAgICAKK3B1YmxpYzoKKyAgICBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yKFNWR0VsZW1l
bnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CisgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQb2lu
dExpc3RBbmltYXRvcigpIHsgfQorICAgIAorICAgIHZpcnR1YWwgUGFzc093blB0cjxTVkdBbmlt
YXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIGNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhPd25QdHI8U1ZHQW5pbWF0ZWRU
eXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1ZSwgY29uc3Qg
U3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBm
cm9tVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcm
IGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKFNWR1NNSUxFbGVtZW50KiwgZmxvYXQgcGVyY2VudGFnZSwg
dW5zaWduZWQgcmVwZWF0Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRyPFNWR0FuaW1h
dGVkVHlwZT4mIHRvVmFsdWUsIE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZFZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbVByb3Bl
cnR5SW5oZXJpdHMsIGJvb2wgdG9Qcm9wZXJ0eUluaGVyaXRzKTsKKyAgICB2aXJ0dWFsIGZsb2F0
IGNhbGN1bGF0ZURpc3RhbmNlKFNWR1NNSUxFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKK307Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAJKHJldmlzaW9uIDg5
NDMxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJTVkdBbmdsZS5oIgogI2luY2x1ZGUg
IlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgorI2luY2x1ZGUg
IlNWR1BvaW50TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDYgKzQ3LDkg
QEAgU1ZHQW5pbWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKICAgICBjYXNlIEFuaW1hdGVk
TnVtYmVyOgogICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlcjsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBbmltYXRlZFBvaW50czoKKyAgICAgICAgZGVsZXRlIG1fZGF0YS5wb2ludExpc3Q7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgogICAgICAgICBkZWxldGUg
bV9kYXRhLnJlY3Q7CiAgICAgICAgIGJyZWFrOwpAQCAtNzksNiArODMsMTQgQEAgUGFzc093blB0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVAogICAgIHJldHVybiBhbmltYXRlZFR5cGUu
cmVsZWFzZSgpOwogfQogCitQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVQb2ludExpc3QoU1ZHUG9pbnRMaXN0KiBwb2ludExpc3QpCit7CisgICAgQVNT
RVJUKHBvaW50TGlzdCk7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gYW5pbWF0ZWRUeXBl
ID0gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFBvaW50cykpOworICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLnBvaW50TGlzdCA9IHBvaW50TGlzdDsKKyAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlLnJlbGVhc2UoKTsKK30KKwogUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChGbG9hdFJlY3QqIHJlY3QpCiB7CiAgICAgQVNTRVJU
KHJlY3QpOwpAQCAtMTA1LDYgKzExNywxMiBAQCBmbG9hdCYgU1ZHQW5pbWF0ZWRUeXBlOjpudW1i
ZXIoKQogICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKIH0KIAorU1ZHUG9pbnRMaXN0JiBTVkdB
bmltYXRlZFR5cGU6OnBvaW50TGlzdCgpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZFBvaW50cyk7CisgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OworfQorCiBGbG9hdFJlY3Qm
IFNWR0FuaW1hdGVkVHlwZTo6cmVjdCgpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZFJlY3QpOwpAQCAtMTIzLDYgKzE0MSw5IEBAIFN0cmluZyBTVkdBbmltYXRlZFR5cGU6OnZhbHVl
QXNTdHJpbmcoKQogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CiAgICAgICAgIEFTU0VSVChtX2Rh
dGEubnVtYmVyKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKCptX2RhdGEubnVtYmVy
KTsKKyAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgorICAgICAgICBBU1NFUlQobV9kYXRhLnBvaW50
TGlzdCk7CisgICAgICAgIHJldHVybiBtX2RhdGEucG9pbnRMaXN0LT52YWx1ZUFzU3RyaW5nKCk7
CiAgICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAgICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7CiAg
ICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eCgpKSArICcgJyArIFN0
cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAnCkBAIC0xNTAsNiArMTcxLDExIEBA
IGJvb2wgU1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKGMKICAgICAgICAgQVNTRVJU
KG1fZGF0YS5udW1iZXIpOwogICAgICAgICBwYXJzZU51bWJlckZyb21TdHJpbmcodmFsdWUsICpt
X2RhdGEubnVtYmVyKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRlZFBvaW50czoK
KyAgICAgICAgQVNTRVJUKG1fZGF0YS5wb2ludExpc3QpOworICAgICAgICBtX2RhdGEucG9pbnRM
aXN0LT5jbGVhcigpOworICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0RhdGEoKm1fZGF0YS5wb2lu
dExpc3QsIHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAg
ICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7CiAgICAgICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1f
ZGF0YS5yZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlz
aW9uIDg5NDMxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZs
b2F0UmVjdDsKIGNsYXNzIFNWR0FuZ2xlOwogY2xhc3MgU1ZHTGVuZ3RoOworY2xhc3MgU1ZHUG9p
bnRMaXN0OwogCiBjbGFzcyBTVkdBbmltYXRlZFR5cGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtMzcsNiArMzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVBbmdsZShTVkdBbmdsZSopOwogICAgIHN0YXRpYyBQYXNz
T3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKFNWR0xlbmd0aCopOwogICAgIHN0
YXRpYyBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyKGZsb2F0Kik7Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQb2ludExpc3QoU1ZH
UG9pbnRMaXN0Kik7CiAgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGVSZWN0KEZsb2F0UmVjdCopOwogICAgIAogICAgIEFuaW1hdGVkQXR0cmlidXRlVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CkBAIC00NCw2ICs0Niw3IEBAIHB1YmxpYzoKICAg
ICBTVkdBbmdsZSYgYW5nbGUoKTsKICAgICBTVkdMZW5ndGgmIGxlbmd0aCgpOwogICAgIGZsb2F0
JiBudW1iZXIoKTsKKyAgICBTVkdQb2ludExpc3QmIHBvaW50TGlzdCgpOwogICAgIEZsb2F0UmVj
dCYgcmVjdCgpOwogCiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKTsKQEAgLTY0LDYgKzY3LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgU1ZHQW5nbGUqIGFuZ2xlOwogICAgICAgICBTVkdMZW5ndGgq
IGxlbmd0aDsKICAgICAgICAgZmxvYXQqIG51bWJlcjsKKyAgICAgICAgU1ZHUG9pbnRMaXN0KiBw
b2ludExpc3Q7CiAgICAgICAgIEZsb2F0UmVjdCogcmVjdDsKICAgICB9IG1fZGF0YTsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCShyZXZpc2lvbiA4OTQz
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVy
LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFJlY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsNiArNDEsOCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpKTsKICAgICAgICAgY2FzZSBBbmlt
YXRlZE51bWJlcjoKICAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRO
dW1iZXJBbmltYXRvcihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOworICAgICAgICBj
YXNlIEFuaW1hdGVkUG9pbnRzOgorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdB
bmltYXRlZFBvaW50TGlzdEFuaW1hdG9yKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKSk7
CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBTVkdBbmltYXRlZFJlY3RBbmltYXRvcihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSkpOwogICAgICAgICBkZWZhdWx0OgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODk0NzYpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0w
Ni0yMiAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnZlcnQgU1ZHUG9pbnRMaXN0IHRvIFNW
R0FuaW1hdG9yRmFjdG9yeSBjb25jZXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MzE3MQorCisgICAgICAgIFJlbmFtZWQgdGVzdCBhbmltYXRlLXBv
aW50cyB0byBzdmdwb2ludGxpc3QtYW5pbWF0aW9uLTEgYW5kIGNsZWFuZWQgaXQgdXAuCisgICAg
ICAgIHN2Z3BvaW50bGlzdC1hbmltYXRpb24tMiBjaGVja3MgZnJvbS1ieSBhbmltYXRpb25zIG9m
IFNWR1BvaW50TGlzdHMuCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBvaW50
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZS1wb2ludHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvYW5pbWF0ZS1wb2ludHMuanM6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS5qczogQWRkZWQuCisgICAg
ICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6Cisg
ICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi5qczogQWRkZWQuCisgICAgICAgIChzYW1wbGUx
KToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6CisgICAgICAgIChleGVj
dXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlv
bi0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc3ZncG9p
bnRsaXN0LWFuaW1hdGlvbi0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25z
L3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi5odG1sOiBBZGRlZC4KKwog
MjAxMS0wNi0yMiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCB0ZXN0IHRoYXQgZ290IHJlbmFtZWQuICBTaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIHdpdGgg
cjg5NDY2LgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wb2ludHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcG9pbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODk0MzApCisrKyBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBvaW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTggKzAsMCBAQAotU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cwotCi1U
ZXN0cyBpZiBwb2ludHMgb2YgYSBwb2x5Z29uIGFyZSBhbmltYXRlYWJsZS4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IGlzIDIw
MAotUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkgaXMgMjAwCi1QQVNTIHBvbHkucG9pbnRz
LmdldEl0ZW0oMikueCBpcyAxNTAKLVBBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgyKS55IGlzIDE1
MAotUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnggaXMgYWxtb3N0IDEwMCwganVzdCBiZWZv
cmUtZW5kCi1QQVNTIHBvbHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAyMDAKLVBBU1MgcG9seS5w
b2ludHMuZ2V0SXRlbSgyKS55IGlzIDIwMAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtcG9pbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZS1wb2ludHMuaHRtbAkocmV2aXNpb24gODk0MzApCisrKyBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9hbmltYXRlLXBvaW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
LTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHM8L2gxPgot
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvYW5pbWF0ZS1wb2ludHMuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0
LWFuaW1hdGlvbi0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlv
bi0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorU1ZHIDEuMSBk
eW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0cyBmcm9tLXRvIGFuaW1hdGlvbiBvZiBwb2lu
dHMgb24gcG9seWdvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBv
bHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAyMDAKK1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgy
KS55IGlzIDIwMAorUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnggaXMgMTUwCitQQVNTIHBv
bHkucG9pbnRzLmdldEl0ZW0oMikueSBpcyAxNTAKK1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgy
KS54IGlzIDEwMAorUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkgaXMgMTAwCitQQVNTIHBv
bHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAyMDAKK1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgy
KS55IGlzIDIwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z3BvaW50bGlzdC1hbmlt
YXRpb24tMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z3BvaW50bGlzdC1hbmltYXRpb24tMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0xLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0xLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZncG9pbnRsaXN0LWFuaW1hdGlvbi0yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z3BvaW50bGlzdC1hbmltYXRpb24tMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTkgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdHMgZnJvbS1i
eSBhbmltYXRpb24gb2YgcG9pbnRzIG9uIHBvbHlnb25zLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnggaXMgMjAwCitQQVNTIHBv
bHkucG9pbnRzLmdldEl0ZW0oMikueSBpcyAyMDAKK1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgy
KS54IGlzIDI1MAorUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkgaXMgMjUwCitQQVNTIHBv
bHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyAzMDAKK1BBU1MgcG9seS5wb2ludHMuZ2V0SXRlbSgy
KS55IGlzIDMwMAorUEFTUyBwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnggaXMgMjAwCitQQVNTIHBv
bHkucG9pbnRzLmdldEl0ZW0oMikueSBpcyAyMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTIuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z3BvaW50bGlzdC1hbmltYXRpb24t
Mi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
VGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRp
b25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z3BvaW50
bGlzdC1hbmltYXRpb24tMi5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1wb2ludHMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2Fu
aW1hdGUtcG9pbnRzLmpzCShyZXZpc2lvbiA4OTQzMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLXBvaW50cy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MSw3MCArMCwwIEBACi0vLyBGSVhNRTogVGhpcyB0ZXN0IHdpbGwgYmVjb21lIHVzZWZ1bCBvbmNl
IHdlIGhhdmUgYmFzaWMgYW5pbVZhbCBzdXBwb3J0LiBGb3Igbm93IGl0J3MganVzdCB0ZXN0aW5n
IHRoZSBTVkcgYW5pbWF0aW9uIHRlc3QgaW5mcmFzdHJ1Y3R1cmUKLWRlc2NyaXB0aW9uKCJUZXN0
cyBpZiBwb2ludHMgb2YgYSBwb2x5Z29uIGFyZSBhbmltYXRlYWJsZS4iKTsKLWNyZWF0ZVNWR1Rl
c3RDYXNlKCk7Ci0KLS8vIFNldHVwIHRlc3QgZG9jdW1lbnQKLXZhciBwb2x5ID0gY3JlYXRlU1ZH
RWxlbWVudCgicG9seWdvbiIpOwotcG9seS5zZXRBdHRyaWJ1dGUoImlkIiwgInBvbHkiKTsKLXBv
bHkuc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVuIik7Ci1wb2x5LnNldEF0dHJpYnV0ZSgicG9p
bnRzIiwgIjAsMCAyMDAsMCAyMDAsMjAwIDAsMjAwIik7Ci1wb2x5LnNldEF0dHJpYnV0ZSgib25j
bGljayIsICJleGVjdXRlVGVzdCgpIik7Ci0KLXZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVu
dCgiYW5pbWF0ZSIpOwotYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOwot
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAicG9pbnRzIik7Ci1hbmltYXRl
LnNldEF0dHJpYnV0ZSgiZnJvbSIsICIwLDAgMjAwLDAgMjAwLDIwMCAwLDIwMCIpOwotYW5pbWF0
ZS5zZXRBdHRyaWJ1dGUoInRvIiwgIjAsMCAxMDAsMCAxMDAsMTAwIDAsMTAwIik7Ci1hbmltYXRl
LnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKLWFuaW1hdGUuc2V0QXR0cmlidXRlKCJk
dXIiLCAiNHMiKTsKLXBvbHkuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Ci1yb290U1ZHRWxlbWVudC5h
cHBlbmRDaGlsZChwb2x5KTsKLQotLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKLWZ1bmN0aW9uIHNh
bXBsZTEoKSB7Ci0gICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucwotICAgIHNob3Vs
ZEJlKCJwb2x5LnBvaW50cy5nZXRJdGVtKDIpLngiLCAiMjAwIik7Ci0gICAgc2hvdWxkQmUoInBv
bHkucG9pbnRzLmdldEl0ZW0oMikueSIsICIyMDAiKTsKLSAgICAvL3Nob3VsZEJlKCJwb2x5LmFu
aW1hdGVkUG9pbnRzLmdldEl0ZW0oMikueCIsICIyMDAiKTsKLSAgICAvL3Nob3VsZEJlKCJwb2x5
LmFuaW1hdGVkUG9pbnRzLmdldEl0ZW0oMikueSIsICIyMDAiKTsKLX0KLQotZnVuY3Rpb24gc2Ft
cGxlMigpIHsKLSAgICAvLyBGSVhNRTogQWRkIGFuaW1WYWwgc3VwcG9ydC4gQW5pbWF0ZXMgYmFz
ZVZhbCBhdCB0aGUgbW9tZW50LgotICAgIC8vIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwu
dmFsdWUiLCAiMTUwIik7Ci0gICAgLy8gc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1
ZSIsICIyMDAiKTsKLQotICAgIC8vIENoZWNrIGhhbGYtdGltZSBjb25kaXRpb25zCi0gICAgc2hv
dWxkQmUoInBvbHkucG9pbnRzLmdldEl0ZW0oMikueCIsICIxNTAiKTsKLSAgICBzaG91bGRCZSgi
cG9seS5wb2ludHMuZ2V0SXRlbSgyKS55IiwgIjE1MCIpOwotICAgIC8vc2hvdWxkQmUoInBvbHku
YW5pbWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS54IiwgIjE1MCIpOwotICAgIC8vc2hvdWxkQmUoInBv
bHkuYW5pbWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS55IiwgIjE1MCIpOwotfQotCi1mdW5jdGlvbiBz
YW1wbGUzKCkgewotICAgIC8vIEZJWE1FOiBBZGQgYW5pbVZhbCBzdXBwb3J0LiBBbmltYXRlcyBi
YXNlVmFsIGF0IHRoZSBtb21lbnQuCi0gICAgLy8gc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZh
bC52YWx1ZSIsICIxMDAiKTsKLSAgICAvLyBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZh
bHVlIiwgIjIwMCIpOwotCi0gICAgLy8gQ2hlY2sganVzdCBiZWZvcmUtZW5kIGNvbmRpdGlvbnMK
LSAgICB2YXIgb2sgPSBpc0Nsb3NlRW5vdWdoKHBvbHkucG9pbnRzLmdldEl0ZW0oMikueCwgMTAw
LCAwLjAxKTsKLSAgICBpZiAob2spCi0gICAgICAgIHRlc3RQYXNzZWQoInBvbHkucG9pbnRzLmdl
dEl0ZW0oMikueCBpcyBhbG1vc3QgMTAwLCBqdXN0IGJlZm9yZS1lbmQiKTsKLSAgICBlbHNlCi0g
ICAgICAgIHRlc3RGYWlsZWQoInBvbHkucG9pbnRzLmdldEl0ZW0oMikueCBpcyBOT1QgYWxtb3N0
IDEwMCwgYXMgZXhwZWN0ZWQiKTsKLX0KLQotZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7Ci0gICAg
Y29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCi0gICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwg
ZWxlbWVudElkLCBzYW1wbGVDYWxsYmFja10KLSAgICAgICAgWyJhbmltYXRpb24iLCAwLjAsICAg
ICJwb2x5Iiwgc2FtcGxlMV0sCi0gICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAicG9seSIs
IHNhbXBsZTJdLAotICAgICAgICBbImFuaW1hdGlvbiIsIDMuOTk5OSwgInBvbHkiLCBzYW1wbGUz
XSwKLSAgICAgICAgWyJhbmltYXRpb24iLCA0LjAgLCAgICJwb2x5Iiwgc2FtcGxlMV0KLSAgICBd
OwotCi0gICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Ci19Ci0KLS8vIEJlZ2lu
IHRlc3QgYXN5bmMKLXdpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDE1LCAzMCkiLCAw
KTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncG9p
bnRsaXN0LWFuaW1hdGlvbi0xLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z3BvaW50bGlzdC1hbmltYXRpb24tMS5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw2MCBAQAorZGVzY3JpcHRpb24oIlRlc3RzIGZyb20tdG8gYW5pbWF0
aW9uIG9mIHBvaW50cyBvbiBwb2x5Z29ucy4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7CisKKy8v
IFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciBwb2x5ID0gY3JlYXRlU1ZHRWxlbWVudCgicG9seWdv
biIpOworcG9seS5zZXRBdHRyaWJ1dGUoImlkIiwgInBvbHkiKTsKK3BvbHkuc2V0QXR0cmlidXRl
KCJmaWxsIiwgImdyZWVuIik7Citwb2x5LnNldEF0dHJpYnV0ZSgicG9pbnRzIiwgIjAsMCAyMDAs
MCAyMDAsMjAwIDAsMjAwIik7Citwb2x5LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRl
VGVzdCgpIik7CisKK3ZhciBhbmltYXRlID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZSIpOwor
YW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImFuaW1hdGlvbiIpOworYW5pbWF0ZS5zZXRBdHRy
aWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAicG9pbnRzIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
ZnJvbSIsICIwLDAgMjAwLDAgMjAwLDIwMCAwLDIwMCIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUo
InRvIiwgIjAsMCAxMDAsMCAxMDAsMTAwIDAsMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgi
YmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3Bv
bHkuYXBwZW5kQ2hpbGQoYW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChwb2x5
KTsKKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAg
Ly8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJwb2x5LnBvaW50
cy5nZXRJdGVtKDIpLngiLCAiMjAwIik7CisgICAgc2hvdWxkQmUoInBvbHkucG9pbnRzLmdldEl0
ZW0oMikueSIsICIyMDAiKTsKKyAgICAvL3Nob3VsZEJlKCJwb2x5LmFuaW1hdGVkUG9pbnRzLmdl
dEl0ZW0oMikueCIsICIyMDAiKTsKKyAgICAvL3Nob3VsZEJlKCJwb2x5LmFuaW1hdGVkUG9pbnRz
LmdldEl0ZW0oMikueSIsICIyMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICAv
LyBDaGVjayBoYWxmLXRpbWUgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJwb2x5LnBvaW50cy5n
ZXRJdGVtKDIpLngiLCAiMTUwIik7CisgICAgc2hvdWxkQmUoInBvbHkucG9pbnRzLmdldEl0ZW0o
MikueSIsICIxNTAiKTsKKyAgICAvL3Nob3VsZEJlKCJwb2x5LmFuaW1hdGVkUG9pbnRzLmdldEl0
ZW0oMikueCIsICIyNTAiKTsKKyAgICAvL3Nob3VsZEJlKCJwb2x5LmFuaW1hdGVkUG9pbnRzLmdl
dEl0ZW0oMikueSIsICIyNTAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICAvLyBD
aGVjayBqdXN0IGJlZm9yZS1lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
InBvbHkucG9pbnRzLmdldEl0ZW0oMikueCIsICIxMDAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJwb2x5LnBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMTAwIiwgMC4wMSk7CisgICAg
Ly9zaG91bGRCZUNsb3NlRW5vdWdoKCJwb2x5LmFuaW1hdGVkUG9pbnRzLmdldEl0ZW0oMikueCIs
ICIzMDAiLCAwLjAxKTsKKyAgICAvL3Nob3VsZEJlQ2xvc2VFbm91Z2goInBvbHkuYW5pbWF0ZWRQ
b2ludHMuZ2V0SXRlbSgyKS55IiwgIjMwMCIsIDAuMDEpOworfQorCitmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgLy8gW2FuaW1h
dGlvbklkLCB0aW1lLCBlbGVtZW50SWQsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbImFuaW1h
dGlvbiIsIDAuMCwgICAgInBvbHkiLCBzYW1wbGUxXSwKKyAgICAgICAgWyJhbmltYXRpb24iLCAy
LjAsICAgICJwb2x5Iiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAi
cG9seSIsIHNhbXBsZTNdLAorICAgICAgICBbImFuaW1hdGlvbiIsIDQuMCAsICAgInBvbHkiLCBz
YW1wbGUxXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsK
K30KKworLy8gQmVnaW4gdGVzdCBhc3luYword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRh
dGUoMTUsIDMwKSIsIDApOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncG9pbnRsaXN0LWFuaW1h
dGlvbi0yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9zdmdwb2ludGxpc3QtYW5pbWF0aW9uLTIuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncG9pbnRsaXN0LWFuaW1hdGlv
bi0yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACitkZXNjcmlwdGlvbigiVGVzdHMg
ZnJvbS1ieSBhbmltYXRpb24gb2YgcG9pbnRzIG9uIHBvbHlnb25zLiIpOworY3JlYXRlU1ZHVGVz
dENhc2UoKTsKKworLy8gU2V0dXAgdGVzdCBkb2N1bWVudAordmFyIHBvbHkgPSBjcmVhdGVTVkdF
bGVtZW50KCJwb2x5Z29uIik7Citwb2x5LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9seSIpOworcG9s
eS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3BvbHkuc2V0QXR0cmlidXRlKCJwb2lu
dHMiLCAiMCwwIDIwMCwwIDIwMCwyMDAgMCwyMDAiKTsKK3BvbHkuc2V0QXR0cmlidXRlKCJvbmNs
aWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVtZW50
KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7Cith
bmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJwb2ludHMiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJmcm9tIiwgIjAsMCAyMDAsMCAyMDAsMjAwIDAsMjAwIik7CithbmltYXRl
LnNldEF0dHJpYnV0ZSgiYnkiLCAiMCwwIDEwMCwwIDEwMCwxMDAgMCwxMDAiKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1
ciIsICI0cyIpOworcG9seS5hcHBlbmRDaGlsZChhbmltYXRlKTsKK3Jvb3RTVkdFbGVtZW50LmFw
cGVuZENoaWxkKHBvbHkpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVuY3Rpb24gc2Ft
cGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25zCisgICAgc2hvdWxk
QmUoInBvbHkucG9pbnRzLmdldEl0ZW0oMikueCIsICIyMDAiKTsKKyAgICBzaG91bGRCZSgicG9s
eS5wb2ludHMuZ2V0SXRlbSgyKS55IiwgIjIwMCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5p
bWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS54IiwgIjIwMCIpOworICAgIC8vc2hvdWxkQmUoInBvbHku
YW5pbWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS55IiwgIjIwMCIpOworfQorCitmdW5jdGlvbiBzYW1w
bGUyKCkgeworICAgIC8vIENoZWNrIGhhbGYtdGltZSBjb25kaXRpb25zCisgICAgc2hvdWxkQmUo
InBvbHkucG9pbnRzLmdldEl0ZW0oMikueCIsICIyNTAiKTsKKyAgICBzaG91bGRCZSgicG9seS5w
b2ludHMuZ2V0SXRlbSgyKS55IiwgIjI1MCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5pbWF0
ZWRQb2ludHMuZ2V0SXRlbSgyKS54IiwgIjI1MCIpOworICAgIC8vc2hvdWxkQmUoInBvbHkuYW5p
bWF0ZWRQb2ludHMuZ2V0SXRlbSgyKS55IiwgIjI1MCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUz
KCkgeworICAgIC8vIENoZWNrIGp1c3QgYmVmb3JlLWVuZCBjb25kaXRpb25zCisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgicG9seS5wb2ludHMuZ2V0SXRlbSgyKS54IiwgIjMwMCIsIDAuMDEpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInBvbHkucG9pbnRzLmdldEl0ZW0oMikueSIsICIzMDAi
LCAwLjAxKTsKKyAgICAvL3Nob3VsZEJlQ2xvc2VFbm91Z2goInBvbHkuYW5pbWF0ZWRQb2ludHMu
Z2V0SXRlbSgyKS54IiwgIjMwMCIsIDAuMDEpOworICAgIC8vc2hvdWxkQmVDbG9zZUVub3VnaCgi
cG9seS5hbmltYXRlZFBvaW50cy5nZXRJdGVtKDIpLnkiLCAiMzAwIiwgMC4wMSk7Cit9CisKK2Z1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAg
ICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisg
ICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicG9seSIsIHNhbXBsZTFdLAorICAgICAgICBb
ImFuaW1hdGlvbiIsIDIuMCwgICAgInBvbHkiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJhbmltYXRp
b24iLCAzLjk5OTksICJwb2x5Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4w
ICwgICAicG9seSIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhw
ZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0VGltZW91
dCgidHJpZ2dlclVwZGF0ZSgxNSwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsK
</data>
<flag name="review"
          id="92405"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>