<?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>72011</bug_id>
          
          <creation_ts>2011-11-10 04:05:13 -0800</creation_ts>
          <short_desc>Move unit resolving for all resources to rendering/</short_desc>
          <delta_ts>2011-11-10 11:28:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>71780</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</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>499778</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 04:05:13 -0800</bug_when>
    <thetext>Follow-up for bug 71780. Deploy SVGLengthContext in more places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499871</commentid>
    <comment_count>1</comment_count>
      <attachid>114491</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 07:00:25 -0800</bug_when>
    <thetext>Created attachment 114491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499872</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 07:01:28 -0800</bug_when>
    <thetext>Attachment 114491 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:593:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499895</commentid>
    <comment_count>3</comment_count>
      <attachid>114491</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 07:27:14 -0800</bug_when>
    <thetext>Comment on attachment 114491
Patch

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

r=me with some nits.

&gt; Source/WebCore/rendering/svg/RenderSVGInlineText.h:56
&gt; -    virtual FloatRect objectBoundingBox() const { return FloatRect(); }
&gt; +    virtual FloatRect objectBoundingBox() const { return linesBoundingBox(); }

Awesome! :)

&gt; Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:188
&gt; -    filterData-&gt;builder = buildPrimitives(filterData-&gt;filter.get());
&gt; +    filterData-&gt;builder = buildPrimitives(static_cast&lt;SVGFilter*&gt;(filterData-&gt;filter.get()));

This cast looks unnecessary.

&gt; Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp:65
&gt; +    // Eventually adjust focal points, as described below

Missing period at the end of this sentence.

&gt; Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h:50
&gt; +    void adjustFocalPointIfNeeded(float radius, const FloatPoint&amp; centerPoint, FloatPoint&amp;) const;

