<?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>20057</bug_id>
          
          <creation_ts>2008-07-16 11:24:29 -0700</creation_ts>
          <short_desc>Animate viewBox attribute in SVG</short_desc>
          <delta_ts>2011-06-22 08:25:17 -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>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.lrcwe-data.com/DeepZoom.svg</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bruce Rindahl">rindahl</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>koivisto</cc>
    
    <cc>krit</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>86078</commentid>
    <comment_count>0</comment_count>
    <who name="Bruce Rindahl">rindahl</who>
    <bug_when>2008-07-16 11:24:29 -0700</bug_when>
    <thetext>Request to support animation of the viewBox attribute of an svg element.  View the above URL in Opera 9.5 (there is a bug but you can see the desired effect) or IE with the Adobe SVG plugin.  Minimal test case to be attached</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86079</commentid>
    <comment_count>1</comment_count>
      <attachid>22310</attachid>
    <who name="Bruce Rindahl">rindahl</who>
    <bug_when>2008-07-16 11:27:41 -0700</bug_when>
    <thetext>Created attachment 22310
SVG file showing requested behavior

Open attachment and click on the red circle.  A zooming effect should be created because the viewBox is animated via script.  Repeated click result in continual zooming.  Works in IE/ASV and Opera(has a hiccup).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86093</commentid>
    <comment_count>2</comment_count>
      <attachid>22312</attachid>
    <who name="Bruce Rindahl">rindahl</who>
    <bug_when>2008-07-16 12:42:38 -0700</bug_when>
    <thetext>Created attachment 22312
correction to previous attachment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425102</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 02:33:13 -0700</bug_when>
    <thetext>Upload a patch to support viewBox animation soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425118</commentid>
    <comment_count>4</comment_count>
      <attachid>98148</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 03:19:34 -0700</bug_when>
    <thetext>Created attachment 98148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425126</commentid>
    <comment_count>5</comment_count>
      <attachid>98148</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-22 03:42:51 -0700</bug_when>
    <thetext>Comment on attachment 98148
Patch

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

Great patch, r=me.

&gt; Source/WebCore/svg/SVGAnimatedRect.cpp:36
&gt; +    OwnPtr&lt;SVGAnimatedType&gt; animatedType = SVGAnimatedType::createRect(new FloatRect());

you can omit the braces after the new FloatRect.

&gt; Source/WebCore/svg/SVGAnimatedRect.cpp:75
&gt; +        newRect = percentage &lt; 0.5f ? fromRect : toRect;

Again the .f, we don&apos;t need that anymore - the style guide says we should omit this.

&gt; Source/WebCore/svg/SVGAnimatedRect.cpp:99
&gt; +    return -1;

Does this affect a specific animation mode which won&apos;t work with rects?

&gt; Source/WebCore/svg/SVGAnimatedType.cpp:129
&gt; +        return String::number(m_data.rect-&gt;x()) + &apos; &apos; + String::number(m_data.rect-&gt;y()) + &apos; &apos;
&gt; +             + String::number(m_data.rect-&gt;width()) + &apos; &apos; + String::number(m_data.rect-&gt;height());

Great, that&apos;s exactly how we can construct strings like this efficiently with the new StringAppend operator+ trickery :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425157</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 05:29:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 98148 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98148&amp;action=review
&gt; 
&gt; Great patch, r=me.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedRect.cpp:36
&gt; &gt; +    OwnPtr&lt;SVGAnimatedType&gt; animatedType = SVGAnimatedType::createRect(new FloatRect());
&gt; 
&gt; you can omit the braces after the new FloatRect.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedRect.cpp:75
&gt; &gt; +        newRect = percentage &lt; 0.5f ? fromRect : toRect;
&gt; 
&gt; Again the .f, we don&apos;t need that anymore - the style guide says we should omit this.
Really? I asked for it on your other reviews, but you never answered to the question. I was not aware of this change. Just thought this is the case for round numbers like 0 or 1. Isn&apos;t it a double if you omit the .f?

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedRect.cpp:99
&gt; &gt; +    return -1;
&gt; 
&gt; Does this affect a specific animation mode which won&apos;t work with rects?
Yes, paced animations. Just supported by Opera so far. The specification is vague about that.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGAnimatedType.cpp:129
&gt; &gt; +        return String::number(m_data.rect-&gt;x()) + &apos; &apos; + String::number(m_data.rect-&gt;y()) + &apos; &apos;
&gt; &gt; +             + String::number(m_data.rect-&gt;width()) + &apos; &apos; + String::number(m_data.rect-&gt;height());
&gt; 
&gt; Great, that&apos;s exactly how we can construct strings like this efficiently with the new StringAppend operator+ trickery :-)

Hehe. I know. You told me to use it that way before ;)

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425251</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-22 08:25:17 -0700</bug_when>
    <thetext>Committed r89431: &lt;http://trac.webkit.org/changeset/89431&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>22310</attachid>
            <date>2008-07-16 11:27:41 -0700</date>
            <delta_ts>2008-07-16 12:42:38 -0700</delta_ts>
            <desc>SVG file showing requested behavior</desc>
            <filename>resize.svg</filename>
            <type>image/svg+xml</type>
            <size>1259</size>
            <attacher name="Bruce Rindahl">rindahl</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPHN2ZyBpZD0ibWFpbiIgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTYwIDM3
MCINCiAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayINCglvbmxvYWQ9ImluaXQoKSIgPg0KIDxhbmlt
YXRlIGlkPSJhbmltUGhvdG8iIGF0dHJpYnV0ZU5hbWU9InZpZXdCb3giIGJlZ2luPSJ1bmRlZmlu
ZWQiIGR1cj0iMnMiIHZhbHVlcz0iMCAwIDU2MCAzNzA7MCAwIDU2MCAzNzAiIGZpbGw9ImZyZWV6
ZSIgLz4NCiA8dGl0bGU+YW5pbWF0aW5nIHZpZXdCb3g8L3RpdGxlPg0KIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4NCiAgPCFbQ0RBVEFbDQogIGZ1bmN0aW9uIHJlc2l6ZSgpIHsNCiAg
ICB2YXIgYW5pbWF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuaW1QaG90byIpOw0K
ICAgIHZhciBhbmltVmlld0JveCA9IGFuaW1hdGlvbi5nZXRBdHRyaWJ1dGVOUyhudWxsLCJ2YWx1
ZXMiKTsNCiAgICB2YXIgdmlld0JveCA9IGFuaW1WaWV3Qm94LnNwbGl0KCI7Iik7DQogICAgdmFy
IHZpZXdCb3hBcnJheSA9IHZpZXdCb3hbMV0uc3BsaXQoIiAiKTsNCiAgICB2YXIgY3VyeE9yaWcg
PSBwYXJzZUZsb2F0KHZpZXdCb3hBcnJheVswXSk7DQogICAgdmFyIGN1cnlPcmlnID0gcGFyc2VG
bG9hdCh2aWV3Qm94QXJyYXlbMV0pOw0KICAgIHZhciBjdXJXaWR0aCA9IHBhcnNlRmxvYXQodmll
d0JveEFycmF5WzJdKTsNCiAgICB2YXIgY3VySGVpZ2h0ID0gcGFyc2VGbG9hdCh2aWV3Qm94QXJy
YXlbM10pOw0KICAgIGFuaW1WaWV3Qm94ID0gY3VyeE9yaWcgKyAiICIgKyBjdXJ5T3JpZyArICIg
IiArIGN1cldpZHRoICsgIiAiICsgY3VySGVpZ2h0ICsgIjsiOw0KICAgIGFuaW1WaWV3Qm94ICs9
IChjdXJ4T3JpZys1KSArICIgIiArIChjdXJ5T3JpZys1KSArICIgIiArIChjdXJXaWR0aCowLjc1
KSArICIgIiArIChjdXJIZWlnaHQqMC43NSk7DQogICAgYW5pbWF0aW9uLnNldEF0dHJpYnV0ZU5T
KG51bGwsInZhbHVlcyIsYW5pbVZpZXdCb3gpOw0KICAgIGFuaW1hdGlvbi5iZWdpbkVsZW1lbnQo
KTsNCiAgfQ0KXV0+DQo8L3NjcmlwdD4NCg0KPGNpcmNsZSByPSIxMDAiIGN4PSIxMjUiIGN5PSIx
MjUiIGZpbGw9InJlZCIgc3Ryb2tlPSJibHVlIiBvbmNsaWNrPSJyZXNpemUoKSIgLz4NCg0KPC9z
dmc+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>22312</attachid>
            <date>2008-07-16 12:42:38 -0700</date>
            <delta_ts>2008-07-16 12:42:38 -0700</delta_ts>
            <desc>correction to previous attachment</desc>
            <filename>resize.svg</filename>
            <type>image/svg+xml</type>
            <size>1243</size>
            <attacher name="Bruce Rindahl">rindahl</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPHN2ZyBpZD0ibWFpbiIgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNTYwIDM3
MCINCiAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayINCgk+DQogPGFuaW1hdGUgaWQ9ImFuaW1QaG90
byIgYXR0cmlidXRlTmFtZT0idmlld0JveCIgYmVnaW49InVuZGVmaW5lZCIgZHVyPSIycyIgdmFs
dWVzPSIwIDAgNTYwIDM3MDswIDAgNTYwIDM3MCIgZmlsbD0iZnJlZXplIiAvPg0KIDx0aXRsZT5h
bmltYXRpbmcgdmlld0JveDwvdGl0bGU+DQogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pg0KICA8IVtDREFUQVsNCiAgZnVuY3Rpb24gcmVzaXplKCkgew0KICAgIHZhciBhbmltYXRpb24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5pbVBob3RvIik7DQogICAgdmFyIGFuaW1WaWV3
Qm94ID0gYW5pbWF0aW9uLmdldEF0dHJpYnV0ZU5TKG51bGwsInZhbHVlcyIpOw0KICAgIHZhciB2
aWV3Qm94ID0gYW5pbVZpZXdCb3guc3BsaXQoIjsiKTsNCiAgICB2YXIgdmlld0JveEFycmF5ID0g
dmlld0JveFsxXS5zcGxpdCgiICIpOw0KICAgIHZhciBjdXJ4T3JpZyA9IHBhcnNlRmxvYXQodmll
d0JveEFycmF5WzBdKTsNCiAgICB2YXIgY3VyeU9yaWcgPSBwYXJzZUZsb2F0KHZpZXdCb3hBcnJh
eVsxXSk7DQogICAgdmFyIGN1cldpZHRoID0gcGFyc2VGbG9hdCh2aWV3Qm94QXJyYXlbMl0pOw0K
ICAgIHZhciBjdXJIZWlnaHQgPSBwYXJzZUZsb2F0KHZpZXdCb3hBcnJheVszXSk7DQogICAgYW5p
bVZpZXdCb3ggPSBjdXJ4T3JpZyArICIgIiArIGN1cnlPcmlnICsgIiAiICsgY3VyV2lkdGggKyAi
ICIgKyBjdXJIZWlnaHQgKyAiOyI7DQogICAgYW5pbVZpZXdCb3ggKz0gKGN1cnhPcmlnKzUpICsg
IiAiICsgKGN1cnlPcmlnKzUpICsgIiAiICsgKGN1cldpZHRoKjAuNzUpICsgIiAiICsgKGN1ckhl
aWdodCowLjc1KTsNCiAgICBhbmltYXRpb24uc2V0QXR0cmlidXRlTlMobnVsbCwidmFsdWVzIixh
bmltVmlld0JveCk7DQogICAgYW5pbWF0aW9uLmJlZ2luRWxlbWVudCgpOw0KICB9DQpdXT4NCjwv
c2NyaXB0Pg0KDQo8Y2lyY2xlIHI9IjEwMCIgY3g9IjEyNSIgY3k9IjEyNSIgZmlsbD0icmVkIiBz
dHJva2U9ImJsdWUiIG9uY2xpY2s9InJlc2l6ZSgpIiAvPg0KDQo8L3N2Zz4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98148</attachid>
            <date>2011-06-22 03:19:34 -0700</date>
            <delta_ts>2011-06-22 03:42:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-20057-20110622121931.patch</filename>
            <type>text/plain</type>
            <size>38858</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NDE1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDYtMjIgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbmltYXRlIHZpZXdCb3ggYXR0cmlidXRlIGluIFNWRworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNTcKKworICAgICAg
ICBGb2xsb3cgdXAgb2YgIlNWR0FuaW1hdGlvbiBzaG91bGQgdXNlIGRpcmVjdCB1bml0IGFuaW1h
dGlvbiBmb3IgU1ZHTGVuZ3RoIjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxMzY4CisgICAgICAgIFRoaXMgcGF0Y2ggY29udGludWVzIHRoZSBjb252ZXJzaW9uIHRv
IHRoZSBuZXcgY29uY2VwdCBvZiBTVkdBbmltYXRvckZhY3Rvcnkgd2l0aCBTVkdSZWN0LiBXaXRo
IHRoZSBuZXcgYW5pbWF0b3Igd2Ugc3VwcG9ydAorICAgICAgICBpbnRlcnBvbGF0aW9uIGJldHdl
ZW4gU1ZHUmVjdHMuIEEgZmVhdHVyZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGdldCBzbW9vdGggem9v
bWluZyBhbmltYXRpb25zIGZvciBTVkdzLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgcGFyc2VS
ZWN0KCkgdG8gU1ZHUGFyc2VyVXRpbGl0aWVzIGZvciBwYXJzaW5nIFN0cmluZ3MgdG8gRmxvYXRS
ZWN0cy4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvc3ZncmVjdC1hbmltYXRpb24t
MS5odG1sCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9zdmdyZWN0LWFuaW1hdGlvbi0y
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBuZXcgZmlsZSBTVkdBbmlt
YXRlZFJlY3QuY3BwIHRvIGJ1aWxkIHN5c3RlbS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdl
YkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oOiBB
ZGRlZCBuZXcgb3BlcmF0b3JzICsgYW5kICs9LgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3Ir
PSk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcispOgorICAgICAgICAqIHN2Zy9TVkdBbGxJ
bk9uZS5jcHA6IEFkZGVkIFNWR0FuaW1hdGVkUmVjdC5jcHAgZm9yIFdpbiBidWlsZC4KKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwOiBIYW5kbGUgQW5pbWF0ZWRSZWN0IGV4cGxp
Y2l0bHkuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5lQW5p
bWF0ZWRBdHRyaWJ1dGVUeXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRCeVZh
bHVlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0
VG9CYXNlVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50
OjphcHBseVJlc3VsdHNUb1RhcmdldCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkUmVjdC5jcHA6IEFkZGVkLiBUaGUgbmV3IEFuaW1hdG9yIGZvciBTVkdSZWN0Lgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OlNWR0FuaW1hdGVkUmVj
dEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFu
aW1hdG9yOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRl
RGlzdGFuY2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJlY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjp+U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3Ip
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwOiBTdXBwb3J0IGZvciBGbG9hdFJl
Y3QuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRU
eXBlLmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuY3BwOiBQYXJzZSBTdHJpbmcgYXMgRmxvYXRSZWN0LgorICAgICAgICAoV2Vi
Q29yZTo6cGFyc2VSZWN0KToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6CisK
IDIwMTEtMDYtMTcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiA4OTM3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjU2LDYgKzE2NTYsNyBAQCBJRiAoRU5BQkxFX1NWRykKICAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlZExl
bmd0aC5jcHAKICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAorICAgICAgICBzdmcv
U1ZHQW5pbWF0ZWRSZWN0LmNwcAogICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAogICAg
ICAgICBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCiAgICAgICAgIHN2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNp
b24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5n
IGNvcHkpCkBAIC0zNDE1LDYgKzM0MTUsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
UmVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaCBcCiAJU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZp
c2lvbiA4OTM3OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5
KQpAQCAtNTcxMiw2ICs1NzEyLDcgQEAKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAnLAogICAgICAg
ICAgICAgJ3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAnLAorICAgICAgICAgICAgJ3N2Zy9TVkdB
bmltYXRlZFJlY3QuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcCcs
CiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAn
c3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDg5
Mzc5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTMy
OTQsNiArMzI5NCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAg
ICAgICAgICBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZH
QW5pbWF0ZWRMZW5ndGguY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
LmNwcCBcCisgICAgICAgICAgICAgIHN2Zy9TVkdBbmltYXRlZFJlY3QuY3BwIFwKICAgICAgICAg
ICAgICAgc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAgXAogICAgICAgICAgICAgICBzdmcvU1ZHQW5p
bWF0ZUVsZW1lbnQuY3BwIFwKICAgICAgICAgICAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4OTM3OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTI1LDYgKzky
NSw3IEBACiAJCTQxRjU4NEM3MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9t
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1ODRD
NjEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oICovOyB9OwogCQk0MUZB
MzAzRTEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBMzAzQzEzMTZDMjlDMDBD
MEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgKi87IH07CiAJCTQxRkEzMDNGMTMxNkMy
OUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyogUmVu
ZGVyTWVkaWFDb250cm9scy5oICovOyB9OworCQk0MzE0MkU3QTEzQjFFOTc3MDBGMUM4NzEgLyog
U1ZHQW5pbWF0ZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzMTQyRTc5MTNCMUU5NzcwMEYxQzg3MSAvKiBTVkdBbmltYXRlZFJlY3QuY3Bw
ICovOyB9OwogCQk0MzU4RTg2QTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDM1OEU4NjcxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAq
LzsgfTsKIAkJNDM1OEU4NkIxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzU4RTg2ODEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5tbSAq
LzsgfTsKIAkJNDM1OEU4NkMxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDM1OEU4NjkxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1l
bnRJbnRlcm5hbC5oICovOyB9OwpAQCAtNzM3MSw2ICs3MzcyLDcgQEAKIAkJNDFGNTg0QzYxMDQ2
NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNNZXNzYWdlUG9ydEN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9s
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNZWRpYUNv
bnRyb2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0QxMzE2QzI5
QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MzE0MkU3OTEzQjFFOTc3MDBGMUM4NzEgLyogU1ZHQW5pbWF0ZWRSZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUmVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODY3MTM2MEEyMTYwMEU0NzQ4QyAv
KiBET01TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDM1OEU4NjgxMzYwQTIxNjAwRTQ3NDhDIC8qIERPTVNWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TVkdG
RURyb3BTaGFkb3dFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4
RTg2OTEzNjBBMjE2MDBFNDc0OEMgLyogRE9NU1ZHRkVEcm9wU2hhZG93RWxlbWVudEludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTczODUsNiAr
MTczODcsNyBAQAogCQkJCUIyMjI3N0VEMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZE51
bWJlckxpc3QuaWRsICovLAogCQkJCTA4RkUwQkM0MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLywKIAkJCQlCMjIyNzdGNDBEMDBCRjFGMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKKwkJCQk0MzE0MkU3
OTEzQjFFOTc3MDBGMUM4NzEgLyogU1ZHQW5pbWF0ZWRSZWN0LmNwcCAqLywKIAkJCQkwOEM4NTlC
RjEyNzQ1NzUzMDBBNTcyOEQgLyogU1ZHQW5pbWF0ZWRSZWN0LmggKi8sCiAJCQkJQjIyMjc3RjUw
RDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUmVjdC5pZGwgKi8sCiAJCQkJMDg0REI1OUEx
MjgwMDhDQzAwMkE2RDY0IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmggKi8sCkBAIC0yNTc3Myw2ICsy
NTc3Niw3IEBACiAJCQkJNDNBMEYwQjExM0FDN0Q2RDAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkTnVt
YmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzQTBGMEI2MTNBQ0NDRkYwMEE1RjBBNyAvKiBT
VkdBbmltYXRlZFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdCMUYwMkUxM0IwMjVDQTAw
RjUxMDNGIC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQzMTQyRTdBMTNCMUU5NzcwMEYxQzg3MSAvKiBTVkdBbmltYXRlZFJlY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuaAkocmV2aXNpb24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDYgKzIwNiwyMCBAQCBpbmxpbmUg
RmxvYXRSZWN0IHVuaW9uUmVjdChjb25zdCBGbG9hdFJlCiAgICAgcmV0dXJuIGM7CiB9CiAKK2lu
bGluZSBGbG9hdFJlY3QmIG9wZXJhdG9yKz0oRmxvYXRSZWN0JiBhLCBjb25zdCBGbG9hdFJlY3Qm
IGIpCit7CisgICAgYS5tb3ZlKGIueCgpLCBiLnkoKSk7CisgICAgYS5zZXRXaWR0aChhLndpZHRo
KCkgKyBiLndpZHRoKCkpOworICAgIGEuc2V0SGVpZ2h0KGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgp
KTsKKyAgICByZXR1cm4gYTsKK30KKworaW5saW5lIEZsb2F0UmVjdCBvcGVyYXRvcisoY29uc3Qg
RmxvYXRSZWN0JiBhLCBjb25zdCBGbG9hdFJlY3QmIGIpCit7CisgICAgRmxvYXRSZWN0IGMgPSBh
OworICAgIGMgKz0gYjsKKyAgICByZXR1cm4gYzsKK30KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGbG9hdFJlY3QmIGEsIGNvbnN0IEZsb2F0UmVjdCYgYikKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FsbEluT25lLmNwcAkocmV2aXNpb24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmNwcCIKKyNpbmNsdWRlICJTVkdB
bmltYXRlZFJlY3QuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZS5jcHAiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAko
cmV2aXNpb24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDYgQEAgQW5pbWF0ZWRBdHRyaWJ1dGVU
eXBlIFNWR0FuaW1hdGVFbGVtZW50OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlcjoKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKICAgICBjYXNlIEFuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICBjYXNlIEFuaW1h
dGVkU3RyaW5nOgogICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CiAgICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKQEAgLTEzMiw2ICsxMzEsOCBAQCBBbmltYXRlZEF0dHJpYnV0ZVR5cGUgU1ZH
QW5pbWF0ZUVsZW1lbnQ6CiAgICAgICAgIHJldHVybiBBbmltYXRlZFBhdGg7CiAgICAgY2FzZSBB
bmltYXRlZFBvaW50czoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9pbnRzOworICAgIGNhc2Ug
QW5pbWF0ZWRSZWN0OgorICAgICAgICByZXR1cm4gQW5pbWF0ZWRSZWN0OwogICAgIGNhc2UgQW5p
bWF0ZWRDb2xvcjoKICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQ29sb3I7CiAgICAgY2FzZSBBbmlt
YXRlZFRyYW5zZm9ybUxpc3Q6CkBAIC0yNTAsNyArMjUxLDggQEAgdm9pZCBTVkdBbmltYXRlRWxl
bWVudDo6Y2FsY3VsYXRlQW5pbWF0ZQogICAgIH0KICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAg
ICAgY2FzZSBBbmltYXRlZExlbmd0aDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOiB7CisgICAg
Y2FzZSBBbmltYXRlZE51bWJlcjoKKyAgICBjYXNlIEFuaW1hdGVkUmVjdDogewogICAgICAgICBB
U1NFUlQobV9hbmltYXRvcik7CiAgICAgICAgIEFTU0VSVChyZXN1bHRzLT5tX2FuaW1hdGVkVHlw
ZSk7CiAgICAgICAgIC8vIFRhcmdldCBlbGVtZW50IG1pZ2h0IGhhdmUgY2hhbmdlZC4KQEAgLTMz
Nyw2ICszMzksNyBAQCBib29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kCiAg
ICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgY2Fz
ZSBBbmltYXRlZE51bWJlcjoKKyAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAgICAgICAgZW5zdXJl
QW5pbWF0b3IoKS0+Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKG1fZnJvbVR5cGUsIG1fdG9UeXBl
LCBmcm9tU3RyaW5nLCB0b1N0cmluZyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6CkBAIC0zNzksNiArMzgyLDcgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRl
RnJvbUFuZAogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OgogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6CisgICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAgICAg
ICAgIGVuc3VyZUFuaW1hdG9yKCktPmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhtX2Zyb21UeXBl
LCBtX3RvVHlwZSwgZnJvbVN0cmluZywgYnlTdHJpbmcpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICBkZWZhdWx0OgpAQCAtNDE0LDcgKzQxOCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6
OnJlc2V0VG9CYXNlVmFsdWUKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQW5pbWF0ZWRBbmds
ZToKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6IHsK
KyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgorICAgIGNhc2UgQW5pbWF0ZWRSZWN0OiB7CiAgICAg
ICAgIGlmICghbV9hbmltYXRlZFR5cGUpCiAgICAgICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IGVu
c3VyZUFuaW1hdG9yKCktPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVN0cmluZyk7CiAgICAgICAg
IGVsc2UKQEAgLTQ1Myw2ICs0NTgsNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJl
c3VsdHNUb1RhCiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgogICAgIGNhc2UgQW5pbWF0ZWRMZW5n
dGg6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKKyAgICBjYXNlIEFuaW1hdGVkUmVjdDoKICAg
ICAgICAgdmFsdWVUb0FwcGx5ID0gbV9hbmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTQ4MSw2ICs0ODcsNyBAQCBmbG9hdCBTVkdB
bmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRGlzdGFuCiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgog
ICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKKyAgICBj
YXNlIEFuaW1hdGVkUmVjdDoKICAgICAgICAgcmV0dXJuIGVuc3VyZUFuaW1hdG9yKCktPmNhbGN1
bGF0ZURpc3RhbmNlKHRoaXMsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoU1ZHX0FOSU1BVElPTikK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3QuaCIKKworI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxp
dGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
OjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYpCisgICAgOiBTVkdBbmltYXRlZFR5cGVBbmltYXRvcihBbmltYXRl
ZFJlY3QsIGNvbnRleHRFbGVtZW50KQoreworfQorCitQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCit7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gYW5pbWF0ZWRUeXBl
ID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KG5ldyBGbG9hdFJlY3QoKSk7CisgICAgcGFy
c2VSZWN0KHN0cmluZywgYW5pbWF0ZWRUeXBlLT5yZWN0KCkpOworICAgIHJldHVybiBhbmltYXRl
ZFR5cGUucmVsZWFzZSgpOworfQorCit2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjYWxj
dWxhdGVGcm9tQW5kVG9WYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb20sIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+JiB0bywgY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHRvU3RyaW5nKQoreworICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZyb21T
dHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyh0b1N0cmluZyk7Cit9CisKK3Zv
aWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhPd25Q
dHI8U1ZHQW5pbWF0ZWRUeXBlPiYgZnJvbSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIHRvLCBj
b25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpCit7CisgICAg
QVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOworICAgIAorICAgIGZyb20gPSBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGZyb21TdHJpbmcpOworICAgIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyhieVN0cmlu
Zyk7CisKKyAgICB0by0+cmVjdCgpICs9IGZyb20tPnJlY3QoKTsKK30KKwordm9pZCBTVkdBbmlt
YXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShTVkdTTUlMRWxlbWVudCog
c21pbEVsZW1lbnQsIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE93blB0
cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG8sIE93
blB0cjxTVkdBbmltYXRlZFR5cGU+JiBhbmltYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sLCBib29sKQoreworICAgIEFTU0VS
VChzbWlsRWxlbWVudCk7CisgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOworCisgICAgU1ZH
QW5pbWF0ZUVsZW1lbnQqIGFuaW1hdGlvbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRl
RWxlbWVudCo+KHNtaWxFbGVtZW50KTsKKyAgICBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUg
PSBhbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCk7CisgICAgLy8gVG8gYW5pbWF0aW9u
IHVzZXMgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBsb3dlciBwcmlvcml0eSBhbmltYXRpb25zIGFz
IHRoZSBiYXNlIHZhbHVlLgorICAgIEZsb2F0UmVjdCYgYW5pbWF0ZWRSZWN0ID0gYW5pbWF0ZWQt
PnJlY3QoKTsKKyAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBUb0FuaW1hdGlvbikKKyAgICAgICAg
ZnJvbS0+cmVjdCgpID0gYW5pbWF0ZWRSZWN0OworICAgIAorICAgIGNvbnN0IEZsb2F0UmVjdCYg
ZnJvbVJlY3QgPSBmcm9tLT5yZWN0KCk7CisgICAgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QgPSB0
by0+cmVjdCgpOworICAgIEZsb2F0UmVjdCBuZXdSZWN0OyAgICAKKyAgICBpZiAoYW5pbWF0aW9u
RWxlbWVudC0+Y2FsY01vZGUoKSA9PSBDYWxjTW9kZURpc2NyZXRlKQorICAgICAgICBuZXdSZWN0
ID0gcGVyY2VudGFnZSA8IDAuNWYgPyBmcm9tUmVjdCA6IHRvUmVjdDsKKyAgICBlbHNlCisgICAg
ICAgIG5ld1JlY3QgPSBGbG9hdFJlY3QoKHRvUmVjdC54KCkgLSBmcm9tUmVjdC54KCkpICogcGVy
Y2VudGFnZSArIGZyb21SZWN0LngoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG9S
ZWN0LnkoKSAtIGZyb21SZWN0LnkoKSkgKiBwZXJjZW50YWdlICsgZnJvbVJlY3QueSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0b1JlY3Qud2lkdGgoKSAtIGZyb21SZWN0LndpZHRo
KCkpICogcGVyY2VudGFnZSArIGZyb21SZWN0LndpZHRoKCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHRvUmVjdC5oZWlnaHQoKSAtIGZyb21SZWN0LmhlaWdodCgpKSAqIHBlcmNlbnRh
Z2UgKyBmcm9tUmVjdC5oZWlnaHQoKSk7CisgICAgCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90
IGNvcnJlY3QgZm9yIHZhbHVlcyBhbmltYXRpb24uIFJpZ2h0IG5vdyB3ZSB0cmFuc2Zvcm0gdmFs
dWVzLWFuaW1hdGlvbiB0byBtdWx0aXBsZSBmcm9tLXRvLWFuaW1hdGlvbnMgYW5kCisgICAgLy8g
YWNjdW11bGF0ZSBldmVyeSBzaW5nbGUgdmFsdWUgdG8gdGhlIHByZXZpb3VzIG9uZS4gQnV0IGFj
Y3VtdWxhdGlvbiBzaG91bGQganVzdCB0YWtlIGludG8gYWNjb3VudCBhZnRlciBhIGNvbXBsZXRl
IGN5Y2xlCisgICAgLy8gb2YgdmFsdWVzLWFuaW1haXRvbi4gU2VlIGV4YW1wbGUgYXQ6IGh0dHA6
Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXNtaWwtYW5pbWF0aW9uLTIwMDEwOTA0LyNSZXBlYXRp
bmdBbmltCisgICAgaWYgKGFuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBl
YXRDb3VudCkgeworICAgICAgICBuZXdSZWN0ICs9IHRvUmVjdDsKKyAgICAgICAgbmV3UmVjdC5z
Y2FsZShyZXBlYXRDb3VudCk7CisgICAgfQorICAgIAorICAgIGlmIChhbmltYXRpb25FbGVtZW50
LT5pc0FkZGl0aXZlKCkgJiYgYW5pbWF0aW9uTW9kZSAhPSBUb0FuaW1hdGlvbikKKyAgICAgICAg
YW5pbWF0ZWRSZWN0ICs9IG5ld1JlY3Q7CisgICAgZWxzZQorICAgICAgICBhbmltYXRlZFJlY3Qg
PSBuZXdSZWN0OworfQorCitmbG9hdCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRl
RGlzdGFuY2UoU1ZHU01JTEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQor
eworICAgIC8vIEZJWE1FOiBEaXN0YW5jZSBjYWxjdWxhdGlvbiBpcyBub3QgcG9zc2libGUgZm9y
IFNWR1JlY3QgcmlnaHQgbm93LiBXZSBuZWVkIHRoZSBkaXN0YW5jZSBvZiBmb3IgZXZlcnkgc2lu
Z2xlIHZhbHVlLgorICAgIHJldHVybiAtMTsKK30KKyAgICAKK30KKworI2VuZGlmIC8vIEVOQUJM
RShTVkcpICYmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFJlY3QuaAkocmV2aXNpb24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUg
U1ZHQW5pbWF0ZWRSZWN0X2gKIAogI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHQW5pbWF0
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdSZWN0Lmgi
CkBAIC0zNiw3ICszNywyNiBAQCBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR0FuaW1hdGVk
UmVjCiAjZGVmaW5lIERFRklORV9BTklNQVRFRF9SRUNUKE93bmVyVHlwZSwgRE9NQXR0cmlidXRl
LCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBERUZJTkVfQU5JTUFURURfUFJPUEVS
VFkoT3duZXJUeXBlLCBET01BdHRyaWJ1dGUsIERPTUF0dHJpYnV0ZS5sb2NhbE5hbWUoKSwgU1ZH
QW5pbWF0ZWRSZWN0LCBGbG9hdFJlY3QsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkpCiAK
KyNpZiBFTkFCTEUoU1ZHX0FOSU1BVElPTikKK2NsYXNzIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
IDogcHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKKyAgICAKK3B1YmxpYzoKKyAgICBT
VkdBbmltYXRlZFJlY3RBbmltYXRvcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOworICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yKCkg
eyB9CisgICAgCisgICAgdmlydHVhbCBQYXNzT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3Ry
dWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgY2Fs
Y3VsYXRlRnJvbUFuZFRvVmFsdWVzKE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiBmcm9tVmFsdWUs
IE93blB0cjxTVkdBbmltYXRlZFR5cGU+JiB0b1ZhbHVlLCBjb25zdCBTdHJpbmcmIGZyb21TdHJp
bmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVG
cm9tQW5kQnlWYWx1ZXMoT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGZyb21WYWx1ZSwgT3duUHRy
PFNWR0FuaW1hdGVkVHlwZT4mIHRvVmFsdWUsIGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29u
c3QgU3RyaW5nJiBieVN0cmluZyk7CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUoU1ZHU01JTEVsZW1lbnQqLCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiYgZnJvbVZhbHVlLCBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiYgdG9WYWx1
ZSwgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4mIGFuaW1hdGVkVmFsdWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmcm9tUHJvcGVydHlJbmhlcml0cywgYm9v
bCB0b1Byb3BlcnR5SW5oZXJpdHMpOworICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFu
Y2UoU1ZHU01JTEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgdG9TdHJpbmcpOworICAgIAorICAgIHN0YXRpYyBib29sIHBhcnNlU1ZHUmVjdChjb25zdCBT
dHJpbmcmLCBGbG9hdFJlY3QmKTsKK307CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRp
ZiAvLyBFTkFCTEUoU1ZHX0FOSU1BVElPTikKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkocmV2aXNpb24gODkz
NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lmIEVOQUJMRShTVkcpICYmIEVOQUJMRShTVkdfQU5J
TUFUSU9OKQogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZS5oIgogCisjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKICNp
bmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKQEAgLTQ1LDYgKzQ2LDkgQEAgU1ZHQW5pbWF0
ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgogICAg
ICAgICBkZWxldGUgbV9kYXRhLm51bWJlcjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmlt
YXRlZFJlY3Q6CisgICAgICAgIGRlbGV0ZSBtX2RhdGEucmVjdDsKKyAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OwpAQCAtNzUsNiArNzksMTQgQEAgUGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkVAogICAgIHJldHVybiBhbmltYXRlZFR5cGUucmVsZWFzZSgpOwogfQogCitQYXNzT3duUHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KEZsb2F0UmVjdCog
cmVjdCkKK3sKKyAgICBBU1NFUlQocmVjdCk7CisgICAgT3duUHRyPFNWR0FuaW1hdGVkVHlwZT4g
YW5pbWF0ZWRUeXBlID0gYWRvcHRQdHIobmV3IFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFJlY3Qp
KTsKKyAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0gcmVjdDsKKyAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlLnJlbGVhc2UoKTsKK30KKwogU1ZHQW5nbGUmIFNWR0FuaW1hdGVkVHlwZTo6YW5n
bGUoKQogewogICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRBbmdsZSk7CkBAIC05Myw2ICsx
MDUsMTIgQEAgZmxvYXQmIFNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKCkKICAgICByZXR1cm4gKm1f
ZGF0YS5udW1iZXI7CiB9CiAKK0Zsb2F0UmVjdCYgU1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KCkKK3sK
KyAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7CisgICAgcmV0dXJuICptX2RhdGEu
cmVjdDsKK30KKwogU3RyaW5nIFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZygpCiB7CiAg
ICAgc3dpdGNoIChtX3R5cGUpIHsKQEAgLTEwNSw2ICsxMjMsMTAgQEAgU3RyaW5nIFNWR0FuaW1h
dGVkVHlwZTo6dmFsdWVBc1N0cmluZygpCiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoKICAgICAg
ICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIo
Km1fZGF0YS5udW1iZXIpOworICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgorICAgICAgICBBU1NFUlQo
bV9kYXRhLnJlY3QpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3Qt
PngoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJworICAg
ICAgICAgICAgICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAnICsg
U3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBicmVhazsKICAgICB9CkBAIC0xMjgsNiArMTUwLDEwIEBAIGJvb2wgU1ZHQW5pbWF0ZWRU
eXBlOjpzZXRWYWx1ZUFzU3RyaW5nKGMKICAgICAgICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwog
ICAgICAgICBwYXJzZU51bWJlckZyb21TdHJpbmcodmFsdWUsICptX2RhdGEubnVtYmVyKTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRlZFJlY3Q6CisgICAgICAgIEFTU0VSVChtX2Rh
dGEucmVjdCk7CisgICAgICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fZGF0YS5yZWN0KTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkocmV2
aXNpb24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBTVkdBbmdsZTsKIGNsYXNzIFNWR0xlbmd0aDsKIApAQCAt
MzYsMTIgKzM3LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxTVkdBbmltYXRl
ZFR5cGU+IGNyZWF0ZUFuZ2xlKFNWR0FuZ2xlKik7CiAgICAgc3RhdGljIFBhc3NPd25QdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgoU1ZHTGVuZ3RoKik7CiAgICAgc3RhdGljIFBhc3NP
d25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXIoZmxvYXQqKTsKKyAgICBzdGF0aWMg
UGFzc093blB0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVJlY3QoRmxvYXRSZWN0Kik7CiAgICAg
CiAgICAgQW5pbWF0ZWRBdHRyaWJ1dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KIAogICAgIFNWR0FuZ2xlJiBhbmdsZSgpOwogICAgIFNWR0xlbmd0aCYgbGVuZ3RoKCk7CiAg
ICAgZmxvYXQmIG51bWJlcigpOworICAgIEZsb2F0UmVjdCYgcmVjdCgpOwogCiAgICAgU3RyaW5n
IHZhbHVlQXNTdHJpbmcoKTsKICAgICBib29sIHNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpOwpAQCAtNjEsNiArNjQsNyBAQCBwcml2YXRlOgogICAg
ICAgICBTVkdBbmdsZSogYW5nbGU7CiAgICAgICAgIFNWR0xlbmd0aCogbGVuZ3RoOwogICAgICAg
ICBmbG9hdCogbnVtYmVyOworICAgICAgICBGbG9hdFJlY3QqIHJlY3Q7CiAgICAgfSBtX2RhdGE7
CiB9OwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAko
cmV2aXNpb24gODkzNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRl
ZEFuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZE51bWJlci5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCkBAIC0zOSw2ICs0MCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihjb250ZXh0RWxl
bWVudCwgYXR0cmlidXRlTmFtZSkpOwogICAgICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgogICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yKGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKSk7CisgICAgICAgIGNhc2UgQW5pbWF0ZWRSZWN0
OgorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTVkdBbmltYXRlZFJlY3RBbmltYXRv
cihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
CShyZXZpc2lvbiA4OTM3OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHUGFy
c2VyVXRpbGl0aWVzLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZsb2F0
UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJTVkdQb2ludExpc3Qu
aCIKIAogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTE4OSw2ICsxODksMjEgQEAgYm9vbCBwYXJzZU51
bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cgogICAgIHJldHVybiBjdXIgPT0gZW5kOwogfQog
Citib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcmIHN0cmluZywgRmxvYXRSZWN0JiByZWN0KQor
eworICAgIGNvbnN0IFVDaGFyKiBwdHIgPSBzdHJpbmcuY2hhcmFjdGVycygpOworICAgIGNvbnN0
IFVDaGFyKiBlbmQgPSBwdHIgKyBzdHJpbmcubGVuZ3RoKCk7CisgICAgc2tpcE9wdGlvbmFsU3Bh
Y2VzKHB0ciwgZW5kKTsKKyAgICAKKyAgICBmbG9hdCB4ID0gMDsKKyAgICBmbG9hdCB5ID0gMDsK
KyAgICBmbG9hdCB3aWR0aCA9IDA7CisgICAgZmxvYXQgaGVpZ2h0ID0gMDsKKyAgICBib29sIHZh
bGlkID0gcGFyc2VOdW1iZXIocHRyLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKHB0ciwgZW5kLCB5
KSAmJiBwYXJzZU51bWJlcihwdHIsIGVuZCwgd2lkdGgpICYmIHBhcnNlTnVtYmVyKHB0ciwgZW5k
LCBoZWlnaHQsIGZhbHNlKTsKKyAgICByZWN0ID0gRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWln
aHQpOworICAgIHJldHVybiB2YWxpZDsKK30KKwogYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEo
U1ZHUG9pbnRMaXN0JiBwb2ludHNMaXN0LCBjb25zdCBTdHJpbmcmIHBvaW50cykKIHsKICAgICBp
ZiAocG9pbnRzLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRp
bGl0aWVzLmgJKHJldmlzaW9uIDg5Mzc5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTQgQEAgdHlwZWRlZiBW
ZWN0b3I8VW5pY29kZVJhbmdlPiBVbmljb2RlUmFuZwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIFNWR1BvaW50TGlzdDsKIAogYm9vbCBwYXJzZU51bWJl
cihjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgZmxvYXQmIG51bWJlciwgYm9v
bCBza2lwID0gdHJ1ZSk7CiBib29sIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
LCBmbG9hdCYgbnVtYmVyLCBib29sIHNraXAgPSB0cnVlKTsKIGJvb2wgcGFyc2VOdW1iZXJPcHRp
b25hbE51bWJlcihjb25zdCBTdHJpbmcmIHMsIGZsb2F0JiBoLCBmbG9hdCYgdik7CiBib29sIHBh
cnNlQXJjRmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxh
Zyk7Citib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcmLCBGbG9hdFJlY3QmKTsKIAogLy8gU1ZH
IGFsbG93cyBzZXZlcmFsIGRpZmZlcmVudCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnM6CiAvLyBodHRw
Oi8vd3d3LnczLm9yZy9UUi9TVkcvcGF0aHMuaHRtbCNQYXRoRGF0YUJORgpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gODk0MTUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyNyBAQAorMjAxMS0wNi0yMiAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFuaW1h
dGUgdmlld0JveCBhdHRyaWJ1dGUgaW4gU1ZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA1NworCisgICAgICAgIFRlc3QgU1ZHUmVjdCBhbmltYXRp
b24gd2l0aCBmcm9tLXRvIGFuZCBmcm9tLWJ5IGFuaW1hdGlvbnMuCisKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncmVjdC1hbmltYXRpb24tMS5qczogQWRkZWQuCisg
ICAgICAgIChzYW1wbGUxKToKKyAgICAgICAgKHNhbXBsZTIpOgorICAgICAgICAoc2FtcGxlMyk6
CisgICAgICAgIChleGVjdXRlVGVzdCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0
LXRlc3RzL3N2Z3JlY3QtYW5pbWF0aW9uLTIuanM6IEFkZGVkLgorICAgICAgICAoc2FtcGxlMSk6
CisgICAgICAgIChzYW1wbGUyKToKKyAgICAgICAgKHNhbXBsZTMpOgorICAgICAgICAoZXhlY3V0
ZVRlc3QpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z3JlY3QtYW5pbWF0aW9uLTEtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zdmdyZWN0LWFuaW1h
dGlvbi0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3N2Z3JlY3QtYW5p
bWF0aW9uLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
dmdyZWN0LWFuaW1hdGlvbi0yLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTIyICBEaXJrIFByYW5r
ZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHdoaXRlc3Bh
Y2UgZXhwZWN0YXRpb25zIGNoYW5nZSB0byB0cmlnZ2VyIGEgcm91bmQgb2YKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z3JlY3QtYW5pbWF0aW9uLTEtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z3JlY3QtYW5pbWF0aW9u
LTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvc3ZncmVjdC1hbmltYXRpb24tMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDMgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdCBmcm9tLXRv
IFNWR1JlY3QgYW5pbWF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueCBpcyAwCitQQVNTIHJvb3RTVkdFbGVt
ZW50LnZpZXdCb3guYW5pbVZhbC55IGlzIDAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5h
bmltVmFsLndpZHRoIGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwu
aGVpZ2h0IGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwueCBpcyAw
CitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IGlzIDAKK1BBU1Mgcm9vdFNW
R0VsZW1lbnQudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVu
dC52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3
Qm94LmFuaW1WYWwueCBpcyAyNQorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwu
eSBpcyAyNQorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwud2lkdGggaXMgNzUK
K1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLmhlaWdodCBpcyA3NQorUEFTUyBy
b290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwueCBpcyAyNQorUEFTUyByb290U1ZHRWxlbWVu
dC52aWV3Qm94LmJhc2VWYWwueSBpcyAyNQorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJh
c2VWYWwud2lkdGggaXMgNzUKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLmhl
aWdodCBpcyA3NQorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueCBpcyA1MAor
UEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueSBpcyA1MAorUEFTUyByb290U1ZH
RWxlbWVudC52aWV3Qm94LmFuaW1WYWwud2lkdGggaXMgNTAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQu
dmlld0JveC5hbmltVmFsLmhlaWdodCBpcyA1MAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94
LmJhc2VWYWwueCBpcyA1MAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwueSBp
cyA1MAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwud2lkdGggaXMgNTAKK1BB
U1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLmhlaWdodCBpcyA1MAorUEFTUyByb290
U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueCBpcyAwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZp
ZXdCb3guYW5pbVZhbC55IGlzIDAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFs
LndpZHRoIGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwuaGVpZ2h0
IGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwueCBpcyAwCitQQVNT
IHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IGlzIDAKK1BBU1Mgcm9vdFNWR0VsZW1l
bnQudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDEwMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3
Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2
Z3JlY3QtYW5pbWF0aW9uLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9zdmdyZWN0LWFuaW1hdGlvbi0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdyZWN0LWFuaW1hdGlvbi0xLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVz
dHM8L2gxPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ZncmVjdC1hbmltYXRpb24tMS5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9zdmdyZWN0LWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdyZWN0LWFuaW1hdGlvbi0yLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3N2Z3JlY3QtYW5pbWF0aW9u
LTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACitTVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzCisKK1Rlc3RzIGZyb20tYnkgU1ZHUmVjdCBhbmltYXRpb24u
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJvb3RTVkdFbGVtZW50LnZp
ZXdCb3guYW5pbVZhbC54IGlzIDAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFs
LnkgaXMgMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwud2lkdGggaXMgMTAw
CitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC5oZWlnaHQgaXMgMTAwCitQQVNT
IHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC54IGlzIDAKK1BBU1Mgcm9vdFNWR0VsZW1l
bnQudmlld0JveC5iYXNlVmFsLnkgaXMgMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJh
c2VWYWwud2lkdGggaXMgMTAwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC5o
ZWlnaHQgaXMgMTAwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC54IGlzIDI1
CitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC55IGlzIDI1CitQQVNTIHJvb3RT
VkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC53aWR0aCBpcyAxMjUKK1BBU1Mgcm9vdFNWR0VsZW1l
bnQudmlld0JveC5hbmltVmFsLmhlaWdodCBpcyAxMjUKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmll
d0JveC5iYXNlVmFsLnggaXMgMjUKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFs
LnkgaXMgMjUKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDEy
NQorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEyNQorUEFT
UyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueCBpcyA1MAorUEFTUyByb290U1ZHRWxl
bWVudC52aWV3Qm94LmFuaW1WYWwueSBpcyA1MAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94
LmFuaW1WYWwud2lkdGggaXMgMTUwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZh
bC5oZWlnaHQgaXMgMTUwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC54IGlz
IDUwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IGlzIDUwCitQQVNTIHJv
b3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyAxNTAKK1BBU1Mgcm9vdFNWR0Vs
ZW1lbnQudmlld0JveC5iYXNlVmFsLmhlaWdodCBpcyAxNTAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQu
dmlld0JveC5hbmltVmFsLnggaXMgMAorUEFTUyByb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1W
YWwueSBpcyAwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC53aWR0aCBpcyAx
MDAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLmhlaWdodCBpcyAxMDAKK1BB
U1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLnggaXMgMAorUEFTUyByb290U1ZHRWxl
bWVudC52aWV3Qm94LmJhc2VWYWwueSBpcyAwCitQQVNTIHJvb3RTVkdFbGVtZW50LnZpZXdCb3gu
YmFzZVZhbC53aWR0aCBpcyAxMDAKK1BBU1Mgcm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFs
LmhlaWdodCBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zdmdyZWN0LWFuaW1h
dGlvbi0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3Zn
cmVjdC1hbmltYXRpb24tMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZncmVjdC1hbmltYXRpb24tMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3N2Z3JlY3QtYW5pbWF0aW9uLTIuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL3N2Z3JlY3QtYW5pbWF0aW9uLTEuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z3JlY3QtYW5pbWF0aW9uLTEuanMJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvc3ZncmVjdC1h
bmltYXRpb24tMS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAorZGVzY3JpcHRpb24o
IlRlc3QgZnJvbS10byBTVkdSZWN0IGFuaW1hdGlvbi4iKTsKK2NyZWF0ZVNWR1Rlc3RDYXNlKCk7
CisKKy8vIFNldHVwIHRlc3QgZG9jdW1lbnQKK3ZhciByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgi
cmVjdCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVu
Iik7CityZWN0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJleGVjdXRlVGVzdCgpIik7Cityb290
U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworcm9vdFNWR0VsZW1lbnQuc2V0QXR0cmli
dXRlKCJpZCIsICJzdmciKTsKK3Jvb3RTVkdFbGVtZW50LnNldEF0dHJpYnV0ZSgidmlld0JveCIs
ICIwIDAgMTAwIDEwMCIpOworCit2YXIgYW5pbWF0ZSA9IGNyZWF0ZVNWR0VsZW1lbnQoImFuaW1h
dGUiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRpb24iKTsKK2FuaW1hdGUu
c2V0QXR0cmlidXRlKCJhdHRyaWJ1dGVOYW1lIiwgInZpZXdCb3giKTsKK2FuaW1hdGUuc2V0QXR0
cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImR1ciIsICI0
cyIpOworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMCAwIDEwMCAxMDAiKTsKK2FuaW1h
dGUuc2V0QXR0cmlidXRlKCJ0byIsICI1MCA1MCA1MCA1MCIpOworcm9vdFNWR0VsZW1lbnQuYXBw
ZW5kQ2hpbGQoYW5pbWF0ZSk7CisKKy8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CitmdW5jdGlvbiBz
YW1wbGUxKCkgeworICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKKyAgICBzaG91
bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLngiLCAiMCIpOworICAgIHNob3Vs
ZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueSIsICIwIik7CisgICAgc2hvdWxk
QmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC53aWR0aCIsICIxMDAiKTsKKyAgICBz
aG91bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLmhlaWdodCIsICIxMDAiKTsK
KworICAgIHNob3VsZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwueCIsICIwIik7
CisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IiwgIjAiKTsK
KyAgICBzaG91bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjEw
MCIpOworICAgIHNob3VsZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0
IiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGUyKCkgeworICAgIHNob3VsZEJlKCJyb290
U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueCIsICIyNSIpOworICAgIHNob3VsZEJlKCJyb290
U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueSIsICIyNSIpOworICAgIHNob3VsZEJlKCJyb290
U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwud2lkdGgiLCAiNzUiKTsKKyAgICBzaG91bGRCZSgi
cm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLmhlaWdodCIsICI3NSIpOworCisgICAgc2hv
dWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC54IiwgIjI1Iik7CisgICAgc2hv
dWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IiwgIjI1Iik7CisgICAgc2hv
dWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC53aWR0aCIsICI3NSIpOworICAg
IHNob3VsZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IiwgIjc1Iik7
Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicm9v
dFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLngiLCAiNTAiLCAwLjAxKTsKKyAgICBzaG91bGRC
ZUNsb3NlRW5vdWdoKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueSIsICI1MCIsIDAu
MDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5p
bVZhbC53aWR0aCIsICI1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJvb3RT
VkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC5oZWlnaHQiLCAiNTAiLCAwLjAxKTsKKworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC54IiwgIjUw
IiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicm9vdFNWR0VsZW1lbnQudmlld0Jv
eC5iYXNlVmFsLnkiLCAiNTAiLCAwLjAxKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyb290
U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwud2lkdGgiLCAiNTAiLCAwLjAxKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0Iiwg
IjUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJ
ZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAic3ZnIiwg
c2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAgICAic3ZnIiwgc2FtcGxlMl0s
CisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAic3ZnIiwgc2FtcGxlM10sCisgICAgICAg
IFsiYW5pbWF0aW9uIiwgNC4wICwgICAic3ZnIiwgc2FtcGxlMV0KKyAgICBdOworCisgICAgcnVu
QW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8vIEJlZ2luIHRlc3QgYXN5bmMK
K3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAzMCkiLCAwKTsKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
c2NyaXB0LXRlc3RzL3N2Z3JlY3QtYW5pbWF0aW9uLTIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3N2Z3JlY3QtYW5pbWF0aW9uLTIuanMJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ZncmVjdC1hbmltYXRpb24tMi5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAorZGVz
Y3JpcHRpb24oIlRlc3RzIGZyb20tYnkgU1ZHUmVjdCBhbmltYXRpb24uIik7CitjcmVhdGVTVkdU
ZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNW
R0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiZmls
bCIsICJncmVlbiIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3Qo
KSIpOworcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQocmVjdCk7CisKK3Jvb3RTVkdFbGVtZW50
LnNldEF0dHJpYnV0ZSgiaWQiLCAic3ZnIik7Cityb290U1ZHRWxlbWVudC5zZXRBdHRyaWJ1dGUo
InZpZXdCb3giLCAiMCAwIDEwMCAxMDAiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVhdGVTVkdFbGVt
ZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5pbWF0aW9uIik7
CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ2aWV3Qm94Iik7Cithbmlt
YXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2siKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRl
KCJkdXIiLCAiNHMiKTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJmcm9tIiwgIjAgMCAxMDAgMTAw
Iik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYnkiLCAiNTAgNTAgNTAgNTAiKTsKK3Jvb3RTVkdF
bGVtZW50LmFwcGVuZENoaWxkKGFuaW1hdGUpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAor
ZnVuY3Rpb24gc2FtcGxlMSgpIHsKKyAgICAvLyBDaGVjayBpbml0aWFsL2VuZCBjb25kaXRpb25z
CisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC54IiwgIjAiKTsK
KyAgICBzaG91bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLnkiLCAiMCIpOwor
ICAgIHNob3VsZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwud2lkdGgiLCAiMTAw
Iik7CisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC5oZWlnaHQi
LCAiMTAwIik7CisKKyAgICBzaG91bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFs
LngiLCAiMCIpOworICAgIHNob3VsZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmJhc2VWYWwu
eSIsICIwIik7CisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC53
aWR0aCIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNl
VmFsLmhlaWdodCIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICBzaG91
bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLngiLCAiMjUiKTsKKyAgICBzaG91
bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLnkiLCAiMjUiKTsKKyAgICBzaG91
bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5hbmltVmFsLndpZHRoIiwgIjEyNSIpOworICAg
IHNob3VsZEJlKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwuaGVpZ2h0IiwgIjEyNSIp
OworCisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC54IiwgIjI1
Iik7CisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IiwgIjI1
Iik7CisgICAgc2hvdWxkQmUoInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC53aWR0aCIs
ICIxMjUiKTsKKyAgICBzaG91bGRCZSgicm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLmhl
aWdodCIsICIxMjUiKTsKK30KKworZnVuY3Rpb24gc2FtcGxlMygpIHsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJyb290U1ZHRWxlbWVudC52aWV3Qm94LmFuaW1WYWwueCIsICI1MCIsIDAuMDEp
OworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZh
bC55IiwgIjUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgicm9vdFNWR0VsZW1l
bnQudmlld0JveC5hbmltVmFsLndpZHRoIiwgIjE1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xv
c2VFbm91Z2goInJvb3RTVkdFbGVtZW50LnZpZXdCb3guYW5pbVZhbC5oZWlnaHQiLCAiMTUwIiwg
MC4wMSk7CisKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJyb290U1ZHRWxlbWVudC52aWV3Qm94
LmJhc2VWYWwueCIsICI1MCIsIDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJvb3RT
VkdFbGVtZW50LnZpZXdCb3guYmFzZVZhbC55IiwgIjUwIiwgMC4wMSk7CisgICAgc2hvdWxkQmVD
bG9zZUVub3VnaCgicm9vdFNWR0VsZW1lbnQudmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjE1MCIs
IDAuMDEpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goInJvb3RTVkdFbGVtZW50LnZpZXdCb3gu
YmFzZVZhbC5oZWlnaHQiLCAiMTUwIiwgMC4wMSk7Cit9CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0aW9u
SWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJhY2tdCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgMC4wLCAgICAic3ZnIiwgc2FtcGxlMV0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMi4wLCAg
ICAic3ZnIiwgc2FtcGxlMl0sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMy45OTk5LCAic3ZnIiwg
c2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9uIiwgNC4wICwgICAic3ZnIiwgc2FtcGxlMV0K
KyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cit9CisKKy8v
IEJlZ2luIHRlc3QgYXN5bmMKK3dpbmRvdy5zZXRUaW1lb3V0KCJ0cmlnZ2VyVXBkYXRlKDUwLCAz
MCkiLCAwKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="92293"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>