I think we should name the last argument here (focalPoint.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499898</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 07:33:31 -0800</bug_when>
    <thetext>Fixed Andreas issues. Landed in r99854. Waiting for bots to cycle...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499904</commentid>
    <comment_count>5</comment_count>
      <attachid>114491</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 07:46:42 -0800</bug_when>
    <thetext>Comment on attachment 114491
Patch

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

New failing tests:
svg/filters/filter-on-filter-for-text.svg
svg/filters/filter-on-tspan.svg
svg/custom/text-filter.svg
svg/filters/feColorMatrix-values.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499924</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 08:22:10 -0800</bug_when>
    <thetext>Landed qt rebaselines in r99858.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500067</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 11:23:14 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Landed qt rebaselines in r99858.
Landed gtk/win rebaselines in r99882.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500069</commentid>
    <comment_count>8</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 11:28:11 -0800</bug_when>
    <thetext>Ojan rebaselined Chromium in r99880 - we&apos;re done. Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114491</attachid>
            <date>2011-11-10 07:00:25 -0800</date>
            <delta_ts>2011-11-10 07:46:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>MoveForward.diff</filename>
            <type>text/plain</type>
            <size>51455</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMTEtMTAgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgTW92ZSB1bml0IHJl
c29sdmluZyBmb3IgYWxsIHJlc291cmNlcyB0byByZW5kZXJpbmcvCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBtYXNrQm91bmRpbmdCb3goKS9m
aWx0ZXJCb3VuZGluZ0JveCgpLCB0byBhdm9pZCBkb2luZyBsZW5ndGggcmVzb2x1dGlvbiBpbiBz
dmcvLgorICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZSogbm93IHVzZXMgU1ZHTGVuZ3RoQ29udGV4
dDo6cmVzb2x2ZVJlY3RhbmdsZSwgdG8gZG8gdGhpcyB3aGlsZSBsYXlpbmcgb3V0LgorCisgICAg
ICAgIE1vdmUgbGluZWFyIGdyYWRpZW50IHN0YXJ0L2VuZCBwb2ludCwgcmFkaWFsIGdyYWRpZW50
IGZvY2FsL2NlbnRlciBwb2ludCwgcmFkaXVzIGNhbGN1bGF0aW9ucyBpbnRvCisgICAgICAgIHRo
ZWlyIFJlbmRlclNWR1Jlc291cmNlIGNsYXNzZXMsIGNsZWFudXAgY29kZSBhIGJpdC4KKworICAg
ICAgICBDb252ZXJ0IGZpbHRlcnMgdG8gdXNlIFNWR0xlbmd0aENvbnRleHQuIEZpeCBEUlQgZHVt
cHMgZm9yIGZpbHRlcnMsIHdoaWxlIEknbSBhdCBpdCwgdG8gZ2l2ZQorICAgICAgICBtZWFuaW5n
ZnVsIHZhbHVlcywgd2hlbiBvYmplY3RCb3VuZGluZ0JveCBpcyB1c2VkIGFzIHByaW1pdGl2ZSB1
bml0cywgd2hlbiBhcHBseWluZyB0byA8dGV4dD4vPHRzcGFuPnMuCisKKyAgICAgICAgU2V2ZXJh
bCB0ZXN0cyByZXN1bHRzIG5lZWQgcmViYXNlbGluZXMgb24gYWxsIHBsYXRmb3Jtcy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmVUZXh0OjpvYmplY3RCb3VuZGluZ0JveCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlcjo6YnVpbGRQcmltaXRpdmVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpyZXNvdXJjZUJvdW5kaW5nQm94KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6ZGV0ZXJtaW5l
RmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlR3JhZGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVz
b3VyY2VHcmFkaWVudDo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ6OnN0YXJ0UG9pbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudDo6ZW5kUG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudDo6YnVpbGRHcmFkaWVudCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6cmVzb3VyY2VCb3Vu
ZGluZ0JveCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlh
bEdyYWRpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUmFkaWFs
R3JhZGllbnQ6OmNlbnRlclBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291
cmNlUmFkaWFsR3JhZGllbnQ6OmZvY2FsUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudDo6cmFkaXVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ6OmFkanVzdEZvY2FsUG9pbnRJZk5lZWRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50OjpidWls
ZEdyYWRpZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFk
aWFsR3JhZGllbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1Rl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVTVkdSZXNvdXJjZUNvbnRhaW5lcik6Cisg
ICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdGaWx0
ZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXM6OnNldFN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oOgorICAgICAgICAqIHN2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAqIHN2
Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZpbHRlcjo6ZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UpOgorCiAyMDExLTExLTEwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBkbyBub3QgaGlnaGxpZ2h0IGZpbGVzIGxhcmdlciB0aGFuIDEwS0xPQy4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAkocmV2
aXNpb24gOTk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw0MiArMjQsMzQgQEAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEZpbHRlckVmZmVj
dDsKK2NsYXNzIEZpbHRlckVmZmVjdDsKIAotICAgIGNsYXNzIEZpbHRlciA6IHB1YmxpYyBSZWZD
b3VudGVkPEZpbHRlcj4gewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RmlsdGVyKCkg
eyB9Ci0KLSAgICAgICAgdm9pZCBzZXRTb3VyY2VJbWFnZShQYXNzT3duUHRyPEltYWdlQnVmZmVy
PiBzb3VyY2VJbWFnZSkgeyBtX3NvdXJjZUltYWdlID0gc291cmNlSW1hZ2U7IH0KLSAgICAgICAg
SW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKCkgeyByZXR1cm4gbV9zb3VyY2VJbWFnZS5nZXQoKTsg
fQotCi0gICAgICAgIEZsb2F0U2l6ZSBmaWx0ZXJSZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9maWx0ZXJSZXNvbHV0aW9uOyB9Ci0gICAgICAgIHZvaWQgc2V0RmlsdGVyUmVzb2x1dGlvbihj
b25zdCBGbG9hdFNpemUmIGZpbHRlclJlc29sdXRpb24pIHsgbV9maWx0ZXJSZXNvbHV0aW9uID0g
ZmlsdGVyUmVzb2x1dGlvbjsgfQotCi0gICAgICAgIHZpcnR1YWwgZmxvYXQgYXBwbHlIb3Jpem9u
dGFsU2NhbGUoZmxvYXQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlICogbV9maWx0ZXJSZXNv
bHV0aW9uLndpZHRoKCk7IH0KLSAgICAgICAgdmlydHVhbCBmbG9hdCBhcHBseVZlcnRpY2FsU2Nh
bGUoZmxvYXQgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlICogbV9maWx0ZXJSZXNvbHV0aW9u
LmhlaWdodCgpOyB9Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzb3VyY2VJ
bWFnZVJlY3QoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJl
Z2lvbigpIGNvbnN0ID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgRmxvYXRQb2ludCBt
YXBBYnNvbHV0ZVBvaW50VG9Mb2NhbFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdCB7IHJl
dHVybiBGbG9hdFBvaW50KCk7IH0KLQotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBmaWx0ZXJS
ZWdpb25JblVzZXJTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9Ci0KLSAgICAg
ICAgdmlydHVhbCBib29sIGVmZmVjdEJvdW5kaW5nQm94TW9kZSgpIGNvbnN0ID0gMDsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gbV9zb3VyY2VJbWFnZTsKLSAg
ICAgICAgRmxvYXRTaXplIG1fZmlsdGVyUmVzb2x1dGlvbjsKLSAgICB9OworY2xhc3MgRmlsdGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsdGVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Rmls
dGVyKCkgeyB9CisKKyAgICB2b2lkIHNldFNvdXJjZUltYWdlKFBhc3NPd25QdHI8SW1hZ2VCdWZm
ZXI+IHNvdXJjZUltYWdlKSB7IG1fc291cmNlSW1hZ2UgPSBzb3VyY2VJbWFnZTsgfQorICAgIElt
YWdlQnVmZmVyKiBzb3VyY2VJbWFnZSgpIHsgcmV0dXJuIG1fc291cmNlSW1hZ2UuZ2V0KCk7IH0K
KworICAgIEZsb2F0U2l6ZSBmaWx0ZXJSZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9maWx0
ZXJSZXNvbHV0aW9uOyB9CisgICAgdm9pZCBzZXRGaWx0ZXJSZXNvbHV0aW9uKGNvbnN0IEZsb2F0
U2l6ZSYgZmlsdGVyUmVzb2x1dGlvbikgeyBtX2ZpbHRlclJlc29sdXRpb24gPSBmaWx0ZXJSZXNv
bHV0aW9uOyB9CisKKyAgICB2aXJ0dWFsIGZsb2F0IGFwcGx5SG9yaXpvbnRhbFNjYWxlKGZsb2F0
IHZhbHVlKSBjb25zdCB7IHJldHVybiB2YWx1ZSAqIG1fZmlsdGVyUmVzb2x1dGlvbi53aWR0aCgp
OyB9CisgICAgdmlydHVhbCBmbG9hdCBhcHBseVZlcnRpY2FsU2NhbGUoZmxvYXQgdmFsdWUpIGNv
bnN0IHsgcmV0dXJuIHZhbHVlICogbV9maWx0ZXJSZXNvbHV0aW9uLmhlaWdodCgpOyB9CisgICAg
CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0ID0gMDsKKyAgICAKKyAgICB2
aXJ0dWFsIEZsb2F0UG9pbnQgbWFwQWJzb2x1dGVQb2ludFRvTG9jYWxQb2ludChjb25zdCBGbG9h
dFBvaW50JikgY29uc3QgeyByZXR1cm4gRmxvYXRQb2ludCgpOyB9CisKK3ByaXZhdGU6CisgICAg
T3duUHRyPEltYWdlQnVmZmVyPiBtX3NvdXJjZUltYWdlOworICAgIEZsb2F0U2l6ZSBtX2ZpbHRl
clJlc29sdXRpb247Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCShy
ZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKICAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSopOwogCi0gICAgLy8gRklYTUU6IFdlIG5lZWQgb2JqZWN0Qm91bmRpbmdCb3ggZm9yIERS
VCByZXN1bHRzIGFuZCBmaWx0ZXJzIGF0IHRoZSBtb21lbnQuCi0gICAgLy8gVGhpcyBzaG91bGQg
YmUgZml4ZWQgdG8gZ2l2ZSBiYWNrIHRoZSBvYmplY3RCb3VuZGluZ0JveCBvZiB0aGUgdGV4dCBy
b290LgotICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgeyBy
ZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGlu
Z0JveCgpIGNvbnN0IHsgcmV0dXJuIGxpbmVzQm91bmRpbmdCb3goKTsgfQogCiAgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1NWR0lubGluZVRleHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcAkocmV2aXNpb24gOTk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMs
MTAgKzkzLDEwIEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnJlbW92ZUNsaWUKICAg
ICBtYXJrQ2xpZW50Rm9ySW52YWxpZGF0aW9uKGNsaWVudCwgbWFya0ZvckludmFsaWRhdGlvbiA/
IEJvdW5kYXJpZXNJbnZhbGlkYXRpb24gOiBQYXJlbnRPbmx5SW52YWxpZGF0aW9uKTsKIH0KIAot
UGFzc1JlZlB0cjxTVkdGaWx0ZXJCdWlsZGVyPiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YnVp
bGRQcmltaXRpdmVzKEZpbHRlciogZmlsdGVyKQorUGFzc1JlZlB0cjxTVkdGaWx0ZXJCdWlsZGVy
PiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YnVpbGRQcmltaXRpdmVzKFNWR0ZpbHRlciogZmls
dGVyKQogewogICAgIFNWR0ZpbHRlckVsZW1lbnQqIGZpbHRlckVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxTVkdGaWx0ZXJFbGVtZW50Kj4obm9kZSgpKTsKLSAgICBib29sIHByaW1pdGl2ZUJvdW5kaW5n
Qm94TW9kZSA9IGZpbHRlckVsZW1lbnQtPnByaW1pdGl2ZVVuaXRzKCkgPT0gU1ZHVW5pdFR5cGVz
OjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YOworICAgIEZsb2F0UmVjdCB0YXJnZXRC
b3VuZGluZ0JveCA9IGZpbHRlci0+dGFyZ2V0Qm91bmRpbmdCb3goKTsKIAogICAgIC8vIEFkZCBl
ZmZlY3RzIHRvIHRoZSBidWlsZGVyCiAgICAgUmVmUHRyPFNWR0ZpbHRlckJ1aWxkZXI+IGJ1aWxk
ZXIgPSBTVkdGaWx0ZXJCdWlsZGVyOjpjcmVhdGUoZmlsdGVyKTsKQEAgLTExNSw3ICsxMTUsOCBA
QCBQYXNzUmVmUHRyPFNWR0ZpbHRlckJ1aWxkZXI+IFJlbmRlclNWR1JlCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLT5hcHBlbmRFZmZlY3RUb0VmZmVj
dFJlZmVyZW5jZXMoZWZmZWN0LCBlZmZlY3RFbGVtZW50LT5yZW5kZXJlcigpKTsKLSAgICAgICAg
ZWZmZWN0RWxlbWVudC0+c2V0U3RhbmRhcmRBdHRyaWJ1dGVzKHByaW1pdGl2ZUJvdW5kaW5nQm94
TW9kZSwgZWZmZWN0LmdldCgpKTsKKyAgICAgICAgZWZmZWN0RWxlbWVudC0+c2V0U3RhbmRhcmRB
dHRyaWJ1dGVzKGVmZmVjdC5nZXQoKSk7CisgICAgICAgIGVmZmVjdC0+c2V0RWZmZWN0Qm91bmRh
cmllcyhTVkdMZW5ndGhDb250ZXh0OjpyZXNvbHZlUmVjdGFuZ2xlPFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcz4oZWZmZWN0RWxlbWVudCwgZmlsdGVyRWxlbWVudC0+cHJpbWl0
aXZlVW5pdHMoKSwgdGFyZ2V0Qm91bmRpbmdCb3gpKTsKICAgICAgICAgYnVpbGRlci0+YWRkKGVm
ZmVjdEVsZW1lbnQtPnJlc3VsdCgpLCBlZmZlY3QpOwogICAgIH0KICAgICByZXR1cm4gYnVpbGRl
ci5yZWxlYXNlKCk7CkBAIC0xNjAsNyArMTYxLDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZp
bHRlcjo6YXBwbHlSZXNvdQogICAgIEZsb2F0UmVjdCB0YXJnZXRCb3VuZGluZ0JveCA9IG9iamVj
dC0+b2JqZWN0Qm91bmRpbmdCb3goKTsKIAogICAgIFNWR0ZpbHRlckVsZW1lbnQqIGZpbHRlckVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGaWx0ZXJFbGVtZW50Kj4obm9kZSgpKTsKLSAgICBmaWx0
ZXJEYXRhLT5ib3VuZGFyaWVzID0gZmlsdGVyRWxlbWVudC0+ZmlsdGVyQm91bmRpbmdCb3godGFy
Z2V0Qm91bmRpbmdCb3gpOworICAgIGZpbHRlckRhdGEtPmJvdW5kYXJpZXMgPSBTVkdMZW5ndGhD
b250ZXh0OjpyZXNvbHZlUmVjdGFuZ2xlPFNWR0ZpbHRlckVsZW1lbnQ+KGZpbHRlckVsZW1lbnQs
IGZpbHRlckVsZW1lbnQtPmZpbHRlclVuaXRzKCksIHRhcmdldEJvdW5kaW5nQm94KTsKICAgICBp
ZiAoZmlsdGVyRGF0YS0+Ym91bmRhcmllcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApAQCAtMTg0LDcgKzE4NSw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFw
cGx5UmVzb3UKICAgICBmaWx0ZXJEYXRhLT5maWx0ZXIgPSBTVkdGaWx0ZXI6OmNyZWF0ZShmaWx0
ZXJEYXRhLT5zaGVhckZyZWVBYnNvbHV0ZVRyYW5zZm9ybSwgYWJzb2x1dGVEcmF3aW5nUmVnaW9u
LCB0YXJnZXRCb3VuZGluZ0JveCwgZmlsdGVyRGF0YS0+Ym91bmRhcmllcywgcHJpbWl0aXZlQm91
bmRpbmdCb3hNb2RlKTsKIAogICAgIC8vIENyZWF0ZSBhbGwgcmVsZXZhbnQgZmlsdGVyIHByaW1p
dGl2ZXMuCi0gICAgZmlsdGVyRGF0YS0+YnVpbGRlciA9IGJ1aWxkUHJpbWl0aXZlcyhmaWx0ZXJE
YXRhLT5maWx0ZXIuZ2V0KCkpOworICAgIGZpbHRlckRhdGEtPmJ1aWxkZXIgPSBidWlsZFByaW1p
dGl2ZXMoc3RhdGljX2Nhc3Q8U1ZHRmlsdGVyKj4oZmlsdGVyRGF0YS0+ZmlsdGVyLmdldCgpKSk7
CiAgICAgaWYgKCFmaWx0ZXJEYXRhLT5idWlsZGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTMzMCw3ICszMzEsNyBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjpwb3N0QXBw
bHlSCiBGbG9hdFJlY3QgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OnJlc291cmNlQm91bmRpbmdC
b3goUmVuZGVyT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgaWYgKFNWR0ZpbHRlckVsZW1lbnQqIGVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdGaWx0ZXJFbGVtZW50Kj4obm9kZSgpKSkKLSAgICAgICAg
cmV0dXJuIGVsZW1lbnQtPmZpbHRlckJvdW5kaW5nQm94KG9iamVjdC0+b2JqZWN0Qm91bmRpbmdC
b3goKSk7CisgICAgICAgIHJldHVybiBTVkdMZW5ndGhDb250ZXh0OjpyZXNvbHZlUmVjdGFuZ2xl
PFNWR0ZpbHRlckVsZW1lbnQ+KGVsZW1lbnQsIGVsZW1lbnQtPmZpbHRlclVuaXRzKCksIG9iamVj
dC0+b2JqZWN0Qm91bmRpbmdCb3goKSk7CiAKICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlci5oCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzYs
NyArNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5k
aW5nQm94KFJlbmRlck9iamVjdCopOwogCi0gICAgUGFzc1JlZlB0cjxTVkdGaWx0ZXJCdWlsZGVy
PiBidWlsZFByaW1pdGl2ZXMoRmlsdGVyKik7CisgICAgUGFzc1JlZlB0cjxTVkdGaWx0ZXJCdWls
ZGVyPiBidWlsZFByaW1pdGl2ZXMoU1ZHRmlsdGVyKik7CiAKICAgICBTVkdVbml0VHlwZXM6OlNW
R1VuaXRUeXBlIGZpbHRlclVuaXRzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHRmls
dGVyRWxlbWVudCo+KG5vZGUoKSktPmZpbHRlclVuaXRzKCk7IH0KICAgICBTVkdVbml0VHlwZXM6
OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
U1ZHRmlsdGVyRWxlbWVudCo+KG5vZGUoKSktPnByaW1pdGl2ZVVuaXRzKCk7IH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRp
dmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw4ICs2NSw3IEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXJQcmltaXRpdmU6OnMKIEZsb2F0UmVjdCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclBy
aW1pdGl2ZTo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKEZpbHRlckVmZmVjdCog
ZWZmZWN0KQogewogICAgIEZsb2F0UmVjdCB1bml0ZVJlY3Q7Ci0gICAgRmxvYXRSZWN0IHN1YnJl
Z2lvbkJvdW5kaW5nQm94ID0gZWZmZWN0LT5lZmZlY3RCb3VuZGFyaWVzKCk7Ci0gICAgRmxvYXRS
ZWN0IHN1YnJlZ2lvbiA9IHN1YnJlZ2lvbkJvdW5kaW5nQm94OworICAgIEZsb2F0UmVjdCBzdWJy
ZWdpb24gPSBlZmZlY3QtPmVmZmVjdEJvdW5kYXJpZXMoKTsKICAgICBTVkdGaWx0ZXIqIGZpbHRl
ciA9IHN0YXRpY19jYXN0PFNWR0ZpbHRlcio+KGVmZmVjdC0+ZmlsdGVyKCkpOwogICAgIEFTU0VS
VChmaWx0ZXIpOwogCkBAIC04MiwzNiArODEsMTQgQEAgRmxvYXRSZWN0IFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyUHJpbWl0aQogICAgICAgICB1bml0ZVJlY3QgPSBmaWx0ZXItPmZpbHRlclJlZ2lv
bkluVXNlclNwYWNlKCk7CiAgICAgfQogCi0gICAgaWYgKGZpbHRlci0+ZWZmZWN0Qm91bmRpbmdC
b3hNb2RlKCkpIHsKLSAgICAgICAgc3VicmVnaW9uID0gdW5pdGVSZWN0OwotICAgICAgICAvLyBB
dm9pZCB0aGUgY2FsbGluZyBvZiBhIHZpcnR1YWwgbWV0aG9kIHNldmVyYWwgdGltZXMuCi0gICAg
ICAgIEZsb2F0UmVjdCB0YXJnZXRCb3VuZGluZ0JveCA9IGZpbHRlci0+dGFyZ2V0Qm91bmRpbmdC
b3goKTsKLQotICAgICAgICBpZiAoZWZmZWN0LT5oYXNYKCkpCi0gICAgICAgICAgICBzdWJyZWdp
b24uc2V0WCh0YXJnZXRCb3VuZGluZ0JveC54KCkgKyBzdWJyZWdpb25Cb3VuZGluZ0JveC54KCkg
KiB0YXJnZXRCb3VuZGluZ0JveC53aWR0aCgpKTsKLQotICAgICAgICBpZiAoZWZmZWN0LT5oYXNZ
KCkpCi0gICAgICAgICAgICBzdWJyZWdpb24uc2V0WSh0YXJnZXRCb3VuZGluZ0JveC55KCkgKyBz
dWJyZWdpb25Cb3VuZGluZ0JveC55KCkgKiB0YXJnZXRCb3VuZGluZ0JveC5oZWlnaHQoKSk7Ci0K
LSAgICAgICAgaWYgKGVmZmVjdC0+aGFzV2lkdGgoKSkKLSAgICAgICAgICAgIHN1YnJlZ2lvbi5z
ZXRXaWR0aChzdWJyZWdpb25Cb3VuZGluZ0JveC53aWR0aCgpICogdGFyZ2V0Qm91bmRpbmdCb3gu
d2lkdGgoKSk7Ci0KLSAgICAgICAgaWYgKGVmZmVjdC0+aGFzSGVpZ2h0KCkpCi0gICAgICAgICAg
ICBzdWJyZWdpb24uc2V0SGVpZ2h0KHN1YnJlZ2lvbkJvdW5kaW5nQm94LmhlaWdodCgpICogdGFy
Z2V0Qm91bmRpbmdCb3guaGVpZ2h0KCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghZWZm
ZWN0LT5oYXNYKCkpCi0gICAgICAgICAgICBzdWJyZWdpb24uc2V0WCh1bml0ZVJlY3QueCgpKTsK
LQotICAgICAgICBpZiAoIWVmZmVjdC0+aGFzWSgpKQotICAgICAgICAgICAgc3VicmVnaW9uLnNl
dFkodW5pdGVSZWN0LnkoKSk7Ci0KLSAgICAgICAgaWYgKCFlZmZlY3QtPmhhc1dpZHRoKCkpCi0g
ICAgICAgICAgICBzdWJyZWdpb24uc2V0V2lkdGgodW5pdGVSZWN0LndpZHRoKCkpOwotCi0gICAg
ICAgIGlmICghZWZmZWN0LT5oYXNIZWlnaHQoKSkKLSAgICAgICAgICAgIHN1YnJlZ2lvbi5zZXRI
ZWlnaHQodW5pdGVSZWN0LmhlaWdodCgpKTsKLSAgICB9Ci0KKyAgICBpZiAoIWVmZmVjdC0+aGFz
WCgpKQorICAgICAgICBzdWJyZWdpb24uc2V0WCh1bml0ZVJlY3QueCgpKTsKKyAgICBpZiAoIWVm
ZmVjdC0+aGFzWSgpKQorICAgICAgICBzdWJyZWdpb24uc2V0WSh1bml0ZVJlY3QueSgpKTsKKyAg
ICBpZiAoIWVmZmVjdC0+aGFzV2lkdGgoKSkKKyAgICAgICAgc3VicmVnaW9uLnNldFdpZHRoKHVu
aXRlUmVjdC53aWR0aCgpKTsKKyAgICBpZiAoIWVmZmVjdC0+aGFzSGVpZ2h0KCkpCisgICAgICAg
IHN1YnJlZ2lvbi5zZXRIZWlnaHQodW5pdGVSZWN0LmhlaWdodCgpKTsKICAgICBlZmZlY3QtPnNl
dEZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbihzdWJyZWdpb24pOwogCiAgICAgRmxvYXRSZWN0IGFi
c29sdXRlU3VicmVnaW9uID0gZmlsdGVyLT5tYXBMb2NhbFJlY3RUb0Fic29sdXRlUmVjdChzdWJy
ZWdpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUdyYWRpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwCShyZXZpc2lvbiA5OTgzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNl
R3JhZGllbnQ6OmFwcGx5UmVzCiAKICAgICAvLyBDcmVhdGUgZ3JhZGllbnQgb2JqZWN0CiAgICAg
aWYgKCFncmFkaWVudERhdGEtPmdyYWRpZW50KSB7Ci0gICAgICAgIGJ1aWxkR3JhZGllbnQoZ3Jh
ZGllbnREYXRhLCBncmFkaWVudEVsZW1lbnQpOworICAgICAgICBidWlsZEdyYWRpZW50KGdyYWRp
ZW50RGF0YSk7CiAKICAgICAgICAgLy8gQ0cgcGxhdGZvcm1zIHdpbGwgaGFuZGxlIHRoZSBncmFk
aWVudCBzcGFjZSB0cmFuc2Zvcm0gZm9yIHRleHQgYWZ0ZXIgYXBwbHlpbmcgdGhlCiAgICAgICAg
IC8vIHJlc291cmNlLCBzbyBkb24ndCBhcHBseSBpdCBoZXJlLiBGb3Igbm9uLUNHIHBsYXRmb3Jt
cywgd2Ugd2FudCB0aGUgdGV4dCBib3VuZGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmgJKHJldmlz
aW9uIDk5ODM4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUdyYWRpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBncmFkaWVudFVuaXRzKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVHcmFkaWVudFRyYW5zZm9ybShB
ZmZpbmVUcmFuc2Zvcm0mKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGNvbGxlY3RHcmFkaWVudEF0
dHJpYnV0ZXMoU1ZHR3JhZGllbnRFbGVtZW50KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBidWls
ZEdyYWRpZW50KEdyYWRpZW50RGF0YSosIFNWR0dyYWRpZW50RWxlbWVudCopIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnVpbGRHcmFkaWVudChHcmFkaWVudERhdGEqKSBjb25zdCA9IDA7
CiAKICAgICBHcmFkaWVudFNwcmVhZE1ldGhvZCBwbGF0Zm9ybVNwcmVhZE1ldGhvZEZyb21TVkdU
eXBlKFNWR1NwcmVhZE1ldGhvZFR5cGUpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VMaW5l
YXJHcmFkaWVudC5jcHAJKHJldmlzaW9uIDk5ODM4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDUsMTkgKzQ1LDIwIEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVu
dDo6Y28KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Kj4o
Z3JhZGllbnRFbGVtZW50KS0+Y29sbGVjdEdyYWRpZW50QXR0cmlidXRlcyhtX2F0dHJpYnV0ZXMp
OwogfQogCi12b2lkIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ6OmJ1aWxkR3JhZGll
bnQoR3JhZGllbnREYXRhKiBncmFkaWVudERhdGEsIFNWR0dyYWRpZW50RWxlbWVudCogZ3JhZGll
bnRFbGVtZW50KSBjb25zdAorRmxvYXRQb2ludCBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRp
ZW50OjpzdGFydFBvaW50KGNvbnN0IExpbmVhckdyYWRpZW50QXR0cmlidXRlcyYgYXR0cmlidXRl
cykgY29uc3QKIHsKLSAgICBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQqIGxpbmVhckdyYWRpZW50
RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCo+KGdyYWRpZW50
RWxlbWVudCk7CisgICAgcmV0dXJuIFNWR0xlbmd0aENvbnRleHQ6OnJlc29sdmVQb2ludChzdGF0
aWNfY2FzdDxjb25zdCBTVkdFbGVtZW50Kj4obm9kZSgpKSwgYXR0cmlidXRlcy5ncmFkaWVudFVu
aXRzKCksIGF0dHJpYnV0ZXMueDEoKSwgYXR0cmlidXRlcy55MSgpKTsKK30KIAotICAgIC8vIERl
dGVybWluZSBncmFkaWVudCBzdGFydC9lbmQgcG9pbnRzCi0gICAgRmxvYXRQb2ludCBzdGFydFBv
aW50OwotICAgIEZsb2F0UG9pbnQgZW5kUG9pbnQ7Ci0gICAgbGluZWFyR3JhZGllbnRFbGVtZW50
LT5jYWxjdWxhdGVTdGFydEVuZFBvaW50cyhtX2F0dHJpYnV0ZXMsIHN0YXJ0UG9pbnQsIGVuZFBv
aW50KTsKK0Zsb2F0UG9pbnQgUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudDo6ZW5kUG9p
bnQoY29uc3QgTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKSBjb25zdAorewor
ICAgIHJldHVybiBTVkdMZW5ndGhDb250ZXh0OjpyZXNvbHZlUG9pbnQoc3RhdGljX2Nhc3Q8Y29u
c3QgU1ZHRWxlbWVudCo+KG5vZGUoKSksIGF0dHJpYnV0ZXMuZ3JhZGllbnRVbml0cygpLCBhdHRy
aWJ1dGVzLngyKCksIGF0dHJpYnV0ZXMueTIoKSk7Cit9CiAKLSAgICBncmFkaWVudERhdGEtPmdy
YWRpZW50ID0gR3JhZGllbnQ6OmNyZWF0ZShzdGFydFBvaW50LCBlbmRQb2ludCk7Cit2b2lkIFJl
bmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ6OmJ1aWxkR3JhZGllbnQoR3JhZGllbnREYXRh
KiBncmFkaWVudERhdGEpIGNvbnN0Cit7CisgICAgZ3JhZGllbnREYXRhLT5ncmFkaWVudCA9IEdy
YWRpZW50OjpjcmVhdGUoc3RhcnRQb2ludChtX2F0dHJpYnV0ZXMpLCBlbmRQb2ludChtX2F0dHJp
YnV0ZXMpKTsKICAgICBncmFkaWVudERhdGEtPmdyYWRpZW50LT5zZXRTcHJlYWRNZXRob2QocGxh
dGZvcm1TcHJlYWRNZXRob2RGcm9tU1ZHVHlwZShtX2F0dHJpYnV0ZXMuc3ByZWFkTWV0aG9kKCkp
KTsKLQotICAgIC8vIEFkZCBzdG9wcwogICAgIGFkZFN0b3BzKGdyYWRpZW50RGF0YSwgbV9hdHRy
aWJ1dGVzLnN0b3BzKCkpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaAko
cmV2aXNpb24gOTk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlTGluZWFyR3JhZGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBncmFkaWVu
dFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVzLmdyYWRpZW50VW5pdHMoKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVHcmFkaWVudFRyYW5zZm9ybShBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkgeyB0cmFuc2Zvcm0gPSBtX2F0dHJpYnV0ZXMuZ3JhZGllbnRUcmFuc2Zv
cm0oKTsgfQogICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0R3JhZGllbnRBdHRyaWJ1dGVzKFNWR0dy
YWRpZW50RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCBidWlsZEdyYWRpZW50KEdyYWRpZW50
RGF0YSosIFNWR0dyYWRpZW50RWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBidWls
ZEdyYWRpZW50KEdyYWRpZW50RGF0YSopIGNvbnN0OworCisgICAgRmxvYXRQb2ludCBzdGFydFBv
aW50KGNvbnN0IExpbmVhckdyYWRpZW50QXR0cmlidXRlcyYpIGNvbnN0OworICAgIEZsb2F0UG9p
bnQgZW5kUG9pbnQoY29uc3QgTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzJikgY29uc3Q7CiAKIHBy
aXZhdGU6CiAgICAgTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VNYXNrZXIuY3BwCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODcsNyArMTg3LDcgQEAgRmxvYXRSZWN0IFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjpyZXNvdQog
ICAgIEFTU0VSVChtYXNrRWxlbWVudCk7CiAKICAgICBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdC
b3ggPSBvYmplY3QtPm9iamVjdEJvdW5kaW5nQm94KCk7Ci0gICAgRmxvYXRSZWN0IG1hc2tCb3Vu
ZGFyaWVzID0gbWFza0VsZW1lbnQtPm1hc2tCb3VuZGluZ0JveChvYmplY3RCb3VuZGluZ0JveCk7
CisgICAgRmxvYXRSZWN0IG1hc2tCb3VuZGFyaWVzID0gU1ZHTGVuZ3RoQ29udGV4dDo6cmVzb2x2
ZVJlY3RhbmdsZTxTVkdNYXNrRWxlbWVudD4obWFza0VsZW1lbnQsIG1hc2tFbGVtZW50LT5tYXNr
VW5pdHMoKSwgb2JqZWN0Qm91bmRpbmdCb3gpOwogCiAgICAgLy8gUmVzb3VyY2Ugd2FzIG5vdCBs
YXlvdXRlZCB5ZXQuIEdpdmUgYmFjayBjbGlwcGluZyByZWN0IG9mIHRoZSBtYXNrLgogICAgIGlm
IChzZWxmTmVlZHNMYXlvdXQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50LmNw
cAkocmV2aXNpb24gOTk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxNSAr
NDUsNDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50OjpjbwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQqPihncmFkaWVudEVsZW1l
bnQpLT5jb2xsZWN0R3JhZGllbnRBdHRyaWJ1dGVzKG1fYXR0cmlidXRlcyk7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudDo6YnVpbGRHcmFkaWVudChHcmFkaWVudERh
dGEqIGdyYWRpZW50RGF0YSwgU1ZHR3JhZGllbnRFbGVtZW50KiBncmFkaWVudEVsZW1lbnQpIGNv
bnN0CitGbG9hdFBvaW50IFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ6OmNlbnRlclBv
aW50KGNvbnN0IFJhZGlhbEdyYWRpZW50QXR0cmlidXRlcyYgYXR0cmlidXRlcykgY29uc3QKIHsK
LSAgICBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQqIHJhZGlhbEdyYWRpZW50RWxlbWVudCA9IHN0
YXRpY19jYXN0PFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCo+KGdyYWRpZW50RWxlbWVudCk7Cisg
ICAgcmV0dXJuIFNWR0xlbmd0aENvbnRleHQ6OnJlc29sdmVQb2ludChzdGF0aWNfY2FzdDxjb25z
dCBTVkdFbGVtZW50Kj4obm9kZSgpKSwgYXR0cmlidXRlcy5ncmFkaWVudFVuaXRzKCksIGF0dHJp
YnV0ZXMuY3goKSwgYXR0cmlidXRlcy5jeSgpKTsKK30KKworRmxvYXRQb2ludCBSZW5kZXJTVkdS
ZXNvdXJjZVJhZGlhbEdyYWRpZW50Ojpmb2NhbFBvaW50KGNvbnN0IFJhZGlhbEdyYWRpZW50QXR0
cmlidXRlcyYgYXR0cmlidXRlcykgY29uc3QKK3sKKyAgICByZXR1cm4gU1ZHTGVuZ3RoQ29udGV4
dDo6cmVzb2x2ZVBvaW50KHN0YXRpY19jYXN0PGNvbnN0IFNWR0VsZW1lbnQqPihub2RlKCkpLCBh
dHRyaWJ1dGVzLmdyYWRpZW50VW5pdHMoKSwgYXR0cmlidXRlcy5meCgpLCBhdHRyaWJ1dGVzLmZ5
KCkpOworfQogCitmbG9hdCBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50OjpyYWRpdXMo
Y29uc3QgUmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKSBjb25zdAoreworICAg
IHJldHVybiBTVkdMZW5ndGhDb250ZXh0OjpyZXNvbHZlTGVuZ3RoKHN0YXRpY19jYXN0PGNvbnN0
IFNWR0VsZW1lbnQqPihub2RlKCkpLCBhdHRyaWJ1dGVzLmdyYWRpZW50VW5pdHMoKSwgYXR0cmli
dXRlcy5yKCkpOworfQorCit2b2lkIFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ6OmFk
anVzdEZvY2FsUG9pbnRJZk5lZWRlZChmbG9hdCByYWRpdXMsIGNvbnN0IEZsb2F0UG9pbnQmIGNl
bnRlclBvaW50LCBGbG9hdFBvaW50JiBmb2NhbFBvaW50KSBjb25zdAoreworICAgIC8vIEV2ZW50
dWFsbHkgYWRqdXN0IGZvY2FsIHBvaW50cywgYXMgZGVzY3JpYmVkIGJlbG93CisgICAgZmxvYXQg
ZGVsdGFYID0gZm9jYWxQb2ludC54KCkgLSBjZW50ZXJQb2ludC54KCk7CisgICAgZmxvYXQgZGVs
dGFZID0gZm9jYWxQb2ludC55KCkgLSBjZW50ZXJQb2ludC55KCk7CisgICAgZmxvYXQgcmFkaXVz
TWF4ID0gMC45OWYgKiByYWRpdXM7CisKKyAgICAvLyBTcGVjOiBJZiAoZngsIGZ5KSBsaWVzIG91
dHNpZGUgdGhlIGNpcmNsZSBkZWZpbmVkIGJ5IChjeCwgY3kpIGFuZCByLCBzZXQKKyAgICAvLyAo
ZngsIGZ5KSB0byB0aGUgcG9pbnQgb2YgaW50ZXJzZWN0aW9uIG9mIHRoZSBsaW5lIHRocm91Z2gg
KGZ4LCBmeSkgYW5kIHRoZSBjaXJjbGUuCisgICAgLy8gV2Ugc2NhbGUgdGhlIHJhZGl1cyBieSAw
Ljk5IHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiBGaXJlRm94LgorICAgIGlmIChzcXJ0KGRlbHRh
WCAqIGRlbHRhWCArIGRlbHRhWSAqIGRlbHRhWSkgPD0gcmFkaXVzTWF4KQorICAgICAgICByZXR1
cm47CisKKyAgICBmbG9hdCBhbmdsZSA9IGF0YW4yZihkZWx0YVksIGRlbHRhWCk7CisgICAgZGVs
dGFYID0gY29zZihhbmdsZSkgKiByYWRpdXNNYXg7CisgICAgZGVsdGFZID0gc2luZihhbmdsZSkg
KiByYWRpdXNNYXg7CisgICAgZm9jYWxQb2ludCA9IEZsb2F0UG9pbnQoZGVsdGFYICsgY2VudGVy
UG9pbnQueCgpLCBkZWx0YVkgKyBjZW50ZXJQb2ludC55KCkpOworfQorCit2b2lkIFJlbmRlclNW
R1Jlc291cmNlUmFkaWFsR3JhZGllbnQ6OmJ1aWxkR3JhZGllbnQoR3JhZGllbnREYXRhKiBncmFk
aWVudERhdGEpIGNvbnN0Cit7CiAgICAgLy8gRGV0ZXJtaW5lIGdyYWRpZW50IGZvY2FsL2NlbnRl
ciBwb2ludHMgYW5kIHJhZGl1cwotICAgIEZsb2F0UG9pbnQgZm9jYWxQb2ludDsKLSAgICBGbG9h
dFBvaW50IGNlbnRlclBvaW50OwotICAgIGZsb2F0IHJhZGl1czsKLSAgICByYWRpYWxHcmFkaWVu
dEVsZW1lbnQtPmNhbGN1bGF0ZUZvY2FsQ2VudGVyUG9pbnRzQW5kUmFkaXVzKG1fYXR0cmlidXRl
cywgZm9jYWxQb2ludCwgY2VudGVyUG9pbnQsIHJhZGl1cyk7CisgICAgZmxvYXQgcmFkaXVzID0g
dGhpcy0+cmFkaXVzKG1fYXR0cmlidXRlcyk7CisgICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludCA9
IHRoaXMtPmNlbnRlclBvaW50KG1fYXR0cmlidXRlcyk7CisgICAgRmxvYXRQb2ludCBmb2NhbFBv
aW50ID0gdGhpcy0+Zm9jYWxQb2ludChtX2F0dHJpYnV0ZXMpOworICAgIGFkanVzdEZvY2FsUG9p
bnRJZk5lZWRlZChyYWRpdXMsIGNlbnRlclBvaW50LCBmb2NhbFBvaW50KTsKIAogICAgIGdyYWRp
ZW50RGF0YS0+Z3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKGZvY2FsUG9pbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgLy8gU1ZHIGRvZXMgbm90
IHN1cHBvcnQgYSAiZm9jdXMgcmFkaXVzIgpAQCAtNjIsNyArOTQsNiBAQCB2b2lkIFJlbmRlclNW
R1Jlc291cmNlUmFkaWFsR3JhZGllbnQ6OmJ1CiAKICAgICBncmFkaWVudERhdGEtPmdyYWRpZW50
LT5zZXRTcHJlYWRNZXRob2QocGxhdGZvcm1TcHJlYWRNZXRob2RGcm9tU1ZHVHlwZShtX2F0dHJp
YnV0ZXMuc3ByZWFkTWV0aG9kKCkpKTsKIAotICAgIC8vIEFkZCBzdG9wcwogICAgIGFkZFN0b3Bz
KGdyYWRpZW50RGF0YSwgbV9hdHRyaWJ1dGVzLnN0b3BzKCkpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlUmFkaWFsR3JhZGllbnQuaAkocmV2aXNpb24gOTk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNyArNDIsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU1ZHVW5pdFR5cGVz
OjpTVkdVbml0VHlwZSBncmFkaWVudFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVz
LmdyYWRpZW50VW5pdHMoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVHcmFkaWVudFRy
YW5zZm9ybShBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkgeyB0cmFuc2Zvcm0gPSBtX2F0dHJp
YnV0ZXMuZ3JhZGllbnRUcmFuc2Zvcm0oKTsgfQogICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0R3Jh
ZGllbnRBdHRyaWJ1dGVzKFNWR0dyYWRpZW50RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCBi
dWlsZEdyYWRpZW50KEdyYWRpZW50RGF0YSosIFNWR0dyYWRpZW50RWxlbWVudCopIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBidWlsZEdyYWRpZW50KEdyYWRpZW50RGF0YSopIGNvbnN0OworCisg
ICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludChjb25zdCBSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMm
KSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGZvY2FsUG9pbnQoY29uc3QgUmFkaWFsR3JhZGllbnRB
dHRyaWJ1dGVzJikgY29uc3Q7CisgICAgZmxvYXQgcmFkaXVzKGNvbnN0IFJhZGlhbEdyYWRpZW50
QXR0cmlidXRlcyYpIGNvbnN0OworICAgIHZvaWQgYWRqdXN0Rm9jYWxQb2ludElmTmVlZGVkKGZs
b2F0IHJhZGl1cywgY29uc3QgRmxvYXRQb2ludCYgY2VudGVyUG9pbnQsIEZsb2F0UG9pbnQmKSBj
b25zdDsKIAogcHJpdmF0ZToKICAgICBSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMgbV9hdHRyaWJ1
dGVzOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclRyZWVBc1RleHQuY3BwCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3
NSwxMSArNTc1LDcgQEAgdm9pZCB3cml0ZVNWR1Jlc291cmNlQ29udGFpbmVyKFRleHRTdHJlYQog
ICAgICAgICBsaW5lYXJHcmFkaWVudEVsZW1lbnQtPmNvbGxlY3RHcmFkaWVudEF0dHJpYnV0ZXMo
YXR0cmlidXRlcyk7CiAgICAgICAgIHdyaXRlQ29tbW9uR3JhZGllbnRQcm9wZXJ0aWVzKHRzLCBh
dHRyaWJ1dGVzLnNwcmVhZE1ldGhvZCgpLCBhdHRyaWJ1dGVzLmdyYWRpZW50VHJhbnNmb3JtKCks
IGF0dHJpYnV0ZXMuZ3JhZGllbnRVbml0cygpKTsKIAotICAgICAgICBGbG9hdFBvaW50IHN0YXJ0
UG9pbnQ7Ci0gICAgICAgIEZsb2F0UG9pbnQgZW5kUG9pbnQ7Ci0gICAgICAgIGxpbmVhckdyYWRp
ZW50RWxlbWVudC0+Y2FsY3VsYXRlU3RhcnRFbmRQb2ludHMoYXR0cmlidXRlcywgc3RhcnRQb2lu
dCwgZW5kUG9pbnQpOwotCi0gICAgICAgIHRzIDw8ICIgW3N0YXJ0PSIgPDwgc3RhcnRQb2ludCA8
PCAiXSBbZW5kPSIgPDwgZW5kUG9pbnQgPDwgIl1cbiI7CisgICAgICAgIHRzIDw8ICIgW3N0YXJ0
PSIgPDwgZ3JhZGllbnQtPnN0YXJ0UG9pbnQoYXR0cmlidXRlcykgPDwgIl0gW2VuZD0iIDw8IGdy
YWRpZW50LT5lbmRQb2ludChhdHRyaWJ1dGVzKSA8PCAiXVxuIjsKICAgICB9ICBlbHNlIGlmIChy
ZXNvdXJjZS0+cmVzb3VyY2VUeXBlKCkgPT0gUmFkaWFsR3JhZGllbnRSZXNvdXJjZVR5cGUpIHsK
ICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudCogZ3JhZGllbnQgPSBzdGF0
aWNfY2FzdDxSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50Kj4ocmVzb3VyY2UpOwogCkBA
IC01OTEsMTAgKzU4NywxMCBAQCB2b2lkIHdyaXRlU1ZHUmVzb3VyY2VDb250YWluZXIoVGV4dFN0
cmVhCiAgICAgICAgIHJhZGlhbEdyYWRpZW50RWxlbWVudC0+Y29sbGVjdEdyYWRpZW50QXR0cmli
dXRlcyhhdHRyaWJ1dGVzKTsKICAgICAgICAgd3JpdGVDb21tb25HcmFkaWVudFByb3BlcnRpZXMo
dHMsIGF0dHJpYnV0ZXMuc3ByZWFkTWV0aG9kKCksIGF0dHJpYnV0ZXMuZ3JhZGllbnRUcmFuc2Zv
cm0oKSwgYXR0cmlidXRlcy5ncmFkaWVudFVuaXRzKCkpOwogCi0gICAgICAgIEZsb2F0UG9pbnQg
Zm9jYWxQb2ludDsKLSAgICAgICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludDsKLSAgICAgICAgZmxv
YXQgcmFkaXVzOwotICAgICAgICByYWRpYWxHcmFkaWVudEVsZW1lbnQtPmNhbGN1bGF0ZUZvY2Fs
Q2VudGVyUG9pbnRzQW5kUmFkaXVzKGF0dHJpYnV0ZXMsIGZvY2FsUG9pbnQsIGNlbnRlclBvaW50
LCByYWRpdXMpOworICAgICAgICBGbG9hdFBvaW50IGZvY2FsUG9pbnQgPSBncmFkaWVudC0+Zm9j
YWxQb2ludChhdHRyaWJ1dGVzKTsKKyAgICAgICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludCA9IGdy
YWRpZW50LT5jZW50ZXJQb2ludChhdHRyaWJ1dGVzKTsKKyAgICAgICAgZmxvYXQgcmFkaXVzID0g
Z3JhZGllbnQtPnJhZGl1cyhhdHRyaWJ1dGVzKTsKKyAgICAgICAgZ3JhZGllbnQtPmFkanVzdEZv
Y2FsUG9pbnRJZk5lZWRlZChyYWRpdXMsIGNlbnRlclBvaW50LCBmb2NhbFBvaW50KTs7CiAKICAg
ICAgICAgdHMgPDwgIiBbY2VudGVyPSIgPDwgY2VudGVyUG9pbnQgPDwgIl0gW2ZvY2FsPSIgPDwg
Zm9jYWxQb2ludCA8PCAiXSBbcmFkaXVzPSIgPDwgcmFkaXVzIDw8ICJdXG4iOwogICAgIH0gZWxz
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkocmV2aXNpb24g
OTk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4OCwyNCArMTg4LDYgQEAgdm9pZCBTVkdGaWx0ZXJFbGVtZW50OjpjaGls
ZHJlbkNoYW5nZWQoYgogICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQog
Ci1GbG9hdFJlY3QgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyQm91bmRpbmdCb3goY29uc3QgRmxv
YXRSZWN0JiBvYmplY3RCb3VuZGluZ0JveCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogQSBmb2xs
b3ctdXAgcGF0Y2ggd2lsbCBtYWtlIGZpbHRlcnMgdXNlIFNWR0xlbmd0aENvbnRleHQ6OnJlc29s
dmVSZWN0YW5nbGUuCi0gICAgRmxvYXRSZWN0IGZpbHRlckJCb3g7Ci0gICAgaWYgKGZpbHRlclVu
aXRzKCkgPT0gU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKQot
ICAgICAgICBmaWx0ZXJCQm94ID0gRmxvYXRSZWN0KHgoKS52YWx1ZUFzUGVyY2VudGFnZSgpICog
b2JqZWN0Qm91bmRpbmdCb3gud2lkdGgoKSArIG9iamVjdEJvdW5kaW5nQm94LngoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB5KCkudmFsdWVBc1BlcmNlbnRhZ2UoKSAqIG9iamVj
dEJvdW5kaW5nQm94LmhlaWdodCgpICsgb2JqZWN0Qm91bmRpbmdCb3gueSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCkudmFsdWVBc1BlcmNlbnRhZ2UoKSAqIG9iamVj
dEJvdW5kaW5nQm94LndpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVp
Z2h0KCkudmFsdWVBc1BlcmNlbnRhZ2UoKSAqIG9iamVjdEJvdW5kaW5nQm94LmhlaWdodCgpKTsK
LSAgICBlbHNlCi0gICAgICAgIGZpbHRlckJCb3ggPSBGbG9hdFJlY3QoeCgpLnZhbHVlKHRoaXMp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkoKS52YWx1ZSh0aGlzKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCgpLnZhbHVlKHRoaXMpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCgpLnZhbHVlKHRoaXMpKTsKLQotICAgIHJldHVy
biBmaWx0ZXJCQm94OwotfQotCiBSZW5kZXJPYmplY3QqIFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogewogICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcih0aGlzKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAkocmV2aXNpb24gOTk4MzgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGaWx0ZXJFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2b2lkIHNldEZp
bHRlclJlcyh1bnNpZ25lZCBsb25nIGZpbHRlclJlc1gsIHVuc2lnbmVkIGxvbmcgZmlsdGVyUmVz
WSk7Ci0gICAgRmxvYXRSZWN0IGZpbHRlckJvdW5kaW5nQm94KGNvbnN0IEZsb2F0UmVjdCYpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIFNWR0ZpbHRlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gOTk4
MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDM0ICsxMjYsMjAgQEAgdm9pZCBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZQogICAgICAgICBpbnZhbGlkYXRlKCk7CiB9
CiAKLXZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzZXRTdGFuZGFy
ZEF0dHJpYnV0ZXMoYm9vbCBwcmltaXRpdmVCb3VuZGluZ0JveE1vZGUsIEZpbHRlckVmZmVjdCog
ZmlsdGVyRWZmZWN0KSBjb25zdAordm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM6OnNldFN0YW5kYXJkQXR0cmlidXRlcyhGaWx0ZXJFZmZlY3QqIGZpbHRlckVmZmVjdCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoZmlsdGVyRWZmZWN0KTsKICAgICBpZiAoIWZpbHRlckVmZmVj
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHRoaXMtPmhhc0F0dHJpYnV0ZShTVkdOYW1l
czo6eEF0dHIpKQorICAgIGlmIChoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OnhBdHRyKSkKICAgICAg
ICAgZmlsdGVyRWZmZWN0LT5zZXRIYXNYKHRydWUpOwotICAgIGlmICh0aGlzLT5oYXNBdHRyaWJ1
dGUoU1ZHTmFtZXM6OnlBdHRyKSkKKyAgICBpZiAoaGFzQXR0cmlidXRlKFNWR05hbWVzOjp5QXR0
cikpCiAgICAgICAgIGZpbHRlckVmZmVjdC0+c2V0SGFzWSh0cnVlKTsKLSAgICBpZiAodGhpcy0+
aGFzQXR0cmlidXRlKFNWR05hbWVzOjp3aWR0aEF0dHIpKQorICAgIGlmIChoYXNBdHRyaWJ1dGUo
U1ZHTmFtZXM6OndpZHRoQXR0cikpCiAgICAgICAgIGZpbHRlckVmZmVjdC0+c2V0SGFzV2lkdGgo
dHJ1ZSk7Ci0gICAgaWYgKHRoaXMtPmhhc0F0dHJpYnV0ZShTVkdOYW1lczo6aGVpZ2h0QXR0cikp
CisgICAgaWYgKGhhc0F0dHJpYnV0ZShTVkdOYW1lczo6aGVpZ2h0QXR0cikpCiAgICAgICAgIGZp
bHRlckVmZmVjdC0+c2V0SGFzSGVpZ2h0KHRydWUpOwotCi0gICAgRmxvYXRSZWN0IGVmZmVjdEJC
b3g7Ci0gICAgaWYgKHByaW1pdGl2ZUJvdW5kaW5nQm94TW9kZSkKLSAgICAgICAgZWZmZWN0QkJv
eCA9IEZsb2F0UmVjdCh4KCkudmFsdWVBc1BlcmNlbnRhZ2UoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB5KCkudmFsdWVBc1BlcmNlbnRhZ2UoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aWR0aCgpLnZhbHVlQXNQZXJjZW50YWdlKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0KCkudmFsdWVBc1BlcmNlbnRhZ2UoKSk7Ci0gICAgZWxz
ZQotICAgICAgICBlZmZlY3RCQm94ID0gRmxvYXRSZWN0KHgoKS52YWx1ZSh0aGlzKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB5KCkudmFsdWUodGhpcyksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2lkdGgoKS52YWx1ZSh0aGlzKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWlnaHQoKS52YWx1ZSh0aGlzKSk7Ci0KLSAgICBmaWx0ZXJFZmZlY3Qt
PnNldEVmZmVjdEJvdW5kYXJpZXMoZWZmZWN0QkJveCk7CiB9CiAKIFJlbmRlck9iamVjdCogU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgJKHJldmlz
aW9uIDk5ODM4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFNW
R0ZpbHRlckJ1aWxkZXI7CiAKIGNsYXNzIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcyA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICB2b2lkIHNldFN0
YW5kYXJkQXR0cmlidXRlcyhib29sLCBGaWx0ZXJFZmZlY3QqKSBjb25zdDsKKyAgICB2b2lkIHNl
dFN0YW5kYXJkQXR0cmlidXRlcyhGaWx0ZXJFZmZlY3QqKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXIq
IGZpbHRlcikgPSAwOwogICAgIC8vIFJldHVybnMgdHJ1ZSwgaWYgdGhlIG5ldyB2YWx1ZSBpcyBk
aWZmZXJlbnQgZnJvbSB0aGUgb2xkIG9uZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xODksMTIgKzE4OSw2IEBAIGJvb2wgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojpjb2xs
ZWN0R3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQ6OmNhbGN1bGF0ZVN0YXJ0RW5kUG9pbnRzKGNvbnN0IExpbmVhckdyYWRpZW50QXR0cmlidXRl
cyYgYXR0cmlidXRlcywgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRmxvYXRQb2ludCYgZW5kUG9p
bnQpCi17Ci0gICAgc3RhcnRQb2ludCA9IFNWR0xlbmd0aENvbnRleHQ6OnJlc29sdmVQb2ludCh0
aGlzLCBhdHRyaWJ1dGVzLmdyYWRpZW50VW5pdHMoKSwgYXR0cmlidXRlcy54MSgpLCBhdHRyaWJ1
dGVzLnkxKCkpOwotICAgIGVuZFBvaW50ID0gU1ZHTGVuZ3RoQ29udGV4dDo6cmVzb2x2ZVBvaW50
KHRoaXMsIGF0dHJpYnV0ZXMuZ3JhZGllbnRVbml0cygpLCBhdHRyaWJ1dGVzLngyKCksIGF0dHJp
YnV0ZXMueTIoKSk7Ci19Ci0KIGJvb2wgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3QKIHsKICAgICByZXR1cm4geDEoKS5pc1JlbGF0aXZlKCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgJ
KHJldmlzaW9uIDk5ODM4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgIGJvb2wgY29sbGVjdEdyYWRpZW50QXR0
cmlidXRlcyhMaW5lYXJHcmFkaWVudEF0dHJpYnV0ZXMmKTsKLSAgICB2b2lkIGNhbGN1bGF0ZVN0
YXJ0RW5kUG9pbnRzKGNvbnN0IExpbmVhckdyYWRpZW50QXR0cmlidXRlcyYsIEZsb2F0UG9pbnQm
IHN0YXJ0UG9pbnQsIEZsb2F0UG9pbnQmIGVuZFBvaW50KTsKIAogcHJpdmF0ZToKICAgICBTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5ODM4KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTU3LDExICsxNTcsNiBAQCB2b2lkIFNWR01hc2tFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQo
Ym9vCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAKLUZsb2F0UmVj
dCBTVkdNYXNrRWxlbWVudDo6bWFza0JvdW5kaW5nQm94KGNvbnN0IEZsb2F0UmVjdCYgb2JqZWN0
Qm91bmRpbmdCb3gpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFNWR0xlbmd0aENvbnRleHQ6OnJlc29s
dmVSZWN0YW5nbGU8U1ZHTWFza0VsZW1lbnQ+KHRoaXMsIG1hc2tVbml0cygpLCBvYmplY3RCb3Vu
ZGluZ0JveCk7Ci19Ci0KIFJlbmRlck9iamVjdCogU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogewogICAgIHJldHVybiBuZXcg
KGFyZW5hKSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcih0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw4ICszOSw2IEBAIGNsYXNz
IFNWR01hc2tFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEwKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdNYXNrRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogCi0gICAgRmxvYXRSZWN0IG1hc2tCb3VuZGluZ0JveChjb25zdCBGbG9hdFJl
Y3QmKSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBTVkdNYXNrRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDk5ODM4KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIwNSwzMCArMjA1LDYgQEAgYm9vbCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNvbGxlY3RH
cgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6
Y2FsY3VsYXRlRm9jYWxDZW50ZXJQb2ludHNBbmRSYWRpdXMoY29uc3QgUmFkaWFsR3JhZGllbnRB
dHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBGbG9hdFBvaW50JiBmb2NhbFBvaW50LCBGbG9hdFBvaW50
JiBjZW50ZXJQb2ludCwgZmxvYXQmIHJhZGl1cykKLXsKLSAgICAvLyBEZXRlcm1pbmUgZ3JhZGll
bnQgZm9jYWwvY2VudGVyIHBvaW50cyBhbmQgcmFkaXVzCi0gICAgZm9jYWxQb2ludCA9IFNWR0xl
bmd0aENvbnRleHQ6OnJlc29sdmVQb2ludCh0aGlzLCBhdHRyaWJ1dGVzLmdyYWRpZW50VW5pdHMo
KSwgYXR0cmlidXRlcy5meCgpLCBhdHRyaWJ1dGVzLmZ5KCkpOwotICAgIGNlbnRlclBvaW50ID0g
U1ZHTGVuZ3RoQ29udGV4dDo6cmVzb2x2ZVBvaW50KHRoaXMsIGF0dHJpYnV0ZXMuZ3JhZGllbnRV
bml0cygpLCBhdHRyaWJ1dGVzLmN4KCksIGF0dHJpYnV0ZXMuY3koKSk7Ci0gICAgcmFkaXVzID0g
U1ZHTGVuZ3RoQ29udGV4dDo6cmVzb2x2ZUxlbmd0aCh0aGlzLCBhdHRyaWJ1dGVzLmdyYWRpZW50
VW5pdHMoKSwgYXR0cmlidXRlcy5yKCkpOwotCi0gICAgLy8gRXZlbnR1YWxseSBhZGp1c3QgZm9j
YWwgcG9pbnRzLCBhcyBkZXNjcmliZWQgYmVsb3cKLSAgICBmbG9hdCBkZWx0YVggPSBmb2NhbFBv
aW50LngoKSAtIGNlbnRlclBvaW50LngoKTsKLSAgICBmbG9hdCBkZWx0YVkgPSBmb2NhbFBvaW50
LnkoKSAtIGNlbnRlclBvaW50LnkoKTsKLSAgICBmbG9hdCByYWRpdXNNYXggPSAwLjk5ZiAqIHJh
ZGl1czsKLQotICAgIC8vIFNwZWM6IElmIChmeCwgZnkpIGxpZXMgb3V0c2lkZSB0aGUgY2lyY2xl
IGRlZmluZWQgYnkgKGN4LCBjeSkgYW5kIHIsIHNldAotICAgIC8vIChmeCwgZnkpIHRvIHRoZSBw
b2ludCBvZiBpbnRlcnNlY3Rpb24gb2YgdGhlIGxpbmUgdGhyb3VnaCAoZngsIGZ5KSBhbmQgdGhl
IGNpcmNsZS4KLSAgICAvLyBXZSBzY2FsZSB0aGUgcmFkaXVzIGJ5IDAuOTkgdG8gbWF0Y2ggdGhl
IGJlaGF2aW9yIG9mIEZpcmVGb3guCi0gICAgaWYgKHNxcnQoZGVsdGFYICogZGVsdGFYICsgZGVs
dGFZICogZGVsdGFZKSA+IHJhZGl1c01heCkgewotICAgICAgICBmbG9hdCBhbmdsZSA9IGF0YW4y
ZihkZWx0YVksIGRlbHRhWCk7Ci0KLSAgICAgICAgZGVsdGFYID0gY29zZihhbmdsZSkgKiByYWRp
dXNNYXg7Ci0gICAgICAgIGRlbHRhWSA9IHNpbmYoYW5nbGUpICogcmFkaXVzTWF4OwotICAgICAg
ICBmb2NhbFBvaW50ID0gRmxvYXRQb2ludChkZWx0YVggKyBjZW50ZXJQb2ludC54KCksIGRlbHRh
WSArIGNlbnRlclBvaW50LnkoKSk7Ci0gICAgfQotfQotCiBib29sIFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGN4
KCkuaXNSZWxhdGl2ZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5oCShyZXZpc2lvbiA5OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICBib29sIGNv
bGxlY3RHcmFkaWVudEF0dHJpYnV0ZXMoUmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVzJik7Ci0gICAg
dm9pZCBjYWxjdWxhdGVGb2NhbENlbnRlclBvaW50c0FuZFJhZGl1cyhjb25zdCBSYWRpYWxHcmFk
aWVudEF0dHJpYnV0ZXMmLCBGbG9hdFBvaW50JiBmb2NhbFBvaW50LCBGbG9hdFBvaW50JiBjZW50
ZXJQb2ludCwgZmxvYXQmIHJhZGl1cyk7CiAKIHByaXZhdGU6CiAgICAgU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgJKHJldmlzaW9u
IDk5ODM4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDcgQEAgY2xhc3MgU1ZHRmlsdGVyIDogcHVi
bGljIEZpbHRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRmlsdGVyPiBj
cmVhdGUoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZWZm
ZWN0Qm91bmRpbmdCb3hNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lZmZlY3RCQm94TW9kZTsgfQot
Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKSBjb25zdCB7
IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsgfQorICAgIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb25JblVz
ZXJTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyUmVnaW9uOyB9CiAgICAgdmlydHVhbCBG
bG9hdFJlY3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9hYnNvbHV0ZUZpbHRlclJl
Z2lvbjsgfQogCiAgICAgdmlydHVhbCBGbG9hdFBvaW50IG1hcEFic29sdXRlUG9pbnRUb0xvY2Fs
UG9pbnQoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVU
cmFuc2Zvcm0uaW52ZXJzZSgpLm1hcFBvaW50KHBvaW50KTsgfQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
OTk4NDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMS0xMS0xMCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KKworICAgICAgICBNb3ZlIHVuaXQgcmVzb2x2aW5nIGZvciBhbGwgcmVzb3VyY2VzIHRv
IHJlbmRlcmluZy8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyMDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIGV4cGVjdGVkIHJlc3VsdHMgZm9yIHNvbWUgZmlsdGVycyB0ZXN0cywgbm93IHRo
YXQgdGhlaXIgYm91bmRpbmcgYm94IGlzIGNvcnJlY3RseSBkdW1wZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL3RleHQvdGV4dEVmZmVjdC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3RleHRFZmZlY3QzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS90ZXh0LWZpbHRlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgt
dmFsdWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMv
ZmVNZXJnZS13cm9uZy1pbnB1dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L3N2Zy9maWx0ZXJzL2ZpbHRlci1vbi1maWx0ZXItZm9yLXRleHQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9zdmcvZmlsdGVycy9maWx0ZXItb24tdHNwYW4tZXhwZWN0ZWQu
dHh0OgorCiAyMDExLTExLTEwICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIHRyaXZpYWwgZml4IGFmdGVyIHI5OTcyMS4KSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC90ZXh0RWZmZWN0My1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9i
YXRpay90ZXh0L3RleHRFZmZlY3QzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4MzgpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL3RleHQvdGV4dEVmZmVjdDMtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04NCwxMyArODQsMTMgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA0NTB4NTAwCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNTQsMjkyKSBzaXpl
IDE0Nng4MCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFtmaWx0ZXI9ImRyb3BTaGFkb3ci
XSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMzkuNDAsMjg0KSBzaXplIDE3
NS4yMHg5NgogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNp
emUgMzZ4NjAKLSAgICAgICAgICBbZmlsdGVyPSJkcm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgICBbZmlsdGVyPSJk
cm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDUwLjQwLDMw
Nikgc2l6ZSA0My4yMHg3MgogICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQg
cnVuIDEgYXQgKDU0LjUwLDM2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAz
NS4wMDogIkIiCiAgICAgICAgIFJlbmRlclNWR1RTcGFuIHt0c3Bhbn0gYXQgKDAsMCkgc2l6ZSAx
OXgzMQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMzUsMjMpIHNp
emUgMTl4MzEKICAgICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEg
YXQgKDg5LjUwLDM0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAxOC4wMDog
IkEiCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoNTMsMCkgc2l6ZSAz
M3g2MAotICAgICAgICAgIFtmaWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZp
bHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICAgIFtmaWx0ZXI9ImRyb3BT
aGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMTAzLjcwLDI4Nikg
c2l6ZSAzOS42MHg3MgogICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVu
IDEgYXQgKDEwNy41MCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMzIu
MDA6ICJUIgogICAgICAgICBSZW5kZXJTVkdUU3BhbiB7dHNwYW59IGF0ICgwLDApIHNpemUgMTJ4
NDYKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDg1LDExKSBzaXpl
IDEyeDQ2CkBAIC05OSwxNyArOTksMTcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAg
ICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICg5MiwyKSBzaXplIDU0eDY5
CiAgICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgxNTAu
NTAsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDM1LjAwOiAiSyIKICAg
ICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgICAgW2ZpbHRlcj0iZHJvcFNoYWRvdyJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0
ZXJ9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgW2ZpbHRlcj0iZHJvcFNoYWRvdyJdIFJl
bmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgtNDUsLTUwKSBzaXplIDU0MHg2MDAK
ICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgyNjMsMjkyKSBzaXplIDE0OHg4MCBjb250
YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFtmaWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMjQ4LjIwLDI4NCkgc2l6ZSAxNzcuNjB4OTYKICAg
ICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDIwKSBzaXplIDM3eDYwCi0g
ICAgICAgICAgW2ZpbHRlcj0iZHJvcFNoYWRvdyJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtm
aWx0ZXJ9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgW2ZpbHRlcj0iZHJvcFNoYWRvdyJd
IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgyNTkuMzAsMzA2KSBzaXplIDQ0
LjQweDcyCiAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAo
MjYzLjkwLDM2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAzNS4zNTogIkIi
CiAgICAgICAgIFJlbmRlclNWR1RTcGFuIHt0c3Bhbn0gYXQgKDAsMCkgc2l6ZSAxOXgzMQogICAg
ICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMzYsMjMpIHNpemUgMTl4MzEK
ICAgICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDI5OS4y
NSwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMTguMDE6ICJBIgogICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDU0LDApIHNpemUgMzN4NjAKLSAg
ICAgICAgICBbZmlsdGVyPSJkcm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2Zp
bHRlcn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgICBbZmlsdGVyPSJkcm9wU2hhZG93Il0g
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDMxMy43MCwyODYpIHNpemUgMzku
NjB4NzIKICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgz
MTcuMjYsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDMyLjM3OiAiVCIK
ICAgICAgICAgUmVuZGVyU1ZHVFNwYW4ge3RzcGFufSBhdCAoMCwwKSBzaXplIDEyeDQ2CiAgICAg
ICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICg4NiwxMSkgc2l6ZSAxMng0NgpA
QCAtMTE4LDcgKzExOCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDUweDUwMAogICAgICAgICAg
IFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoOTMsMikgc2l6ZSA1NXg2OQogICAgICAg
ICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoMzYwLjc1LDM0MC4w
MCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAzNS4zNTogIksiCiAgICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgIFtm
aWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAo
MCwwKSBzaXplIDB4MAorICAgICAgICAgIFtmaWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoLTQ1LC01MCkgc2l6ZSA1NDB4NjAwCiAgICAgICBS
ZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoODcsMzg5KSBzaXplIDY2eDE0IGNvbnRhaW5zIDEgY2h1
bmsocykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NjZ4MTQKICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICg4
Ny41MCw0MDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDY1LjAwOiAiKFN5
c3RlbSBmb250KSIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4
dC90ZXh0RWZmZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2JhdGlrL3RleHQvdGV4dEVmZmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDk5ODM4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3RleHRF
ZmZlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYsMTIgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
NDQsMzEyKSBzaXplIDE1Mng2MCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFtmaWx0ZXI9
ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMjguODAs
MzA2KSBzaXplIDE4Mi40MHg3MgogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAxNTJ4NjAKLSAgICAgICAgICBbZmlsdGVyPSJkcm9wU2hhZG93Il0gUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAg
ICBbZmlsdGVyPSJkcm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0g
YXQgKDI4LjgwLDMwNikgc2l6ZSAxODIuNDB4NzIKICAgICAgICAgICBjaHVuayAxIChtaWRkbGUg
YW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICg0NC4wMCwzNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zm
c2V0IDUgd2lkdGggMTUyLjAwOiAiQkFUSUsiCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoMjUzLDMxMikgc2l6ZSAxNTR4NjAgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBbZmls
dGVyPSJkcm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDIz
Ny42MCwzMDYpIHNpemUgMTg0LjgweDcyCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDE1NHg2MAotICAgICAgICAgIFtmaWx0ZXI9ImRyb3BTaGFkb3ci
XSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgICAgIFtmaWx0ZXI9ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7Zmls
dGVyfSBhdCAoMjM3LjYwLDMwNikgc2l6ZSAxODQuODB4NzIKICAgICAgICAgICBjaHVuayAxICht
aWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgyNTMuNDIsMzYwLjAwKSBzdGFydE9mZnNldCAw
IGVuZE9mZnNldCA1IHdpZHRoIDE1My4xNTogIkJBVElLIgogICAgICAgUmVuZGVyU1ZHVGV4dCB7
dGV4dH0gYXQgKDg3LDM4OSkgc2l6ZSA2NngxNCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAg
IFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDY2eDE0CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS90ZXh0LWZpbHRlci1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdGV4
dC1maWx0ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTgzOCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3RleHQtZmlsdGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtOSw1ICs5LDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVu
ZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDQsMTApIHNpemUgNTY3eDY0IGNvbnRhaW5zIDEgY2h1bmso
cykKICAgICAgIFtmaWx0ZXI9Im15ZmlsdGVyIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2Zp
bHRlcn0gYXQgKC01Mi43MCwzLjYwKSBzaXplIDY4MC40MHg3Ni44MAogICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTY3eDY0Ci0gICAgICAgIFtmaWx0ZXI9
Im15ZmlsdGVyIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDAsMCkgc2l6
ZSAweDAKKyAgICAgICAgW2ZpbHRlcj0ibXlmaWx0ZXIiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRl
ciB7ZmlsdGVyfSBhdCAoLTUyLjcwLDMuNjApIHNpemUgNjgwLjQweDc2LjgwCiAgICAgICAgIGNo
dW5rIDEgdGV4dCBydW4gMSBhdCAoNC4wMCw2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
MjYgd2lkdGggNTY3LjAwOiAiVGhpcyB0ZXh0IHNob3VsZCBiZSBibHVyeS4iCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMvZmVDb2xvck1hdHJpeC12YWx1ZXMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvZmls
dGVycy9mZUNvbG9yTWF0cml4LXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODM4KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtdmFs
dWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjMsNDYgKzYzLDQ2IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIx
MCwxOCkgc2l6ZSAxMzl4MjggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBbZmlsdGVyPSJt
YXRiYWQiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMTk2LjEwLDE1LjIw
KSBzaXplIDE2Ni44MHgzMy42MAogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAxMzl4MjgKLSAgICAgICAgICBbZmlsdGVyPSJtYXRiYWQiXSBSZW5kZXJT
VkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICAgIFtm
aWx0ZXI9Im1hdGJhZCJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgxOTYu
MTAsMTUuMjApIHNpemUgMTY2LjgweDMzLjYwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAx
IGF0ICgyMTAuMDAsNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE0IHdpZHRoIDEzOS4w
MDogIkludmFsaWQgbWF0cml4IgogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIxMCw0
OCkgc2l6ZSAxNTZ4MjggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBbZmlsdGVyPSJtYXRi
YWQiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMTk0LjQwLDQ1LjIwKSBz
aXplIDE4Ny4yMHgzMy42MAogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAxNTZ4MjgKLSAgICAgICAgICBbZmlsdGVyPSJtYXRiYWQiXSBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICAgIFtmaWx0
ZXI9Im1hdGJhZCJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgxOTQuNDAs
NDUuMjApIHNpemUgMTg3LjIweDMzLjYwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0
ICgyMTAuMDAsNzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE3IHdpZHRoIDE1Ni4wMDog
InZhbHVlcyBhdHRyaWJ1dGUuIgogICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDE4Miw5
Mikgc2l6ZSAyMzZ4MTE2IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9
MjAyLjAwXSBbeT0xMDIuMDBdIFt3aWR0aD0xOTYuMDBdIFtoZWlnaHQ9OTYuMDBdCiAgICAgICAg
IFtmaWx0ZXI9Imh1ZWJhZCJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgx
ODIuNDAsOTIuNDApIHNpemUgMjM1LjIweDExNS4yMAogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4
dH0gYXQgKDIxMCwxMTgpIHNpemUgMTUxeDI4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAg
W2ZpbHRlcj0iaHVlYmFkIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDE5
NC45MCwxMTUuMjApIHNpemUgMTgxLjIweDMzLjYwCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1MXgyOAotICAgICAgICAgIFtmaWx0ZXI9Imh1ZWJh
ZCJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgwLDApIHNpemUgMHgwCisg
ICAgICAgICAgW2ZpbHRlcj0iaHVlYmFkIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRl
cn0gYXQgKDE5NC45MCwxMTUuMjApIHNpemUgMTgxLjIweDMzLjYwCiAgICAgICAgICAgY2h1bmsg
MSB0ZXh0IHJ1biAxIGF0ICgyMTAuMDAsMTQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAx
NiB3aWR0aCAxNTEuMDA6ICJJbnZhbGlkIHNhdHVyYXRlIgogICAgICAgUmVuZGVyU1ZHVGV4dCB7
dGV4dH0gYXQgKDIxMCwxNDgpIHNpemUgMTU2eDI4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAg
ICAgW2ZpbHRlcj0iaHVlYmFkIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQg
KDE5NC40MCwxNDUuMjApIHNpemUgMTg3LjIweDMzLjYwCiAgICAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1NngyOAotICAgICAgICAgIFtmaWx0ZXI9Imh1
ZWJhZCJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgwLDApIHNpemUgMHgw
CisgICAgICAgICAgW2ZpbHRlcj0iaHVlYmFkIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2Zp
bHRlcn0gYXQgKDE5NC40MCwxNDUuMjApIHNpemUgMTg3LjIweDMzLjYwCiAgICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMTAuMDAsMTcwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAxNyB3aWR0aCAxNTYuMDA6ICJ2YWx1ZXMgYXR0cmlidXRlLiIKICAgICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgxODIsMTkyKSBzaXplIDIzNngxMTYgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGMDAwMF19XSBbeD0yMDIuMDBdIFt5PTIwMi4wMF0gW3dpZHRoPTE5Ni4wMF0gW2hl
aWdodD05Ni4wMF0KICAgICAgICAgW2ZpbHRlcj0ic2F0YmFkIl0gUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIge2ZpbHRlcn0gYXQgKDE4Mi40MCwxOTIuNDApIHNpemUgMjM1LjIweDExNS4yMAogICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIxMCwyMTgpIHNpemUgMTc0eDI4IGNvbnRhaW5z
IDEgY2h1bmsocykKICAgICAgICAgW2ZpbHRlcj0ic2F0YmFkIl0gUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIge2ZpbHRlcn0gYXQgKDE5Mi42MCwyMTUuMjApIHNpemUgMjA4LjgweDMzLjYwCiAgICAg
ICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE3NHgyOAotICAg
ICAgICAgIFtmaWx0ZXI9InNhdGJhZCJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9
IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgW2ZpbHRlcj0ic2F0YmFkIl0gUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDE5Mi42MCwyMTUuMjApIHNpemUgMjA4LjgweDMz
LjYwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMTAuMDAsMjQwLjAwKSBzdGFy
dE9mZnNldCAwIGVuZE9mZnNldCAxNyB3aWR0aCAxNzQuMDA6ICJJbnZhbGlkIGh1ZVJvdGF0ZSIK
ICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgyMTAsMjQ4KSBzaXplIDE1NngyOCBjb250
YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFtmaWx0ZXI9InNhdGJhZCJdIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgxOTQuNDAsMjQ1LjIwKSBzaXplIDE4Ny4yMHgzMy42MAog
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNTZ4MjgK
LSAgICAgICAgICBbZmlsdGVyPSJzYXRiYWQiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7Zmls
dGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICAgIFtmaWx0ZXI9InNhdGJhZCJdIFJlbmRl
clNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgxOTQuNDAsMjQ1LjIwKSBzaXplIDE4Ny4y
MHgzMy42MAogICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMjEwLjAwLDI3MC4wMCkg
c3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTcgd2lkdGggMTU2LjAwOiAidmFsdWVzIGF0dHJpYnV0
ZS4iCiAgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTgyLDI5Mikgc2l6ZSAyMzZ4MTE2
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW3g9MjAyLjAwXSBbeT0zMDIu
MDBdIFt3aWR0aD0xOTYuMDBdIFtoZWlnaHQ9OTYuMDBdCiAgICAgICAgIFtmaWx0ZXI9InNhdHJh
bmdlIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDE4Mi40MCwyOTIuNDAp
IHNpemUgMjM1LjIweDExNS4yMAogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIxMCwz
MTgpIHNpemUgMTMzeDI4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgW2ZpbHRlcj0ic2F0
cmFuZ2UiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMTk2LjcwLDMxNS4y
MCkgc2l6ZSAxNTkuNjB4MzMuNjAKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMTMzeDI4Ci0gICAgICAgICAgW2ZpbHRlcj0ic2F0cmFuZ2UiXSBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICAg
IFtmaWx0ZXI9InNhdHJhbmdlIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQg
KDE5Ni43MCwzMTUuMjApIHNpemUgMTU5LjYweDMzLjYwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0
IHJ1biAxIGF0ICgyMTAuMDAsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxMyB3aWR0
aCAxMzMuMDA6ICJTYXR1cmF0ZSBtdXN0IgogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQg
KDIxMCwzNDgpIHNpemUgMTUyeDI4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgW2ZpbHRl
cj0ic2F0cmFuZ2UiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMTk0Ljgw
LDM0NS4yMCkgc2l6ZSAxODIuNDB4MzMuNjAKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMTUyeDI4Ci0gICAgICAgICAgW2ZpbHRlcj0ic2F0cmFuZ2Ui
XSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgICAgIFtmaWx0ZXI9InNhdHJhbmdlIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRl
cn0gYXQgKDE5NC44MCwzNDUuMjApIHNpemUgMTgyLjQweDMzLjYwCiAgICAgICAgICAgY2h1bmsg
MSB0ZXh0IHJ1biAxIGF0ICgyMTAuMDAsMzcwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAx
NSB3aWR0aCAxNTIuMDA6ICJoYXZlIG9uZSB2YWx1ZS4iCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMvZmVNZXJnZS13cm9uZy1pbnB1dC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9maWx0ZXJzL2ZlTWVyZ2Ut
d3JvbmctaW5wdXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTgzOCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvZmlsdGVycy9mZU1lcmdlLXdyb25nLWlucHV0LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAxMDB4MTAw
CisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJmaWx0ZXIiXSBbZmlsdGVyVW5pdHM9b2Jq
ZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz1vYmplY3RCb3VuZGluZ0JveF0KLSAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBbZmlsdGVyPSJm
aWx0ZXIiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4
MAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
ICBbZmlsdGVyPSJmaWx0ZXIiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAo
LTgwLC02MCkgc2l6ZSA5NjB4NzIwCiAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDAsMCkg
c2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4w
MF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMvZmlsdGVyLW9uLWZpbHRlci1mb3ItdGV4dC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9m
aWx0ZXJzL2ZpbHRlci1vbi1maWx0ZXItZm9yLXRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5
OTgzOCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvZmlsdGVycy9maWx0ZXItb24t
ZmlsdGVyLWZvci10ZXh0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOSwxMiArOSwx
MiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMzAsMTIpIHNpemUgMjA2eDIzIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFtmaWx0
ZXI9ImZpbHRlciJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICg5LjQwLDku
NzApIHNpemUgMjQ3LjIweDI3LjYwCiAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAxMzV4MjMKLSAgICAgICAgW2ZpbHRlcj0iZmlsdGVyIl0gUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgW2ZpbHRl
cj0iZmlsdGVyIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDE2LjUwLDku
NzApIHNpemUgMTYyeDI3LjYwCiAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMzAuMDAs
MzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE5IHdpZHRoIDEzNS4wMDogIlRoaXMgaXMg
Zm9yIGZpbHRlciAiCiAgICAgICBSZW5kZXJTVkdUU3BhbiB7dHNwYW59IGF0ICgwLDApIHNpemUg
NjZ4MjMKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgxMzUsMCkgc2l6
ZSA2NngyMwotICAgICAgICAgIFtmaWx0ZXI9ImZpbHRlciJdIFJlbmRlclNWR1Jlc291cmNlRmls
dGVyIHtmaWx0ZXJ9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgW2ZpbHRlcj0iZmlsdGVy
Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDE1OC40MCw5LjcwKSBzaXpl
IDc5LjIweDI3LjYwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxNjUuMDAsMzAu
MDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDkgd2lkdGggNjYuMDA6ICJvbiBmaWx0ZXIiCiAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDIwMSwwKSBzaXplIDV4MjMKLSAg
ICAgICAgW2ZpbHRlcj0iZmlsdGVyIl0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0g
YXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgW2ZpbHRlcj0iZmlsdGVyIl0gUmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKDIzMC41MCw5LjcwKSBzaXplIDZ4MjcuNjAKICAgICAg
ICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMzEuMDAsMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5k
T2Zmc2V0IDEgd2lkdGggNS4wMDogIi4iCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2ZpbHRlcnMvZmlsdGVyLW9uLXRzcGFuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMvZmlsdGVyLW9uLXRzcGFuLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gOTk4MzgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2ZpbHRlcnMvZmlsdGVyLW9uLXRzcGFuLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTAsNyArMTAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgY2h1bmsg
MSB0ZXh0IHJ1biAxIGF0ICgxMDAuMDAsMTAwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAx
MiB3aWR0aCA2OC4wMDogIkRpZSBpc3QgZWluICIKICAgICAgIFJlbmRlclNWR1RTcGFuIHt0c3Bh
bn0gYXQgKDAsMCkgc2l6ZSAyN3gxOAogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4
dH0gYXQgKDY4LDApIHNpemUgMjd4MTgKLSAgICAgICAgICBbZmlsdGVyPSJmaWx0ZXIiXSBSZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICAg
IFtmaWx0ZXI9ImZpbHRlciJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgx
NjUuMzAsODQuMjApIHNpemUgMzIuNDB4MjEuNjAKICAgICAgICAgICBjaHVuayAxIHRleHQgcnVu
IDEgYXQgKDE2OC4wMCwxMDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDQgd2lkdGggMjcu
MDA6ICJUZXN0IgogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICg5NSwwKSBz
aXplIDR4MTgKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxOTUuMDAsMTAwLjAwKSBz
dGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDQuMDA6ICIuIgo=
</data>
<flag name="commit-queue"
          id="113164"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>