<?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>35403</bug_id>
          
          <creation_ts>2010-02-25 14:01:16 -0800</creation_ts>
          <short_desc>Web Inspector: resources panel only shows uncompressed resource size.</short_desc>
          <delta_ts>2010-03-03 10:20:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193872</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-25 14:01:16 -0800</bug_when>
    <thetext>We should show both: gzipped and raw sizes.
- We should render is as on Time / Sort by Duration (both sizes on the same bar), except for solid chunk should go first
- Solid would correspond to gzipped (network) size, semi-transparent should correspond to actual resource size.
- There should be additional sorting option &quot;Sort by Uncompressed Size&quot;
- Existing sorting should be default and sort by compressed size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194012</commentid>
    <comment_count>1</comment_count>
    <who name="Anthony Ricaud">rik</who>
    <bug_when>2010-02-25 23:53:38 -0800</bug_when>
    <thetext>A related bug : https://bugs.webkit.org/show_bug.cgi?id=19793</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194725</commentid>
    <comment_count>2</comment_count>
      <attachid>49729</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-01 10:10:42 -0800</bug_when>
    <thetext>Created attachment 49729
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195431</commentid>
    <comment_count>3</comment_count>
      <attachid>49729</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-03 03:18:01 -0800</bug_when>
    <thetext>Comment on attachment 49729
[PATCH] Suggested solution

&gt; +    get transferSize()
&gt; +    {
&gt; +        return this.cached ? 0 : (this.responseHeaders[&quot;Content-Length&quot;] || this.contentLength || 0);
&gt; +    },

What is the difference between Content-Length header and this.contentLength?

&gt; +        var resourceBytes = this._value(resource);
&gt; +        if (networkBytes &amp;&amp; networkBytes != resourceBytes) {

!==

&gt; +    _networkBytes: function(resource)
&gt; +    {
&gt; +        return resource.responseHeaders[&quot;Content-Length&quot;];

Why not this.contentLength?

&gt; +        const isTransparentRight = panel &amp;&amp; panel.calculator &amp;&amp; panel.calculator.isTransparentRight;

What is calculator&apos;s &apos;isTransparentRight&apos;? Does not sound like calculator property?


r- is for &quot;Content-Length&quot; vs contentLength confusion, also for &apos;isTransparentRight&apos; on calculator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195609</commentid>
    <comment_count>4</comment_count>
      <attachid>49909</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-03 07:50:31 -0800</bug_when>
    <thetext>Created attachment 49909
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195611</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-03 07:52:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 49729 [details])
&gt; &gt; +    get transferSize()
&gt; &gt; +    {
&gt; &gt; +        return this.cached ? 0 : (this.responseHeaders[&quot;Content-Length&quot;] || this.contentLength || 0);
&gt; &gt; +    },
&gt; 
&gt; What is the difference between Content-Length header and this.contentLength?

These two are the opposites. Content-Length is the network transfer size while this.contentLength is the actual resource size, contrary to its name. Fixed the name.

&gt; &gt; +        var resourceBytes = this._value(resource);
&gt; &gt; +        if (networkBytes &amp;&amp; networkBytes != resourceBytes) {
&gt; 
&gt; !==

networkBytes used to be a string, hence !=. Fixed to be a number.

&gt; &gt; +    _networkBytes: function(resource)
&gt; &gt; +    {
&gt; &gt; +        return resource.responseHeaders[&quot;Content-Length&quot;];
&gt; 
&gt; Why not this.contentLength?

See above.

&gt; &gt; +        const isTransparentRight = panel &amp;&amp; panel.calculator &amp;&amp; panel.calculator.isTransparentRight;
&gt; 
&gt; What is calculator&apos;s &apos;isTransparentRight&apos;? Does not sound like calculator
&gt; property?

Fixed, now resides in the sorting options along with the sorter and calculator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195618</commentid>
    <comment_count>6</comment_count>
      <attachid>49909</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-03 08:09:54 -0800</bug_when>
    <thetext>Comment on attachment 49909
[PATCH] Comments addressed

isBarOpaqueAtLeft should not be a sorting function option. It is a graph item property (time is always &apos;false&apos;, size is always &apos;true&apos;).

&gt;      refresh: function(calculator)

Let it receive and cache isBarOpaqueAtLeft?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195632</commentid>
    <comment_count>7</comment_count>
      <attachid>49913</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-03 09:00:56 -0800</bug_when>
    <thetext>Created attachment 49913
[PATCH] Rendering option extracted from the TreeElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195655</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-03 10:20:48 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       WebCore/ChangeLog
        M       WebCore/English.lproj/localizedStrings.js
        M       WebCore/inspector/InspectorResource.cpp
        M       WebCore/inspector/front-end/AbstractTimelinePanel.js
        M       WebCore/inspector/front-end/AuditRules.js
        M       WebCore/inspector/front-end/ImageView.js
        M       WebCore/inspector/front-end/Resource.js
        M       WebCore/inspector/front-end/ResourcesPanel.js
        M       WebCore/inspector/front-end/inspector.css
        M       WebCore/inspector/front-end/inspector.js
Committed r55466</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49729</attachid>
            <date>2010-03-01 10:10:42 -0800</date>
            <delta_ts>2010-03-03 07:50:31 -0800</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>transfersize.patch</filename>
            <type>text/plain</type>
            <size>14047</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmU1YmFjNy4uMWM4NzkyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wMy0wMSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlc291cmNlcyBwYW5lbCBvbmx5
IHNob3dzIHVuY29tcHJlc3NlZCByZXNvdXJjZSBzaXplLgorCisgICAgICAgIFJlbHkgb24gdGhl
ICJDb250ZW50LUxlbmd0aCIgcmVzcG9uc2UgaGVhZGVyIHRvIGdldCB0aGUgcmVzb3VyY2UgdHJh
bnNmZXIgc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM1NDAzCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNhbGN1bGF0b3IucHJvdG90
eXBlLmdldCBpc1RyYW5zcGFyZW50UmlnaHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBl
LmdldCB0cmFuc2ZlclNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLkNvbXBh
cmVCeVRyYW5zZmVyU2l6ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUucG9wdWxhdGVTaWRlYmFyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWVD
YWxjdWxhdG9yLnByb3RvdHlwZS5jb21wdXRlQmFyR3JhcGhMYWJlbHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvci5wcm90b3R5cGUuY29tcHV0
ZUJhckdyYXBoTGFiZWxzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVy
U2l6ZUNhbGN1bGF0b3IucHJvdG90eXBlLmNvbXB1dGVCYXJHcmFwaFBlcmNlbnRhZ2VzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVyU2l6ZUNhbGN1bGF0b3IucHJvdG90
eXBlLmdldCBpc1RyYW5zcGFyZW50UmlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvci5wcm90b3R5cGUuX25ldHdvcmtCeXRlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29tcGFyZUJ5RGVz
Y2VuZGluZ1RyYW5zZmVyU2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VHcmFw
aC5wcm90b3R5cGUucmVmcmVzaExhYmVsUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisKIDIwMTAtMDMtMDEgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLCBicmluZyBFbmds
aXNoLmxwcm9qL2xvY2FsbGl6ZWRTdHJpbmdzLmpzIGJhY2sgdG8gYmluYXJ5IChVVEYpIG1vZGUu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBi
L1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDIwNzJlOTc0
Yzc4OGE3ZTBiMzk4ZWNhZTZkOThjMzcwN2E1M2U0NjkuLjU5ZTY2MjdhZDhlMDU4ZGQ4NDY5NDA3
ZDUyNWI1NTZlNjEyNDFkZmYgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTEzCnpjbWV5
OyZEN1Mldl9aO35LWkshKEEoMGBFcF9uMCFBKGYkTUA8dERKYVdwWG8xJV9hVE9vcG4tQUs3JiQ/
e08yQAp4RWFpRjJYN1ZkUm1CfDtsKjtxOWdSMmhtVmAmdm0oRjUoajVFZTB3RWk1TX1jS3QkT3o4
SSV+VDgyfHo+OUhSZ0wKCmRlbHRhIDE0ClZjbVpxY1dCU3N+dl9aO3FeQWdXbkhVS1lqMjRNZ0kK
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGlu
ZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxpbmVQ
YW5lbC5qcwppbmRleCA2YzVkNzE1Li40MjJjZGRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMKQEAgLTQ2OCw2ICs0Njgs
MTEgQEAgV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVDYWxjdWxhdG9yLnByb3RvdHlwZSA9
IHsKICAgICAgICAgcmV0dXJuIHRoaXMubWF4aW11bUJvdW5kYXJ5IC0gdGhpcy5taW5pbXVtQm91
bmRhcnk7CiAgICAgfSwKIAorICAgIGdldCBpc1RyYW5zcGFyZW50UmlnaHQoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKICAgICB1cGRhdGVCb3VuZGFyaWVzOiBmdW5j
dGlvbihpdGVtKQogICAgIHsKICAgICAgICAgdGhpcy5taW5pbXVtQm91bmRhcnkgPSAwOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDk4NjAzMDAuLmMwYjdjMmIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKQEAgLTQ2Niw2ICs0NjYs
MTEgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX3NvcnRlZFJlc3BvbnNlSGVhZGVyczsKICAgICB9LAogCisgICAgZ2V0IHRyYW5zZmVy
U2l6ZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5jYWNoZWQgPyAwIDogKHRoaXMucmVz
cG9uc2VIZWFkZXJzWyJDb250ZW50LUxlbmd0aCJdIHx8IHRoaXMuY29udGVudExlbmd0aCB8fCAw
KTsKKyAgICB9LAorCiAgICAgZ2V0IHNjcmlwdHMoKQogICAgIHsKICAgICAgICAgaWYgKCEoIl9z
Y3JpcHRzIiBpbiB0aGlzKSkKQEAgLTYwNiw2ICs2MTEsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlLkNvbXBhcmVCeVNpemUgPSBmdW5jdGlvbihhLCBiKQogICAgIHJldHVybiBhLmNvbnRlbnRM
ZW5ndGggLSBiLmNvbnRlbnRMZW5ndGg7CiB9CiAKK1dlYkluc3BlY3Rvci5SZXNvdXJjZS5Db21w
YXJlQnlUcmFuc2ZlclNpemUgPSBmdW5jdGlvbihhLCBiKQoreworICAgIHJldHVybiBhLnRyYW5z
ZmVyU2l6ZSAtIGIudHJhbnNmZXJTaXplOworfQorCisKIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5T
dGF0dXNUZXh0Rm9yQ29kZSA9IGZ1bmN0aW9uKGNvZGUpCiB7CiAgICAgcmV0dXJuIGNvZGUgPyBj
b2RlICsgIiAiICsgV2ViSW5zcGVjdG9yLlJlc291cmNlLlN0YXR1c1RleHRbY29kZV0gOiAiIjsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA3
NzRlZDY0Li4yOGQ4NWVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzCkBAIC0xMDUsNiArMTA1LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgdHJhbnNmZXJTaXplQ2FsY3VsYXRvciA9
IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmFuc2ZlclNpemVDYWxjdWxhdG9yKCk7CiAgICAg
ICAgIHNpemVHcmFwaEl0ZW0uc29ydGluZ09wdGlvbnMgPSBbCisgICAgICAgICAgICB7IG5hbWU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU29ydCBieSBUcmFuc2ZlciBTaXplIiksIHNvcnRpbmdG
dW5jdGlvbjogV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclRyZWVFbGVtZW50LkNvbXBhcmVC
eURlc2NlbmRpbmdUcmFuc2ZlclNpemUsIGNhbGN1bGF0b3I6IHRyYW5zZmVyU2l6ZUNhbGN1bGF0
b3IgfSwKICAgICAgICAgICAgIHsgbmFtZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTb3J0IGJ5
IFNpemUiKSwgc29ydGluZ0Z1bmN0aW9uOiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJl
ZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ1NpemUsIGNhbGN1bGF0b3I6IHRyYW5zZmVyU2l6
ZUNhbGN1bGF0b3IgfSwKICAgICAgICAgXTsKIApAQCAtODI2LDE4ICs4MjcsMjAgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlVGltZUNhbGN1bGF0b3IucHJvdG90eXBlID0gewogCiAgICAgY29tcHV0
ZUJhckdyYXBoTGFiZWxzOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHZhciBs
ZWZ0TGFiZWwgPSAiIjsKLSAgICAgICAgaWYgKHJlc291cmNlLmxhdGVuY3kgPiAwKQotICAgICAg
ICAgICAgbGVmdExhYmVsID0gdGhpcy5mb3JtYXRWYWx1ZShyZXNvdXJjZS5sYXRlbmN5KTsKLQog
ICAgICAgICB2YXIgcmlnaHRMYWJlbCA9ICIiOwogICAgICAgICBpZiAocmVzb3VyY2UucmVzcG9u
c2VSZWNlaXZlZFRpbWUgIT09IC0xICYmIHJlc291cmNlLmVuZFRpbWUgIT09IC0xKQogICAgICAg
ICAgICAgcmlnaHRMYWJlbCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2UuZW5kVGltZSAtIHJl
c291cmNlLnJlc3BvbnNlUmVjZWl2ZWRUaW1lKTsKIAotICAgICAgICBpZiAobGVmdExhYmVsICYm
IHJpZ2h0TGFiZWwpIHsKKyAgICAgICAgdmFyIGhhc0xhdGVuY3kgPSByZXNvdXJjZS5sYXRlbmN5
ID4gMDsKKyAgICAgICAgaWYgKGhhc0xhdGVuY3kgPiAwKQorICAgICAgICAgICAgdmFyIGxlZnRM
YWJlbCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2UubGF0ZW5jeSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHZhciBsZWZ0TGFiZWwgPSByaWdodExhYmVsOworCisgICAgICAgIGlmICho
YXNMYXRlbmN5ICYmIHJpZ2h0TGFiZWwpIHsKICAgICAgICAgICAgIHZhciB0b3RhbCA9IHRoaXMu
Zm9ybWF0VmFsdWUocmVzb3VyY2UuZHVyYXRpb24pOwogICAgICAgICAgICAgdmFyIHRvb2x0aXAg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGxhdGVuY3ksICVzIGRvd25sb2FkICglcyB0b3Rh
bCkiLCBsZWZ0TGFiZWwsIHJpZ2h0TGFiZWwsIHRvdGFsKTsKLSAgICAgICAgfSBlbHNlIGlmIChs
ZWZ0TGFiZWwpCisgICAgICAgIH0gZWxzZSBpZiAoaGFzTGF0ZW5jeSkKICAgICAgICAgICAgIHZh
ciB0b29sdGlwID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyBsYXRlbmN5IiwgbGVmdExhYmVs
KTsKICAgICAgICAgZWxzZSBpZiAocmlnaHRMYWJlbCkKICAgICAgICAgICAgIHZhciB0b29sdGlw
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyBkb3dubG9hZCIsIHJpZ2h0TGFiZWwpOwpAQCAt
OTQxLDExICs5NDQsMzQgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3Vs
YXRvciA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVyU2l6ZUNhbGN1
bGF0b3IucHJvdG90eXBlID0gewogICAgIGNvbXB1dGVCYXJHcmFwaExhYmVsczogZnVuY3Rpb24o
cmVzb3VyY2UpCiAgICAgewotICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZm9ybWF0VmFsdWUo
dGhpcy5fdmFsdWUocmVzb3VyY2UpKTsKLSAgICAgICAgdmFyIHRvb2x0aXAgPSBsYWJlbDsKKyAg
ICAgICAgdmFyIG5ldHdvcmtCeXRlcyA9IHRoaXMuX25ldHdvcmtCeXRlcyhyZXNvdXJjZSk7Cisg
ICAgICAgIHZhciByZXNvdXJjZUJ5dGVzID0gdGhpcy5fdmFsdWUocmVzb3VyY2UpOworICAgICAg
ICBpZiAobmV0d29ya0J5dGVzICYmIG5ldHdvcmtCeXRlcyAhPSByZXNvdXJjZUJ5dGVzKSB7Cisg
ICAgICAgICAgICAvLyBUcmFuc2ZlcnJlZCBzaXplIGlzIG5vdCB0aGUgc2FtZSBhcyByZXBvcnRl
ZCByZXNvdXJjZSBsZW5ndGguCisgICAgICAgICAgICB2YXIgbmV0d29ya0J5dGVzU3RyaW5nID0g
dGhpcy5mb3JtYXRWYWx1ZShuZXR3b3JrQnl0ZXMpOworICAgICAgICAgICAgdmFyIGxlZnQgPSBu
ZXR3b3JrQnl0ZXNTdHJpbmc7CisgICAgICAgICAgICB2YXIgcmlnaHQgPSB0aGlzLmZvcm1hdFZh
bHVlKHJlc291cmNlQnl0ZXMpOworICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSByaWdodCA/IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiJXMgKCVzIHRyYW5zZmVycmVkKSIsIHJpZ2h0LCBuZXR3b3Jr
Qnl0ZXNTdHJpbmcpIDogcmlnaHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIg
bGVmdCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2VCeXRlcyk7CisgICAgICAgICAgICB2YXIg
cmlnaHQgPSBsZWZ0OworICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSBsZWZ0OworICAgICAgICB9
CiAgICAgICAgIGlmIChyZXNvdXJjZS5jYWNoZWQpCiAgICAgICAgICAgICB0b29sdGlwID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlcyAoZnJvbSBjYWNoZSkiLCB0b29sdGlwKTsKLSAgICAgICAg
cmV0dXJuIHtsZWZ0OiBsYWJlbCwgcmlnaHQ6IGxhYmVsLCB0b29sdGlwOiB0b29sdGlwfTsKKyAg
ICAgICAgcmV0dXJuIHtsZWZ0OiBsZWZ0LCByaWdodDogcmlnaHQsIHRvb2x0aXA6IHRvb2x0aXB9
OworICAgIH0sCisKKyAgICBjb21wdXRlQmFyR3JhcGhQZXJjZW50YWdlczogZnVuY3Rpb24oaXRl
bSkKKyAgICB7CisgICAgICAgIGNvbnN0IHJlc291cmNlQnl0ZXNBc1BlcmNlbnQgPSAodGhpcy5f
dmFsdWUoaXRlbSkgLyB0aGlzLmJvdW5kYXJ5U3BhbikgKiAxMDA7CisgICAgICAgIGNvbnN0IG5l
dHdvcmtCeXRlc0FzUGVyY2VudCA9IHRoaXMuX25ldHdvcmtCeXRlcyhpdGVtKSA/ICh0aGlzLl9u
ZXR3b3JrQnl0ZXMoaXRlbSkgLyB0aGlzLmJvdW5kYXJ5U3BhbikgKiAxMDAgOiByZXNvdXJjZUJ5
dGVzQXNQZXJjZW50OworICAgICAgICByZXR1cm4ge3N0YXJ0OiAwLCBtaWRkbGU6IG5ldHdvcmtC
eXRlc0FzUGVyY2VudCwgZW5kOiByZXNvdXJjZUJ5dGVzQXNQZXJjZW50fTsKKyAgICB9LAorCisg
ICAgZ2V0IGlzVHJhbnNwYXJlbnRSaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9LAogCiAgICAgX3ZhbHVlOiBmdW5jdGlvbihyZXNvdXJjZSkKQEAgLTk1Myw2ICs5Nzks
MTEgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvci5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHJldHVybiByZXNvdXJjZS5jb250ZW50TGVuZ3RoOwogICAgIH0sCiAK
KyAgICBfbmV0d29ya0J5dGVzOiBmdW5jdGlvbihyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiByZXNvdXJjZS5yZXNwb25zZUhlYWRlcnNbIkNvbnRlbnQtTGVuZ3RoIl07CisgICAgfSwK
KwogICAgIGZvcm1hdFZhbHVlOiBmdW5jdGlvbih2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBOdW1iZXIuYnl0ZXNUb1N0cmluZyh2YWx1ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nLmJpbmQo
V2ViSW5zcGVjdG9yKSk7CkBAIC0xMTQxLDYgKzExNzIsMTEgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlU2lkZWJhclRyZWVFbGVtZW50LkNvbXBhcmVCeURlc2NlbmRpbmdTaXplID0gZnVuY3Rpb24o
YSwgYikKICAgICByZXR1cm4gLTEgKiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuQ29tcGFyZUJ5U2l6
ZShhLnJlc291cmNlLCBiLnJlc291cmNlKTsKIH0KIAorV2ViSW5zcGVjdG9yLlJlc291cmNlU2lk
ZWJhclRyZWVFbGVtZW50LkNvbXBhcmVCeURlc2NlbmRpbmdUcmFuc2ZlclNpemUgPSBmdW5jdGlv
bihhLCBiKQoreworICAgIHJldHVybiAtMSAqIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5Db21wYXJl
QnlUcmFuc2ZlclNpemUoYS5yZXNvdXJjZSwgYi5yZXNvdXJjZSk7Cit9CisKIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLlNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGU7CiAKIFdlYkluc3BlY3Rvci5SZXNv
dXJjZUdyYXBoID0gZnVuY3Rpb24ocmVzb3VyY2UpCkBAIC0xMTg1LDYgKzEyMjEsOCBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUgPSB7CiAKICAgICByZWZyZXNoTGFiZWxQ
b3NpdGlvbnM6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGNvbnN0IHBhbmVsID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5yZXNvdXJjZXM7CisgICAgICAgIGNvbnN0IGlzVHJhbnNwYXJlbnRSaWdo
dCA9IHBhbmVsICYmIHBhbmVsLmNhbGN1bGF0b3IgJiYgcGFuZWwuY2FsY3VsYXRvci5pc1RyYW5z
cGFyZW50UmlnaHQ7CiAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuc3R5bGUucmVtb3Zl
UHJvcGVydHkoImxlZnQiKTsKICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5y
ZW1vdmVQcm9wZXJ0eSgicmlnaHQiKTsKICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5y
ZW1vdmVTdHlsZUNsYXNzKCJiZWZvcmUiKTsKQEAgLTExOTgsOCArMTIzNiwxNSBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNvbnN0IGxhYmVsUGFk
ZGluZyA9IDEwOwogICAgICAgICBjb25zdCBiYXJSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCA9IHRo
aXMuX2JhclJpZ2h0RWxlbWVudC5vZmZzZXRXaWR0aDsKICAgICAgICAgY29uc3QgYmFyTGVmdEVs
ZW1lbnRPZmZzZXRXaWR0aCA9IHRoaXMuX2JhckxlZnRFbGVtZW50Lm9mZnNldFdpZHRoOwotICAg
ICAgICBjb25zdCByaWdodEJhcldpZHRoID0gKGJhclJpZ2h0RWxlbWVudE9mZnNldFdpZHRoIC0g
bGFiZWxQYWRkaW5nKTsKLSAgICAgICAgY29uc3QgbGVmdEJhcldpZHRoID0gKChiYXJMZWZ0RWxl
bWVudE9mZnNldFdpZHRoIC0gYmFyUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGgpIC0gbGFiZWxQYWRk
aW5nKTsKKworICAgICAgICBpZiAoaXNUcmFuc3BhcmVudFJpZ2h0KSB7CisgICAgICAgICAgICB2
YXIgbGVmdEJhcldpZHRoID0gYmFyTGVmdEVsZW1lbnRPZmZzZXRXaWR0aCAtIGxhYmVsUGFkZGlu
ZzsKKyAgICAgICAgICAgIHZhciByaWdodEJhcldpZHRoID0gKGJhclJpZ2h0RWxlbWVudE9mZnNl
dFdpZHRoIC0gYmFyTGVmdEVsZW1lbnRPZmZzZXRXaWR0aCkgLSBsYWJlbFBhZGRpbmc7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgbGVmdEJhcldpZHRoID0gKGJhckxlZnRFbGVt
ZW50T2Zmc2V0V2lkdGggLSBiYXJSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCkgLSBsYWJlbFBhZGRp
bmc7CisgICAgICAgICAgICB2YXIgcmlnaHRCYXJXaWR0aCA9IGJhclJpZ2h0RWxlbWVudE9mZnNl
dFdpZHRoIC0gbGFiZWxQYWRkaW5nOworICAgICAgICB9CisKICAgICAgICAgY29uc3QgbGFiZWxM
ZWZ0RWxlbWVudE9mZnNldFdpZHRoID0gdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5vZmZzZXRXaWR0
aDsKICAgICAgICAgY29uc3QgbGFiZWxSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCA9IHRoaXMuX2xh
YmVsUmlnaHRFbGVtZW50Lm9mZnNldFdpZHRoOwogCkBAIC0xMjA3LDggKzEyNTIsMjIgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlR3JhcGgucHJvdG90eXBlID0gewogICAgICAgICBjb25zdCBsYWJl
bEFmdGVyID0gKGxhYmVsUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggPiByaWdodEJhcldpZHRoKTsK
ICAgICAgICAgY29uc3QgZ3JhcGhFbGVtZW50T2Zmc2V0V2lkdGggPSB0aGlzLl9ncmFwaEVsZW1l
bnQub2Zmc2V0V2lkdGg7CiAKKyAgICAgICAgaWYgKGxhYmVsQmVmb3JlICYmIChncmFwaEVsZW1l
bnRPZmZzZXRXaWR0aCAqICh0aGlzLl9wZXJjZW50YWdlcy5zdGFydCAvIDEwMCkpIDwgKGxhYmVs
TGVmdEVsZW1lbnRPZmZzZXRXaWR0aCArIDEwKSkKKyAgICAgICAgICAgIHZhciBsZWZ0SGlkZGVu
ID0gdHJ1ZTsKKworICAgICAgICBpZiAobGFiZWxBZnRlciAmJiAoZ3JhcGhFbGVtZW50T2Zmc2V0
V2lkdGggKiAoKDEwMCAtIHRoaXMuX3BlcmNlbnRhZ2VzLmVuZCkgLyAxMDApKSA8IChsYWJlbFJp
Z2h0RWxlbWVudE9mZnNldFdpZHRoICsgMTApKQorICAgICAgICAgICAgdmFyIHJpZ2h0SGlkZGVu
ID0gdHJ1ZTsKKworICAgICAgICBpZiAoYmFyTGVmdEVsZW1lbnRPZmZzZXRXaWR0aCA9PSBiYXJS
aWdodEVsZW1lbnRPZmZzZXRXaWR0aCkgeworICAgICAgICAgICAgLy8gVGhlIGxlZnQvcmlnaHQg
bGFiZWwgZGF0YSBhcmUgdGhlIHNhbWUsIHNvIGEgYmVmb3JlL2FmdGVyIGxhYmVsIGNhbiBiZSBy
ZXBsYWNlZCBieSBhbiBvbi1iYXIgbGFiZWwuCisgICAgICAgICAgICBpZiAobGFiZWxCZWZvcmUg
JiYgIWxhYmVsQWZ0ZXIpCisgICAgICAgICAgICAgICAgbGVmdEhpZGRlbiA9IHRydWU7CisgICAg
ICAgICAgICBlbHNlIGlmIChsYWJlbEFmdGVyICYmICFsYWJlbEJlZm9yZSkKKyAgICAgICAgICAg
ICAgICByaWdodEhpZGRlbiA9IHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAobGFiZWxC
ZWZvcmUpIHsKLSAgICAgICAgICAgIGlmICgoZ3JhcGhFbGVtZW50T2Zmc2V0V2lkdGggKiAodGhp
cy5fcGVyY2VudGFnZXMuc3RhcnQgLyAxMDApKSA8IChsYWJlbExlZnRFbGVtZW50T2Zmc2V0V2lk
dGggKyAxMCkpCisgICAgICAgICAgICBpZiAobGVmdEhpZGRlbikKICAgICAgICAgICAgICAgICB0
aGlzLl9sYWJlbExlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAg
ICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAw
IC0gdGhpcy5fcGVyY2VudGFnZXMuc3RhcnQpICsgIiUiKTsKICAgICAgICAgICAgIHRoaXMuX2xh
YmVsTGVmdEVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYmVmb3JlIik7CkBAIC0xMjE4LDcgKzEyNzcs
NyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAobGFiZWxBZnRlcikgewotICAgICAgICAgICAgaWYgKChncmFwaEVsZW1l
bnRPZmZzZXRXaWR0aCAqICgoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuZW5kKSAvIDEwMCkpIDwg
KGxhYmVsUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggKyAxMCkpCisgICAgICAgICAgICBpZiAocmln
aHRIaWRkZW4pCiAgICAgICAgICAgICAgICAgdGhpcy5fbGFiZWxSaWdodEVsZW1lbnQuYWRkU3R5
bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5z
dHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2VzLmVuZCArICIlIik7CiAg
ICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJhZnRlciIp
OwpAQCAtMTI0MywxMSArMTMwMiwzMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHls
ZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKLSAgICAgICAg
dGhpcy5fYmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHBl
cmNlbnRhZ2VzLmVuZCkgKyAiJSIpOwotCi0gICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5z
dHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBlcmNlbnRhZ2VzLm1pZGRsZSArICIlIik7CiAgICAg
ICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAw
IC0gcGVyY2VudGFnZXMuZW5kKSArICIlIik7CiAKKyAgICAgICAgaWYgKCFjYWxjdWxhdG9yLmlz
VHJhbnNwYXJlbnRSaWdodCkgeworICAgICAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQuc3R5
bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHBlcmNlbnRhZ2VzLmVuZCkgKyAiJSIpOwor
ICAgICAgICAgICAgdGhpcy5fYmFyUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0
IiwgcGVyY2VudGFnZXMubWlkZGxlICsgIiUiKTsKKworICAgICAgICAgICAgaWYgKHRoaXMuX2lz
VHJhbnNwYXJlbnRSaWdodCAhPSBjYWxjdWxhdG9yLmlzVHJhbnNwYXJlbnRSaWdodCkgeworICAg
ICAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXRpbmci
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFz
cygid2FpdGluZy1yaWdodCIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1l
bnQuYWRkU3R5bGVDbGFzcygid2FpdGluZyIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVs
UmlnaHRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoIndhaXRpbmctcmlnaHQiKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50
LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5taWRkbGUpICsg
IiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0
eSgibGVmdCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKKworICAgICAgICAgICAgaWYgKHRo
aXMuX2lzVHJhbnNwYXJlbnRSaWdodCAhPSBjYWxjdWxhdG9yLmlzVHJhbnNwYXJlbnRSaWdodCkg
eworICAgICAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
IndhaXRpbmciKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuYWRkU3R5
bGVDbGFzcygid2FpdGluZy1yaWdodCIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVm
dEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygid2FpdGluZyIpOworICAgICAgICAgICAgICAgIHRo
aXMuX2xhYmVsUmlnaHRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXRpbmctcmlnaHQiKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2lzVHJhbnNwYXJlbnRSaWdo
dCA9IGNhbGN1bGF0b3IuaXNUcmFuc3BhcmVudFJpZ2h0OworCiAgICAgICAgIHRoaXMuX2xhYmVs
TGVmdEVsZW1lbnQudGV4dENvbnRlbnQgPSBsYWJlbHMubGVmdDsKICAgICAgICAgdGhpcy5fbGFi
ZWxSaWdodEVsZW1lbnQudGV4dENvbnRlbnQgPSBsYWJlbHMucmlnaHQ7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggY2Y1MWJkOC4uNGFmNWZlMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTI3NTYsNiArMjc1
NiwxMCBAQCBidXR0b24uZW5hYmxlLXRvZ2dsZS1zdGF0dXMtYmFyLWl0ZW0udG9nZ2xlZC1vbiAu
Z2x5cGggewogICAgIG1hcmdpbi1yaWdodDogNXB4OwogfQogCisucmVzb3VyY2VzLWdyYXBoLWxh
YmVsLndhaXRpbmctcmlnaHQgeworICAgIG1hcmdpbi1sZWZ0OiA1cHg7Cit9CisKIC5yZXNvdXJj
ZXMtZ3JhcGgtbGFiZWwuYmVmb3JlIHsKICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpOwog
ICAgIHRleHQtc2hhZG93OiBub25lOwpAQCAtMjgyNCw3ICsyODI4LDcgQEAgYnV0dG9uLmVuYWJs
ZS10b2dnbGUtc3RhdHVzLWJhci1pdGVtLnRvZ2dsZWQtb24gLmdseXBoIHsKICAgICBkaXNwbGF5
OiBibG9jazsKIH0KIAotLnJlc291cmNlcy1ncmFwaC1iYXIud2FpdGluZyB7CisucmVzb3VyY2Vz
LWdyYXBoLWJhci53YWl0aW5nLCAucmVzb3VyY2VzLWdyYXBoLWJhci53YWl0aW5nLXJpZ2h0IHsK
ICAgICBvcGFjaXR5OiAwLjM1OwogfQogCg==
</data>
<flag name="review"
          id="32673"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49909</attachid>
            <date>2010-03-03 07:50:31 -0800</date>
            <delta_ts>2010-03-03 09:00:56 -0800</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>transfersize.patch</filename>
            <type>text/plain</type>
            <size>21253</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjVjMDA2OC4uNDEzYjVlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMy0wMyAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlc291cmNlcyBwYW5lbCBvbmx5
IHNob3dzIHVuY29tcHJlc3NlZCByZXNvdXJjZSBzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU0MDMKKworICAgICAgICAqIEVuZ2xpc2gubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVNj
cmlwdE9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuR3ppcFJ1bGUucHJvdG90eXBlLmRv
UnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkd6aXBSdWxlLnByb3RvdHlw
ZS5fc2hvdWxkQ29tcHJlc3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VW
aWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkltYWdlVmlldyk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZS5wcm90b3R5cGUuZ2V0IHJlc291cmNlU2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2UucHJvdG90eXBlLnNldCByZXNvdXJjZVNpemUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlLnByb3RvdHlwZS5nZXQgdHJhbnNmZXJTaXplKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5Db21wYXJlQnlTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5Db21wYXJlQnlUcmFuc2ZlclNpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2Vz
UGFuZWwucHJvdG90eXBlLnBvcHVsYXRlU2lkZWJhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9ncmFwaFNlbGVjdGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2NoYW5nZVNvcnRpbmdGdW5jdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lQ2FsY3VsYXRvci5wcm90b3R5cGUu
Y29tcHV0ZUJhckdyYXBoTGFiZWxzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
YW5zZmVyU2l6ZUNhbGN1bGF0b3IucHJvdG90eXBlLmNvbXB1dGVCYXJHcmFwaExhYmVscyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmFuc2ZlclNpemVDYWxjdWxhdG9yLnByb3Rv
dHlwZS5jb21wdXRlQmFyR3JhcGhQZXJjZW50YWdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmFuc2ZlclNpemVDYWxjdWxhdG9yLnByb3RvdHlwZS5fdmFsdWUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvci5wcm90b3R5cGUu
X25ldHdvcmtCeXRlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJl
ZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ1RyYW5zZmVyU2l6ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUucmVmcmVzaExhYmVsUG9zaXRpb25zKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZS5yZWZyZXNoKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
dXBkYXRlUmVzb3VyY2UpOgorCiAyMDEwLTAzLTAyICBFcmljIFVocmhhbmUgIDxlcmljdUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5n
bGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDIwNzJlOTc0Yzc4OGE3ZTBiMzk4
ZWNhZTZkOThjMzcwN2E1M2U0NjkuLjU5ZTY2MjdhZDhlMDU4ZGQ4NDY5NDA3ZDUyNWI1NTZlNjEy
NDFkZmYgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTEzCnpjbWV5OyZEN1Mldl9aO35L
WkshKEEoMGBFcF9uMCFBKGYkTUA8dERKYVdwWG8xJV9hVE9vcG4tQUs3JiQ/e08yQAp4RWFpRjJY
N1ZkUm1CfDtsKjtxOWdSMmhtVmAmdm0oRjUoajVFZTB3RWk1TX1jS3QkT3o4SSV+VDgyfHo+OUhS
Z0wKCmRlbHRhIDE0ClZjbVpxY1dCU3N+dl9aO3FeQWdXbkhVS1lqMjRNZ0kKCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggNmYwOGQ1OC4uYjZiNjA1NyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIHZv
aWQgSW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVNjcmlwdE9iamVjdChJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQpCiAgICAgfQogCiAgICAgaWYgKG1fY2hhbmdlcy5oYXNDaGFuZ2UoTGVuZ3Ro
Q2hhbmdlKSkgewotICAgICAgICBqc29uT2JqZWN0LnNldCgiY29udGVudExlbmd0aCIsIG1fbGVu
Z3RoKTsKKyAgICAgICAganNvbk9iamVjdC5zZXQoInJlc291cmNlU2l6ZSIsIG1fbGVuZ3RoKTsK
ICAgICAgICAganNvbk9iamVjdC5zZXQoImRpZExlbmd0aENoYW5nZSIsIHRydWUpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwppbmRleCAyMTBiOGE5
Li5lMmVkOTRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRS
dWxlcy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpA
QCAtMTA3LDcgKzEwNyw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkd6aXBSdWxlLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSByZXNvdXJjZXMu
bGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2Ug
PSByZXNvdXJjZXNbaV07CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZENvbXByZXNz
KHJlc291cmNlKSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgc2l6ZSA9IHJlc291cmNlLmNv
bnRlbnRMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHZhciBzaXplID0gcmVzb3VyY2UucmVz
b3VyY2VTaXplOwogICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVTaXplICs9IHNpemU7CiAg
ICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0NvbXByZXNzZWQocmVzb3VyY2UpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkU2l6ZSArPSBzaXplOwpAQCAtMTQ1LDcg
KzE0NSw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkd6aXBSdWxlLnByb3RvdHlwZSA9IHsK
IAogICAgIF9zaG91bGRDb21wcmVzczogZnVuY3Rpb24ocmVzb3VyY2UpCiAgICAgewotICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuaXNUZXh0VHlwZShyZXNvdXJjZS50
eXBlKSAmJiByZXNvdXJjZS5kb21haW4gJiYgcmVzb3VyY2UuY29udGVudExlbmd0aCAhPT0gdW5k
ZWZpbmVkICYmIHJlc291cmNlLmNvbnRlbnRMZW5ndGggPiAxNTA7CisgICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5pc1RleHRUeXBlKHJlc291cmNlLnR5cGUpICYmIHJl
c291cmNlLmRvbWFpbiAmJiByZXNvdXJjZS5yZXNvdXJjZVNpemUgIT09IHVuZGVmaW5lZCAmJiBy
ZXNvdXJjZS5yZXNvdXJjZVNpemUgPiAxNTA7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0ltYWdlVmlldy5qcwppbmRleCA5NmUxYTZlLi4xMDIwY2I3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMKQEAgLTU2LDcgKzU2LDcgQEAgV2ViSW5z
cGVjdG9yLkltYWdlVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogCiAgICAgdmFyIGltYWdlUHJv
cGVydGllcyA9IFsKICAgICAgICAgeyBuYW1lOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRpbWVu
c2lvbnMiKSwgdmFsdWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgw5cgJWQiLCB0aGlzLmlt
YWdlUHJldmlld0VsZW1lbnQubmF0dXJhbFdpZHRoLCB0aGlzLmltYWdlUHJldmlld0VsZW1lbnQu
aGVpZ2h0KSB9LAotICAgICAgICB7IG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlsZSBz
aXplIiksIHZhbHVlOiBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnJlc291cmNlLmNvbnRlbnRM
ZW5ndGgsIFdlYkluc3BlY3Rvci5VSVN0cmluZy5iaW5kKFdlYkluc3BlY3RvcikpIH0sCisgICAg
ICAgIHsgbmFtZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaWxlIHNpemUiKSwgdmFsdWU6IE51
bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMucmVzb3VyY2UucmVzb3VyY2VTaXplLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcuYmluZChXZWJJbnNwZWN0b3IpKSB9LAogICAgICAgICB7IG5hbWU6IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiTUlNRSB0eXBlIiksIHZhbHVlOiB0aGlzLnJlc291cmNlLm1pbWVU
eXBlIH0KICAgICBdOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2UuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKaW5k
ZXggOTg2MDMwMC4uNGVlNWYyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZS5qcwpAQCAtMjcyLDIyICsyNzIsMjggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlUmVjZWl2ZWRUaW1lIC0gdGhpcy5f
c3RhcnRUaW1lOwogICAgIH0sCiAKLSAgICBnZXQgY29udGVudExlbmd0aCgpCisgICAgZ2V0IHJl
c291cmNlU2l6ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudExlbmd0aCB8
fCAwOworICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VTaXplIHx8IDA7CiAgICAgfSwKIAot
ICAgIHNldCBjb250ZW50TGVuZ3RoKHgpCisgICAgc2V0IHJlc291cmNlU2l6ZSh4KQogICAgIHsK
LSAgICAgICAgaWYgKHRoaXMuX2NvbnRlbnRMZW5ndGggPT09IHgpCisgICAgICAgIGlmICh0aGlz
Ll9yZXNvdXJjZVNpemUgPT09IHgpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhp
cy5fY29udGVudExlbmd0aCA9IHg7CisgICAgICAgIHRoaXMuX3Jlc291cmNlU2l6ZSA9IHg7CiAK
ICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzKQogICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMucmVmcmVzaFJlc291cmNlKHRoaXMpOwogICAg
IH0sCiAKKyAgICBnZXQgdHJhbnNmZXJTaXplKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiB0
aGlzIGlzIHdyb25nIGZvciBjaHVua2VkLWVuY29kaW5nIHJlc291cmNlcy4KKyAgICAgICAgcmV0
dXJuIHRoaXMuY2FjaGVkID8gMCA6IE51bWJlcih0aGlzLnJlc3BvbnNlSGVhZGVyc1siQ29udGVu
dC1MZW5ndGgiXSB8fCB0aGlzLnJlc291cmNlU2l6ZSB8fCAwKTsKKyAgICB9LAorCiAgICAgZ2V0
IGV4cGVjdGVkQ29udGVudExlbmd0aCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoIHx8IDA7CkBAIC02MDMsOSArNjA5LDE1IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5Db21wYXJlQnlMYXRlbmN5ID0gZnVuY3Rpb24oYSwgYikKIAogV2ViSW5zcGVj
dG9yLlJlc291cmNlLkNvbXBhcmVCeVNpemUgPSBmdW5jdGlvbihhLCBiKQogewotICAgIHJldHVy
biBhLmNvbnRlbnRMZW5ndGggLSBiLmNvbnRlbnRMZW5ndGg7CisgICAgcmV0dXJuIGEucmVzb3Vy
Y2VTaXplIC0gYi5yZXNvdXJjZVNpemU7CiB9CiAKK1dlYkluc3BlY3Rvci5SZXNvdXJjZS5Db21w
YXJlQnlUcmFuc2ZlclNpemUgPSBmdW5jdGlvbihhLCBiKQoreworICAgIHJldHVybiBhLnRyYW5z
ZmVyU2l6ZSAtIGIudHJhbnNmZXJTaXplOworfQorCisKIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5T
dGF0dXNUZXh0Rm9yQ29kZSA9IGZ1bmN0aW9uKGNvZGUpCiB7CiAgICAgcmV0dXJuIGNvZGUgPyBj
b2RlICsgIiAiICsgV2ViSW5zcGVjdG9yLlJlc291cmNlLlN0YXR1c1RleHRbY29kZV0gOiAiIjsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA3
NzRlZDY0Li4zM2M1NDcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzCkBAIC05MSwxMSArOTEsMTEgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHRyYW5zZmVyRHVyYXRpb25DYWxjdWxhdG9y
ID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVyRHVyYXRpb25DYWxjdWxhdG9yKCk7
CiAKICAgICAgICAgdGltZUdyYXBoSXRlbS5zb3J0aW5nT3B0aW9ucyA9IFsKLSAgICAgICAgICAg
IHsgbmFtZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTb3J0IGJ5IFN0YXJ0IFRpbWUiKSwgc29y
dGluZ0Z1bmN0aW9uOiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29t
cGFyZUJ5QXNjZW5kaW5nU3RhcnRUaW1lLCBjYWxjdWxhdG9yOiB0cmFuc2ZlclRpbWVDYWxjdWxh
dG9yIH0sCi0gICAgICAgICAgICB7IG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU29ydCBi
eSBSZXNwb25zZSBUaW1lIiksIHNvcnRpbmdGdW5jdGlvbjogV2ViSW5zcGVjdG9yLlJlc291cmNl
U2lkZWJhclRyZWVFbGVtZW50LkNvbXBhcmVCeUFzY2VuZGluZ1Jlc3BvbnNlUmVjZWl2ZWRUaW1l
LCBjYWxjdWxhdG9yOiB0cmFuc2ZlclRpbWVDYWxjdWxhdG9yIH0sCi0gICAgICAgICAgICB7IG5h
bWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU29ydCBieSBFbmQgVGltZSIpLCBzb3J0aW5nRnVu
Y3Rpb246IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlB
c2NlbmRpbmdFbmRUaW1lLCBjYWxjdWxhdG9yOiB0cmFuc2ZlclRpbWVDYWxjdWxhdG9yIH0sCi0g
ICAgICAgICAgICB7IG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU29ydCBieSBEdXJhdGlv
biIpLCBzb3J0aW5nRnVuY3Rpb246IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxl
bWVudC5Db21wYXJlQnlEZXNjZW5kaW5nRHVyYXRpb24sIGNhbGN1bGF0b3I6IHRyYW5zZmVyRHVy
YXRpb25DYWxjdWxhdG9yIH0sCi0gICAgICAgICAgICB7IG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU29ydCBieSBMYXRlbmN5IiksIHNvcnRpbmdGdW5jdGlvbjogV2ViSW5zcGVjdG9yLlJl
c291cmNlU2lkZWJhclRyZWVFbGVtZW50LkNvbXBhcmVCeURlc2NlbmRpbmdMYXRlbmN5LCBjYWxj
dWxhdG9yOiB0cmFuc2ZlckR1cmF0aW9uQ2FsY3VsYXRvciB9LAorICAgICAgICAgICAgeyBuYW1l
OiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvcnQgYnkgU3RhcnQgVGltZSIpLCBzb3J0aW5nRnVu
Y3Rpb246IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlB
c2NlbmRpbmdTdGFydFRpbWUsIGNhbGN1bGF0b3I6IHRyYW5zZmVyVGltZUNhbGN1bGF0b3IsIGlz
QmFyT3BhcXVlQXRMZWZ0OiBmYWxzZSB9LAorICAgICAgICAgICAgeyBuYW1lOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNvcnQgYnkgUmVzcG9uc2UgVGltZSIpLCBzb3J0aW5nRnVuY3Rpb246IFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlBc2NlbmRpbmdS
ZXNwb25zZVJlY2VpdmVkVGltZSwgY2FsY3VsYXRvcjogdHJhbnNmZXJUaW1lQ2FsY3VsYXRvciwg
aXNCYXJPcGFxdWVBdExlZnQ6IGZhbHNlIH0sCisgICAgICAgICAgICB7IG5hbWU6IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU29ydCBieSBFbmQgVGltZSIpLCBzb3J0aW5nRnVuY3Rpb246IFdlYklu
c3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlBc2NlbmRpbmdFbmRU
aW1lLCBjYWxjdWxhdG9yOiB0cmFuc2ZlclRpbWVDYWxjdWxhdG9yLCBpc0Jhck9wYXF1ZUF0TGVm
dDogZmFsc2UgfSwKKyAgICAgICAgICAgIHsgbmFtZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJT
b3J0IGJ5IER1cmF0aW9uIiksIHNvcnRpbmdGdW5jdGlvbjogV2ViSW5zcGVjdG9yLlJlc291cmNl
U2lkZWJhclRyZWVFbGVtZW50LkNvbXBhcmVCeURlc2NlbmRpbmdEdXJhdGlvbiwgY2FsY3VsYXRv
cjogdHJhbnNmZXJEdXJhdGlvbkNhbGN1bGF0b3IsIGlzQmFyT3BhcXVlQXRMZWZ0OiBmYWxzZSB9
LAorICAgICAgICAgICAgeyBuYW1lOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvcnQgYnkgTGF0
ZW5jeSIpLCBzb3J0aW5nRnVuY3Rpb246IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVl
RWxlbWVudC5Db21wYXJlQnlEZXNjZW5kaW5nTGF0ZW5jeSwgY2FsY3VsYXRvcjogdHJhbnNmZXJE
dXJhdGlvbkNhbGN1bGF0b3IsIGlzQmFyT3BhcXVlQXRMZWZ0OiBmYWxzZSB9LAogICAgICAgICBd
OwogCiAgICAgICAgIHRpbWVHcmFwaEl0ZW0uc2VsZWN0ZWRTb3J0aW5nT3B0aW9uSW5kZXggPSAx
OwpAQCAtMTA1LDcgKzEwNSw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgdmFyIHRyYW5zZmVyU2l6ZUNhbGN1bGF0b3IgPSBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvcigpOwogICAgICAgICBzaXplR3Jh
cGhJdGVtLnNvcnRpbmdPcHRpb25zID0gWwotICAgICAgICAgICAgeyBuYW1lOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNvcnQgYnkgU2l6ZSIpLCBzb3J0aW5nRnVuY3Rpb246IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlEZXNjZW5kaW5nU2l6ZSwgY2Fs
Y3VsYXRvcjogdHJhbnNmZXJTaXplQ2FsY3VsYXRvciB9LAorICAgICAgICAgICAgeyBuYW1lOiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvcnQgYnkgVHJhbnNmZXIgU2l6ZSIpLCBzb3J0aW5nRnVu
Y3Rpb246IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlE
ZXNjZW5kaW5nVHJhbnNmZXJTaXplLCBjYWxjdWxhdG9yOiB0cmFuc2ZlclNpemVDYWxjdWxhdG9y
LCBpc0Jhck9wYXF1ZUF0TGVmdDogdHJ1ZSB9LAorICAgICAgICAgICAgeyBuYW1lOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlNvcnQgYnkgU2l6ZSIpLCBzb3J0aW5nRnVuY3Rpb246IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJlQnlEZXNjZW5kaW5nU2l6ZSwg
Y2FsY3VsYXRvcjogdHJhbnNmZXJTaXplQ2FsY3VsYXRvciwgaXNCYXJPcGFxdWVBdExlZnQ6IGZh
bHNlIH0sCiAgICAgICAgIF07CiAKICAgICAgICAgc2l6ZUdyYXBoSXRlbS5zZWxlY3RlZFNvcnRp
bmdPcHRpb25JbmRleCA9IDA7CkBAIC02MDcsNiArNjA4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCA9IHNvcnRp
bmdPcHRpb24ubmFtZTsKICAgICAgICAgICAgIG9wdGlvbi5zb3J0aW5nRnVuY3Rpb24gPSBzb3J0
aW5nT3B0aW9uLnNvcnRpbmdGdW5jdGlvbjsKICAgICAgICAgICAgIG9wdGlvbi5jYWxjdWxhdG9y
ID0gc29ydGluZ09wdGlvbi5jYWxjdWxhdG9yOworICAgICAgICAgICAgb3B0aW9uLmlzQmFyT3Bh
cXVlQXRMZWZ0ID0gc29ydGluZ09wdGlvbi5pc0Jhck9wYXF1ZUF0TGVmdDsKICAgICAgICAgICAg
IHRoaXMuc29ydGluZ1NlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAg
fQogCkBAIC02NDMsNiArNjQ1LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICBfY2hhbmdlU29ydGluZ0Z1bmN0aW9uOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB2YXIgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnNvcnRpbmdTZWxlY3RFbGVtZW50W3Ro
aXMuc29ydGluZ1NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleF07CisgICAgICAgIHRoaXMuaXNC
YXJPcGFxdWVBdExlZnQgPSBzZWxlY3RlZE9wdGlvbi5pc0Jhck9wYXF1ZUF0TGVmdDsKICAgICAg
ICAgdGhpcy5zb3J0aW5nRnVuY3Rpb24gPSBzZWxlY3RlZE9wdGlvbi5zb3J0aW5nRnVuY3Rpb247
CiAgICAgICAgIHRoaXMuY2FsY3VsYXRvciA9IHRoaXMuc3VtbWFyeUJhci5jYWxjdWxhdG9yID0g
c2VsZWN0ZWRPcHRpb24uY2FsY3VsYXRvcjsKICAgICB9LApAQCAtODI2LDE4ICs4MjksMjAgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVGltZUNhbGN1bGF0b3IucHJvdG90eXBlID0gewogCiAgICAg
Y29tcHV0ZUJhckdyYXBoTGFiZWxzOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAg
IHZhciBsZWZ0TGFiZWwgPSAiIjsKLSAgICAgICAgaWYgKHJlc291cmNlLmxhdGVuY3kgPiAwKQot
ICAgICAgICAgICAgbGVmdExhYmVsID0gdGhpcy5mb3JtYXRWYWx1ZShyZXNvdXJjZS5sYXRlbmN5
KTsKLQogICAgICAgICB2YXIgcmlnaHRMYWJlbCA9ICIiOwogICAgICAgICBpZiAocmVzb3VyY2Uu
cmVzcG9uc2VSZWNlaXZlZFRpbWUgIT09IC0xICYmIHJlc291cmNlLmVuZFRpbWUgIT09IC0xKQog
ICAgICAgICAgICAgcmlnaHRMYWJlbCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2UuZW5kVGlt
ZSAtIHJlc291cmNlLnJlc3BvbnNlUmVjZWl2ZWRUaW1lKTsKIAotICAgICAgICBpZiAobGVmdExh
YmVsICYmIHJpZ2h0TGFiZWwpIHsKKyAgICAgICAgdmFyIGhhc0xhdGVuY3kgPSByZXNvdXJjZS5s
YXRlbmN5ID4gMDsKKyAgICAgICAgaWYgKGhhc0xhdGVuY3kpCisgICAgICAgICAgICB2YXIgbGVm
dExhYmVsID0gdGhpcy5mb3JtYXRWYWx1ZShyZXNvdXJjZS5sYXRlbmN5KTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdmFyIGxlZnRMYWJlbCA9IHJpZ2h0TGFiZWw7CisKKyAgICAgICAgaWYg
KGhhc0xhdGVuY3kgJiYgcmlnaHRMYWJlbCkgewogICAgICAgICAgICAgdmFyIHRvdGFsID0gdGhp
cy5mb3JtYXRWYWx1ZShyZXNvdXJjZS5kdXJhdGlvbik7CiAgICAgICAgICAgICB2YXIgdG9vbHRp
cCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJXMgbGF0ZW5jeSwgJXMgZG93bmxvYWQgKCVzIHRv
dGFsKSIsIGxlZnRMYWJlbCwgcmlnaHRMYWJlbCwgdG90YWwpOwotICAgICAgICB9IGVsc2UgaWYg
KGxlZnRMYWJlbCkKKyAgICAgICAgfSBlbHNlIGlmIChoYXNMYXRlbmN5KQogICAgICAgICAgICAg
dmFyIHRvb2x0aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGxhdGVuY3kiLCBsZWZ0TGFi
ZWwpOwogICAgICAgICBlbHNlIGlmIChyaWdodExhYmVsKQogICAgICAgICAgICAgdmFyIHRvb2x0
aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGRvd25sb2FkIiwgcmlnaHRMYWJlbCk7CkBA
IC05NDEsMTYgKzk0NiwzOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmFuc2ZlclNpemVDYWxj
dWxhdG9yID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2Fs
Y3VsYXRvci5wcm90b3R5cGUgPSB7CiAgICAgY29tcHV0ZUJhckdyYXBoTGFiZWxzOiBmdW5jdGlv
bihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5mb3JtYXRWYWx1
ZSh0aGlzLl92YWx1ZShyZXNvdXJjZSkpOwotICAgICAgICB2YXIgdG9vbHRpcCA9IGxhYmVsOwor
ICAgICAgICB2YXIgbmV0d29ya0J5dGVzID0gdGhpcy5fbmV0d29ya0J5dGVzKHJlc291cmNlKTsK
KyAgICAgICAgdmFyIHJlc291cmNlQnl0ZXMgPSB0aGlzLl92YWx1ZShyZXNvdXJjZSk7CisgICAg
ICAgIGlmIChuZXR3b3JrQnl0ZXMgJiYgbmV0d29ya0J5dGVzICE9PSByZXNvdXJjZUJ5dGVzKSB7
CisgICAgICAgICAgICAvLyBUcmFuc2ZlcnJlZCBzaXplIGlzIG5vdCB0aGUgc2FtZSBhcyByZXBv
cnRlZCByZXNvdXJjZSBsZW5ndGguCisgICAgICAgICAgICB2YXIgbmV0d29ya0J5dGVzU3RyaW5n
ID0gdGhpcy5mb3JtYXRWYWx1ZShuZXR3b3JrQnl0ZXMpOworICAgICAgICAgICAgdmFyIGxlZnQg
PSBuZXR3b3JrQnl0ZXNTdHJpbmc7CisgICAgICAgICAgICB2YXIgcmlnaHQgPSB0aGlzLmZvcm1h
dFZhbHVlKHJlc291cmNlQnl0ZXMpOworICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSByaWdodCA/
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJXMgKCVzIHRyYW5zZmVycmVkKSIsIHJpZ2h0LCBuZXR3
b3JrQnl0ZXNTdHJpbmcpIDogcmlnaHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2
YXIgbGVmdCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2VCeXRlcyk7CisgICAgICAgICAgICB2
YXIgcmlnaHQgPSBsZWZ0OworICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSBsZWZ0OworICAgICAg
ICB9CiAgICAgICAgIGlmIChyZXNvdXJjZS5jYWNoZWQpCiAgICAgICAgICAgICB0b29sdGlwID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyAoZnJvbSBjYWNoZSkiLCB0b29sdGlwKTsKLSAgICAg
ICAgcmV0dXJuIHtsZWZ0OiBsYWJlbCwgcmlnaHQ6IGxhYmVsLCB0b29sdGlwOiB0b29sdGlwfTsK
KyAgICAgICAgcmV0dXJuIHtsZWZ0OiBsZWZ0LCByaWdodDogcmlnaHQsIHRvb2x0aXA6IHRvb2x0
aXB9OworICAgIH0sCisKKyAgICBjb21wdXRlQmFyR3JhcGhQZXJjZW50YWdlczogZnVuY3Rpb24o
aXRlbSkKKyAgICB7CisgICAgICAgIGNvbnN0IHJlc291cmNlQnl0ZXNBc1BlcmNlbnQgPSAodGhp
cy5fdmFsdWUoaXRlbSkgLyB0aGlzLmJvdW5kYXJ5U3BhbikgKiAxMDA7CisgICAgICAgIGNvbnN0
IG5ldHdvcmtCeXRlc0FzUGVyY2VudCA9IHRoaXMuX25ldHdvcmtCeXRlcyhpdGVtKSA/ICh0aGlz
Ll9uZXR3b3JrQnl0ZXMoaXRlbSkgLyB0aGlzLmJvdW5kYXJ5U3BhbikgKiAxMDAgOiByZXNvdXJj
ZUJ5dGVzQXNQZXJjZW50OworICAgICAgICByZXR1cm4ge3N0YXJ0OiAwLCBtaWRkbGU6IG5ldHdv
cmtCeXRlc0FzUGVyY2VudCwgZW5kOiByZXNvdXJjZUJ5dGVzQXNQZXJjZW50fTsKICAgICB9LAog
CiAgICAgX3ZhbHVlOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBy
ZXNvdXJjZS5jb250ZW50TGVuZ3RoOworICAgICAgICByZXR1cm4gcmVzb3VyY2UucmVzb3VyY2VT
aXplOworICAgIH0sCisKKyAgICBfbmV0d29ya0J5dGVzOiBmdW5jdGlvbihyZXNvdXJjZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiByZXNvdXJjZS50cmFuc2ZlclNpemU7CiAgICAgfSwKIAogICAg
IGZvcm1hdFZhbHVlOiBmdW5jdGlvbih2YWx1ZSkKQEAgLTExNDEsNiArMTE2OSwxMSBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ1Np
emUgPSBmdW5jdGlvbihhLCBiKQogICAgIHJldHVybiAtMSAqIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5Db21wYXJlQnlTaXplKGEucmVzb3VyY2UsIGIucmVzb3VyY2UpOwogfQogCitXZWJJbnNwZWN0
b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ1RyYW5zZmVy
U2l6ZSA9IGZ1bmN0aW9uKGEsIGIpCit7CisgICAgcmV0dXJuIC0xICogV2ViSW5zcGVjdG9yLlJl
c291cmNlLkNvbXBhcmVCeVRyYW5zZmVyU2l6ZShhLnJlc291cmNlLCBiLnJlc291cmNlKTsKK30K
KwogV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZTsKIAogV2Vi
SW5zcGVjdG9yLlJlc291cmNlR3JhcGggPSBmdW5jdGlvbihyZXNvdXJjZSkKQEAgLTExODUsNiAr
MTIxOCw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZSA9IHsKIAogICAg
IHJlZnJlc2hMYWJlbFBvc2l0aW9uczogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgY29uc3Qg
cGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlczsKKyAgICAgICAgY29uc3QgaXNC
YXJPcGFxdWVBdExlZnQgPSBwYW5lbCAmJiBwYW5lbC5pc0Jhck9wYXF1ZUF0TGVmdDsKICAgICAg
ICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgibGVmdCIpOwog
ICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJyaWdo
dCIpOwogICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImJl
Zm9yZSIpOwpAQCAtMTE5OCw4ICsxMjMzLDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBo
LnByb3RvdHlwZSA9IHsKICAgICAgICAgY29uc3QgbGFiZWxQYWRkaW5nID0gMTA7CiAgICAgICAg
IGNvbnN0IGJhclJpZ2h0RWxlbWVudE9mZnNldFdpZHRoID0gdGhpcy5fYmFyUmlnaHRFbGVtZW50
Lm9mZnNldFdpZHRoOwogICAgICAgICBjb25zdCBiYXJMZWZ0RWxlbWVudE9mZnNldFdpZHRoID0g
dGhpcy5fYmFyTGVmdEVsZW1lbnQub2Zmc2V0V2lkdGg7Ci0gICAgICAgIGNvbnN0IHJpZ2h0QmFy
V2lkdGggPSAoYmFyUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggLSBsYWJlbFBhZGRpbmcpOwotICAg
ICAgICBjb25zdCBsZWZ0QmFyV2lkdGggPSAoKGJhckxlZnRFbGVtZW50T2Zmc2V0V2lkdGggLSBi
YXJSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCkgLSBsYWJlbFBhZGRpbmcpOworCisgICAgICAgIGlm
IChpc0Jhck9wYXF1ZUF0TGVmdCkgeworICAgICAgICAgICAgdmFyIGxlZnRCYXJXaWR0aCA9IGJh
ckxlZnRFbGVtZW50T2Zmc2V0V2lkdGggLSBsYWJlbFBhZGRpbmc7CisgICAgICAgICAgICB2YXIg
cmlnaHRCYXJXaWR0aCA9IChiYXJSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCAtIGJhckxlZnRFbGVt
ZW50T2Zmc2V0V2lkdGgpIC0gbGFiZWxQYWRkaW5nOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdmFyIGxlZnRCYXJXaWR0aCA9IChiYXJMZWZ0RWxlbWVudE9mZnNldFdpZHRoIC0gYmFy
UmlnaHRFbGVtZW50T2Zmc2V0V2lkdGgpIC0gbGFiZWxQYWRkaW5nOworICAgICAgICAgICAgdmFy
IHJpZ2h0QmFyV2lkdGggPSBiYXJSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCAtIGxhYmVsUGFkZGlu
ZzsKKyAgICAgICAgfQorCiAgICAgICAgIGNvbnN0IGxhYmVsTGVmdEVsZW1lbnRPZmZzZXRXaWR0
aCA9IHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQub2Zmc2V0V2lkdGg7CiAgICAgICAgIGNvbnN0IGxh
YmVsUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggPSB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5vZmZz
ZXRXaWR0aDsKIApAQCAtMTIwNyw4ICsxMjQ5LDIyIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdy
YXBoLnByb3RvdHlwZSA9IHsKICAgICAgICAgY29uc3QgbGFiZWxBZnRlciA9IChsYWJlbFJpZ2h0
RWxlbWVudE9mZnNldFdpZHRoID4gcmlnaHRCYXJXaWR0aCk7CiAgICAgICAgIGNvbnN0IGdyYXBo
RWxlbWVudE9mZnNldFdpZHRoID0gdGhpcy5fZ3JhcGhFbGVtZW50Lm9mZnNldFdpZHRoOwogCisg
ICAgICAgIGlmIChsYWJlbEJlZm9yZSAmJiAoZ3JhcGhFbGVtZW50T2Zmc2V0V2lkdGggKiAodGhp
cy5fcGVyY2VudGFnZXMuc3RhcnQgLyAxMDApKSA8IChsYWJlbExlZnRFbGVtZW50T2Zmc2V0V2lk
dGggKyAxMCkpCisgICAgICAgICAgICB2YXIgbGVmdEhpZGRlbiA9IHRydWU7CisKKyAgICAgICAg
aWYgKGxhYmVsQWZ0ZXIgJiYgKGdyYXBoRWxlbWVudE9mZnNldFdpZHRoICogKCgxMDAgLSB0aGlz
Ll9wZXJjZW50YWdlcy5lbmQpIC8gMTAwKSkgPCAobGFiZWxSaWdodEVsZW1lbnRPZmZzZXRXaWR0
aCArIDEwKSkKKyAgICAgICAgICAgIHZhciByaWdodEhpZGRlbiA9IHRydWU7CisKKyAgICAgICAg
aWYgKGJhckxlZnRFbGVtZW50T2Zmc2V0V2lkdGggPT0gYmFyUmlnaHRFbGVtZW50T2Zmc2V0V2lk
dGgpIHsKKyAgICAgICAgICAgIC8vIFRoZSBsZWZ0L3JpZ2h0IGxhYmVsIGRhdGEgYXJlIHRoZSBz
YW1lLCBzbyBhIGJlZm9yZS9hZnRlciBsYWJlbCBjYW4gYmUgcmVwbGFjZWQgYnkgYW4gb24tYmFy
IGxhYmVsLgorICAgICAgICAgICAgaWYgKGxhYmVsQmVmb3JlICYmICFsYWJlbEFmdGVyKQorICAg
ICAgICAgICAgICAgIGxlZnRIaWRkZW4gPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAobGFi
ZWxBZnRlciAmJiAhbGFiZWxCZWZvcmUpCisgICAgICAgICAgICAgICAgcmlnaHRIaWRkZW4gPSB0
cnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKGxhYmVsQmVmb3JlKSB7Ci0gICAgICAgICAg
ICBpZiAoKGdyYXBoRWxlbWVudE9mZnNldFdpZHRoICogKHRoaXMuX3BlcmNlbnRhZ2VzLnN0YXJ0
IC8gMTAwKSkgPCAobGFiZWxMZWZ0RWxlbWVudE9mZnNldFdpZHRoICsgMTApKQorICAgICAgICAg
ICAgaWYgKGxlZnRIaWRkZW4pCiAgICAgICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVs
ZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHRoaXMuX3BlcmNlbnRhZ2Vz
LnN0YXJ0KSArICIlIik7CiAgICAgICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LmFkZFN0
eWxlQ2xhc3MoImJlZm9yZSIpOwpAQCAtMTIxOCw3ICsxMjc0LDcgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlR3JhcGgucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgaWYgKGxhYmVs
QWZ0ZXIpIHsKLSAgICAgICAgICAgIGlmICgoZ3JhcGhFbGVtZW50T2Zmc2V0V2lkdGggKiAoKDEw
MCAtIHRoaXMuX3BlcmNlbnRhZ2VzLmVuZCkgLyAxMDApKSA8IChsYWJlbFJpZ2h0RWxlbWVudE9m
ZnNldFdpZHRoICsgMTApKQorICAgICAgICAgICAgaWYgKHJpZ2h0SGlkZGVuKQogICAgICAgICAg
ICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwog
ICAgICAgICAgICAgdGhpcy5fbGFiZWxSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxl
ZnQiLCB0aGlzLl9wZXJjZW50YWdlcy5lbmQgKyAiJSIpOwogICAgICAgICAgICAgdGhpcy5fbGFi
ZWxSaWdodEVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYWZ0ZXIiKTsKQEAgLTEyMzAsNiArMTI4Niw4
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZSA9IHsKIAogICAgIHJlZnJl
c2g6IGZ1bmN0aW9uKGNhbGN1bGF0b3IpCiAgICAgeworICAgICAgICBjb25zdCBwYW5lbCA9IFdl
Ykluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzOworICAgICAgICBjb25zdCBpc0Jhck9wYXF1ZUF0
TGVmdCA9IHBhbmVsICYmIHBhbmVsLmlzQmFyT3BhcXVlQXRMZWZ0OwogICAgICAgICB2YXIgcGVy
Y2VudGFnZXMgPSBjYWxjdWxhdG9yLmNvbXB1dGVCYXJHcmFwaFBlcmNlbnRhZ2VzKHRoaXMucmVz
b3VyY2UpOwogICAgICAgICB2YXIgbGFiZWxzID0gY2FsY3VsYXRvci5jb21wdXRlQmFyR3JhcGhM
YWJlbHModGhpcy5yZXNvdXJjZSk7CiAKQEAgLTEyNDMsMTEgKzEzMDEsMzIgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlR3JhcGgucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdGhp
cy5fYmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJjZW50YWdlcy5z
dGFydCArICIlIik7Ci0gICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0eWxlLnNldFByb3Bl
cnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsgIiUiKTsKLQotICAgICAgICB0
aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJjZW50YWdl
cy5taWRkbGUgKyAiJSIpOwogICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0
UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHBlcmNlbnRhZ2VzLmVuZCkgKyAiJSIpOwogCisgICAg
ICAgIGlmICghaXNCYXJPcGFxdWVBdExlZnQpIHsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRF
bGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQp
ICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9w
ZXJ0eSgibGVmdCIsIHBlcmNlbnRhZ2VzLm1pZGRsZSArICIlIik7CisKKyAgICAgICAgICAgIGlm
ICh0aGlzLl9pc0Jhck9wYXF1ZUF0TGVmdCAhPSBpc0Jhck9wYXF1ZUF0TGVmdCkgeworICAgICAg
ICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXRpbmciKTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygi
d2FpdGluZy1yaWdodCIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQu
YWRkU3R5bGVDbGFzcygid2FpdGluZyIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmln
aHRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoIndhaXRpbmctcmlnaHQiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0
eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5taWRkbGUpICsgIiUi
KTsKKyAgICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgi
bGVmdCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKKworICAgICAgICAgICAgaWYgKHRoaXMu
X2lzQmFyT3BhcXVlQXRMZWZ0ICE9IGlzQmFyT3BhcXVlQXRMZWZ0KSB7CisgICAgICAgICAgICAg
ICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygid2FpdGluZyIpOworICAg
ICAgICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ3YWl0aW5n
LXJpZ2h0Iik7CisgICAgICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJ3YWl0aW5nIik7CisgICAgICAgICAgICAgICAgdGhpcy5fbGFiZWxSaWdodEVs
ZW1lbnQuYWRkU3R5bGVDbGFzcygid2FpdGluZy1yaWdodCIpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgdGhpcy5faXNCYXJPcGFxdWVBdExlZnQgPSBpc0Jhck9wYXF1ZUF0
TGVmdDsKKwogICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LnRleHRDb250ZW50ID0gbGFi
ZWxzLmxlZnQ7CiAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnRleHRDb250ZW50ID0g
bGFiZWxzLnJpZ2h0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3Nz
CmluZGV4IGUzNmU5NzQuLjQ2MzA4OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuY3NzCkBAIC0yNzYxLDYgKzI3NjEsMTAgQEAgYnV0dG9uLmVuYWJsZS10b2dnbGUt
c3RhdHVzLWJhci1pdGVtLnRvZ2dsZWQtb24gLmdseXBoIHsKICAgICBtYXJnaW4tcmlnaHQ6IDVw
eDsKIH0KIAorLnJlc291cmNlcy1ncmFwaC1sYWJlbC53YWl0aW5nLXJpZ2h0IHsKKyAgICBtYXJn
aW4tbGVmdDogNXB4OworfQorCiAucmVzb3VyY2VzLWdyYXBoLWxhYmVsLmJlZm9yZSB7CiAgICAg
Y29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICB0ZXh0LXNoYWRvdzogbm9uZTsKQEAgLTI4
MjksNyArMjgzMyw3IEBAIGJ1dHRvbi5lbmFibGUtdG9nZ2xlLXN0YXR1cy1iYXItaXRlbS50b2dn
bGVkLW9uIC5nbHlwaCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiB9CiAKLS5yZXNvdXJjZXMtZ3Jh
cGgtYmFyLndhaXRpbmcgeworLnJlc291cmNlcy1ncmFwaC1iYXIud2FpdGluZywgLnJlc291cmNl
cy1ncmFwaC1iYXIud2FpdGluZy1yaWdodCB7CiAgICAgb3BhY2l0eTogMC4zNTsKIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZmQ2ZDI3MC4uMjU0YTA3
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMDk2LDcg
KzEwOTYsNyBAQCBXZWJJbnNwZWN0b3IudXBkYXRlUmVzb3VyY2UgPSBmdW5jdGlvbihpZGVudGlm
aWVyLCBwYXlsb2FkKQogICAgIH0KIAogICAgIGlmIChwYXlsb2FkLmRpZExlbmd0aENoYW5nZSkg
ewotICAgICAgICByZXNvdXJjZS5jb250ZW50TGVuZ3RoID0gcGF5bG9hZC5jb250ZW50TGVuZ3Ro
OworICAgICAgICByZXNvdXJjZS5yZXNvdXJjZVNpemUgPSBwYXlsb2FkLnJlc291cmNlU2l6ZTsK
ICAgICB9CiAKICAgICBpZiAocGF5bG9hZC5kaWRDb21wbGV0aW9uQ2hhbmdlKSB7Cg==
</data>
<flag name="review"
          id="32896"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49913</attachid>
            <date>2010-03-03 09:00:56 -0800</date>
            <delta_ts>2010-03-03 09:32:45 -0800</delta_ts>
            <desc>[PATCH] Rendering option extracted from the TreeElement</desc>
            <filename>transfersize.patch</filename>
            <type>text/plain</type>
            <size>18904</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjVjMDA2OC4uZDJkOTM0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMy0wMyAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlc291cmNlcyBwYW5lbCBvbmx5
IHNob3dzIHVuY29tcHJlc3NlZCByZXNvdXJjZSBzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU0MDMKKworICAgICAgICAqIEVuZ2xpc2gubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVNj
cmlwdE9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVs
aW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVs
LnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
UnVsZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5HemlwUnVsZS5wcm90
b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuR3ppcFJ1bGUu
cHJvdG90eXBlLl9zaG91bGRDb21wcmVzcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbWFnZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlLnByb3RvdHlwZS5nZXQgcmVzb3VyY2VTaXplKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuc2V0IHJlc291cmNlU2l6ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLmdldCB0cmFuc2ZlclNpemUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLkNvbXBhcmVCeVNpemUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlLkNvbXBhcmVCeVRyYW5zZmVyU2l6ZSk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUucG9wdWxhdGVTaWRlYmFyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRpbWVDYWxjdWxhdG9yLnByb3RvdHlwZS5jb21wdXRlQmFyR3JhcGhM
YWJlbHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3Vs
YXRvci5wcm90b3R5cGUuY29tcHV0ZUJhckdyYXBoTGFiZWxzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyYW5zZmVyU2l6ZUNhbGN1bGF0b3IucHJvdG90eXBlLmNvbXB1dGVCYXJH
cmFwaFBlcmNlbnRhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVy
U2l6ZUNhbGN1bGF0b3IucHJvdG90eXBlLl92YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmFuc2ZlclNpemVDYWxjdWxhdG9yLnByb3RvdHlwZS5fbmV0d29ya0J5dGVzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21wYXJl
QnlEZXNjZW5kaW5nVHJhbnNmZXJTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZUdyYXBoLnByb3RvdHlwZS5yZWZyZXNoTGFiZWxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlR3JhcGgucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci51cGRhdGVSZXNvdXJjZSk6
CisKIDIwMTAtMDMtMDIgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKaW5kZXggMjA3MmU5NzRjNzg4YTdlMGIzOThlY2FlNmQ5OGMzNzA3YTUz
ZTQ2OS4uNTllNjYyN2FkOGUwNThkZDg0Njk0MDdkNTI1YjU1NmU2MTI0MWRmZiAxMDA2NDQKR0lU
IGJpbmFyeSBwYXRjaApkZWx0YSAxMTMKemNtZXk7JkQ3UyV2X1o7fktaSyEoQSgwYEVwX24wIUEo
ZiRNQDx0REphV3BYbzElX2FUT29wbi1BSzcmJD97TzJACnhFYWlGMlg3VmRSbUJ8O2wqO3E5Z1Iy
aG1WYCZ2bShGNShqNUVlMHdFaTVNfWNLdCRPejhJJX5UODJ8ej45SFJnTAoKZGVsdGEgMTQKVmNt
WnFjV0JTc352X1o7cV5BZ1duSFVLWWoyNE1nSQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlLmNwcAppbmRleCA2ZjA4ZDU4Li5iNmI2MDU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2UuY3BwCkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZTo6dXBkYXRlU2NyaXB0T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAg
ICB9CiAKICAgICBpZiAobV9jaGFuZ2VzLmhhc0NoYW5nZShMZW5ndGhDaGFuZ2UpKSB7Ci0gICAg
ICAgIGpzb25PYmplY3Quc2V0KCJjb250ZW50TGVuZ3RoIiwgbV9sZW5ndGgpOworICAgICAgICBq
c29uT2JqZWN0LnNldCgicmVzb3VyY2VTaXplIiwgbV9sZW5ndGgpOwogICAgICAgICBqc29uT2Jq
ZWN0LnNldCgiZGlkTGVuZ3RoQ2hhbmdlIiwgdHJ1ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fic3RyYWN0VGltZWxpbmVQYW5lbC5qcwppbmRleCA2
YzVkNzE1Li5jZmVjOWRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMKQEAgLTMwOCw4ICszMDgsMTAgQEAgV2ViSW5zcGVj
dG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzdGFs
ZUl0ZW1zTGVuZ3RoID0gdGhpcy5fc3RhbGVJdGVtcy5sZW5ndGg7CiAgICAgICAgIH0KIAorCisg
ICAgICAgIGNvbnN0IGlzQmFyT3BhcXVlQXRMZWZ0ID0gdGhpcy5zaWRlYmFyVHJlZS5zZWxlY3Rl
ZFRyZWVFbGVtZW50ICYmIHRoaXMuc2lkZWJhclRyZWUuc2VsZWN0ZWRUcmVlRWxlbWVudC5pc0Jh
ck9wYXF1ZUF0TGVmdDsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFsZUl0ZW1zTGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9zdGFsZUl0ZW1zW2ldLl9pdGVtc1RyZWVFbGVt
ZW50Ll9pdGVtR3JhcGgucmVmcmVzaCh0aGlzLmNhbGN1bGF0b3IpOworICAgICAgICAgICAgdGhp
cy5fc3RhbGVJdGVtc1tpXS5faXRlbXNUcmVlRWxlbWVudC5faXRlbUdyYXBoLnJlZnJlc2godGhp
cy5jYWxjdWxhdG9yLCBpc0Jhck9wYXF1ZUF0TGVmdCk7CiAKICAgICAgICAgdGhpcy5fc3RhbGVJ
dGVtcyA9IFtdOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRSdWxlcy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCmlu
ZGV4IDIxMGI4YTkuLmUyZWQ5NGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dFJ1bGVzLmpzCkBAIC0xMDcsNyArMTA3LDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuR3pp
cFJ1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9
IHJlc291cmNlcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgIHZh
ciByZXNvdXJjZSA9IHJlc291cmNlc1tpXTsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2hv
dWxkQ29tcHJlc3MocmVzb3VyY2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzaXplID0g
cmVzb3VyY2UuY29udGVudExlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNpemUgPSBy
ZXNvdXJjZS5yZXNvdXJjZVNpemU7CiAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVNpemUg
Kz0gc2l6ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzQ29tcHJlc3NlZChyZXNv
dXJjZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRTaXplICs9IHNpemU7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuR3ppcFJ1bGUucHJv
dG90eXBlID0gewogCiAgICAgX3Nob3VsZENvbXByZXNzOiBmdW5jdGlvbihyZXNvdXJjZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5pc1RleHRUeXBl
KHJlc291cmNlLnR5cGUpICYmIHJlc291cmNlLmRvbWFpbiAmJiByZXNvdXJjZS5jb250ZW50TGVu
Z3RoICE9PSB1bmRlZmluZWQgJiYgcmVzb3VyY2UuY29udGVudExlbmd0aCA+IDE1MDsKKyAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLmlzVGV4dFR5cGUocmVzb3VyY2Uu
dHlwZSkgJiYgcmVzb3VyY2UuZG9tYWluICYmIHJlc291cmNlLnJlc291cmNlU2l6ZSAhPT0gdW5k
ZWZpbmVkICYmIHJlc291cmNlLnJlc291cmNlU2l6ZSA+IDE1MDsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzCmluZGV4IDk2ZTFhNmUuLjEwMjBjYjcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcwpAQCAtNTYsNyArNTYs
NyBAQCBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiAKICAgICB2
YXIgaW1hZ2VQcm9wZXJ0aWVzID0gWwogICAgICAgICB7IG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRGltZW5zaW9ucyIpLCB2YWx1ZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCDDlyAl
ZCIsIHRoaXMuaW1hZ2VQcmV2aWV3RWxlbWVudC5uYXR1cmFsV2lkdGgsIHRoaXMuaW1hZ2VQcmV2
aWV3RWxlbWVudC5oZWlnaHQpIH0sCi0gICAgICAgIHsgbmFtZTogV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJGaWxlIHNpemUiKSwgdmFsdWU6IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMucmVzb3Vy
Y2UuY29udGVudExlbmd0aCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nLmJpbmQoV2ViSW5zcGVjdG9y
KSkgfSwKKyAgICAgICAgeyBuYW1lOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbGUgc2l6ZSIp
LCB2YWx1ZTogTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5yZXNvdXJjZS5yZXNvdXJjZVNpemUs
IFdlYkluc3BlY3Rvci5VSVN0cmluZy5iaW5kKFdlYkluc3BlY3RvcikpIH0sCiAgICAgICAgIHsg
bmFtZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJNSU1FIHR5cGUiKSwgdmFsdWU6IHRoaXMucmVz
b3VyY2UubWltZVR5cGUgfQogICAgIF07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZS5qcwppbmRleCA5ODYwMzAwLi40ZWU1ZjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlLmpzCkBAIC0yNzIsMjIgKzI3MiwyOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2UucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VSZWNlaXZlZFRp
bWUgLSB0aGlzLl9zdGFydFRpbWU7CiAgICAgfSwKIAotICAgIGdldCBjb250ZW50TGVuZ3RoKCkK
KyAgICBnZXQgcmVzb3VyY2VTaXplKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jb250
ZW50TGVuZ3RoIHx8IDA7CisgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVNpemUgfHwgMDsK
ICAgICB9LAogCi0gICAgc2V0IGNvbnRlbnRMZW5ndGgoeCkKKyAgICBzZXQgcmVzb3VyY2VTaXpl
KHgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fY29udGVudExlbmd0aCA9PT0geCkKKyAgICAg
ICAgaWYgKHRoaXMuX3Jlc291cmNlU2l6ZSA9PT0geCkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB0aGlzLl9jb250ZW50TGVuZ3RoID0geDsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2VT
aXplID0geDsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMpCiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5yZWZyZXNoUmVzb3VyY2Uo
dGhpcyk7CiAgICAgfSwKIAorICAgIGdldCB0cmFuc2ZlclNpemUoKQorICAgIHsKKyAgICAgICAg
Ly8gRklYTUU6IHRoaXMgaXMgd3JvbmcgZm9yIGNodW5rZWQtZW5jb2RpbmcgcmVzb3VyY2VzLgor
ICAgICAgICByZXR1cm4gdGhpcy5jYWNoZWQgPyAwIDogTnVtYmVyKHRoaXMucmVzcG9uc2VIZWFk
ZXJzWyJDb250ZW50LUxlbmd0aCJdIHx8IHRoaXMucmVzb3VyY2VTaXplIHx8IDApOworICAgIH0s
CisKICAgICBnZXQgZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkKICAgICB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9leHBlY3RlZENvbnRlbnRMZW5ndGggfHwgMDsKQEAgLTYwMyw5ICs2MDksMTUgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlLkNvbXBhcmVCeUxhdGVuY3kgPSBmdW5jdGlvbihhLCBiKQog
CiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuQ29tcGFyZUJ5U2l6ZSA9IGZ1bmN0aW9uKGEsIGIpCiB7
Ci0gICAgcmV0dXJuIGEuY29udGVudExlbmd0aCAtIGIuY29udGVudExlbmd0aDsKKyAgICByZXR1
cm4gYS5yZXNvdXJjZVNpemUgLSBiLnJlc291cmNlU2l6ZTsKIH0KIAorV2ViSW5zcGVjdG9yLlJl
c291cmNlLkNvbXBhcmVCeVRyYW5zZmVyU2l6ZSA9IGZ1bmN0aW9uKGEsIGIpCit7CisgICAgcmV0
dXJuIGEudHJhbnNmZXJTaXplIC0gYi50cmFuc2ZlclNpemU7Cit9CisKKwogV2ViSW5zcGVjdG9y
LlJlc291cmNlLlN0YXR1c1RleHRGb3JDb2RlID0gZnVuY3Rpb24oY29kZSkKIHsKICAgICByZXR1
cm4gY29kZSA/IGNvZGUgKyAiICIgKyBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuU3RhdHVzVGV4dFtj
b2RlXSA6ICIiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVs
LmpzCmluZGV4IDc3NGVkNjQuLmYyZDFiZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTk4LDYgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHsgbmFtZTogV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTb3J0IGJ5IExhdGVuY3kiKSwgc29ydGluZ0Z1bmN0aW9uOiBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ0xhdGVu
Y3ksIGNhbGN1bGF0b3I6IHRyYW5zZmVyRHVyYXRpb25DYWxjdWxhdG9yIH0sCiAgICAgICAgIF07
CiAKKyAgICAgICAgdGltZUdyYXBoSXRlbS5pc0Jhck9wYXF1ZUF0TGVmdCA9IGZhbHNlOwogICAg
ICAgICB0aW1lR3JhcGhJdGVtLnNlbGVjdGVkU29ydGluZ09wdGlvbkluZGV4ID0gMTsKIAogICAg
ICAgICB2YXIgc2l6ZUdyYXBoSXRlbSA9IG5ldyBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVt
ZW50KCJyZXNvdXJjZXMtc2l6ZS1ncmFwaC1zaWRlYmFyLWl0ZW0iLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNpemUiKSk7CkBAIC0xMDUsOSArMTA2LDExIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIHRyYW5zZmVyU2l6ZUNhbGN1bGF0
b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvcigpOwog
ICAgICAgICBzaXplR3JhcGhJdGVtLnNvcnRpbmdPcHRpb25zID0gWworICAgICAgICAgICAgeyBu
YW1lOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNvcnQgYnkgVHJhbnNmZXIgU2l6ZSIpLCBzb3J0
aW5nRnVuY3Rpb246IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJUcmVlRWxlbWVudC5Db21w
YXJlQnlEZXNjZW5kaW5nVHJhbnNmZXJTaXplLCBjYWxjdWxhdG9yOiB0cmFuc2ZlclNpemVDYWxj
dWxhdG9yIH0sCiAgICAgICAgICAgICB7IG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU29y
dCBieSBTaXplIiksIHNvcnRpbmdGdW5jdGlvbjogV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJh
clRyZWVFbGVtZW50LkNvbXBhcmVCeURlc2NlbmRpbmdTaXplLCBjYWxjdWxhdG9yOiB0cmFuc2Zl
clNpemVDYWxjdWxhdG9yIH0sCiAgICAgICAgIF07CiAKKyAgICAgICAgc2l6ZUdyYXBoSXRlbS5p
c0Jhck9wYXF1ZUF0TGVmdCA9IHRydWU7CiAgICAgICAgIHNpemVHcmFwaEl0ZW0uc2VsZWN0ZWRT
b3J0aW5nT3B0aW9uSW5kZXggPSAwOwogCiAgICAgICAgIHRoaXMuZ3JhcGhzVHJlZUVsZW1lbnQg
PSBuZXcgV2ViSW5zcGVjdG9yLlNpZGViYXJTZWN0aW9uVHJlZUVsZW1lbnQoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJHUkFQSFMiKSwge30sIHRydWUpOwpAQCAtODI2LDE4ICs4MjksMjAgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlVGltZUNhbGN1bGF0b3IucHJvdG90eXBlID0gewogCiAgICAgY29t
cHV0ZUJhckdyYXBoTGFiZWxzOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHZh
ciBsZWZ0TGFiZWwgPSAiIjsKLSAgICAgICAgaWYgKHJlc291cmNlLmxhdGVuY3kgPiAwKQotICAg
ICAgICAgICAgbGVmdExhYmVsID0gdGhpcy5mb3JtYXRWYWx1ZShyZXNvdXJjZS5sYXRlbmN5KTsK
LQogICAgICAgICB2YXIgcmlnaHRMYWJlbCA9ICIiOwogICAgICAgICBpZiAocmVzb3VyY2UucmVz
cG9uc2VSZWNlaXZlZFRpbWUgIT09IC0xICYmIHJlc291cmNlLmVuZFRpbWUgIT09IC0xKQogICAg
ICAgICAgICAgcmlnaHRMYWJlbCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2UuZW5kVGltZSAt
IHJlc291cmNlLnJlc3BvbnNlUmVjZWl2ZWRUaW1lKTsKIAotICAgICAgICBpZiAobGVmdExhYmVs
ICYmIHJpZ2h0TGFiZWwpIHsKKyAgICAgICAgdmFyIGhhc0xhdGVuY3kgPSByZXNvdXJjZS5sYXRl
bmN5ID4gMDsKKyAgICAgICAgaWYgKGhhc0xhdGVuY3kpCisgICAgICAgICAgICB2YXIgbGVmdExh
YmVsID0gdGhpcy5mb3JtYXRWYWx1ZShyZXNvdXJjZS5sYXRlbmN5KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdmFyIGxlZnRMYWJlbCA9IHJpZ2h0TGFiZWw7CisKKyAgICAgICAgaWYgKGhh
c0xhdGVuY3kgJiYgcmlnaHRMYWJlbCkgewogICAgICAgICAgICAgdmFyIHRvdGFsID0gdGhpcy5m
b3JtYXRWYWx1ZShyZXNvdXJjZS5kdXJhdGlvbik7CiAgICAgICAgICAgICB2YXIgdG9vbHRpcCA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJXMgbGF0ZW5jeSwgJXMgZG93bmxvYWQgKCVzIHRvdGFs
KSIsIGxlZnRMYWJlbCwgcmlnaHRMYWJlbCwgdG90YWwpOwotICAgICAgICB9IGVsc2UgaWYgKGxl
ZnRMYWJlbCkKKyAgICAgICAgfSBlbHNlIGlmIChoYXNMYXRlbmN5KQogICAgICAgICAgICAgdmFy
IHRvb2x0aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGxhdGVuY3kiLCBsZWZ0TGFiZWwp
OwogICAgICAgICBlbHNlIGlmIChyaWdodExhYmVsKQogICAgICAgICAgICAgdmFyIHRvb2x0aXAg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGRvd25sb2FkIiwgcmlnaHRMYWJlbCk7CkBAIC05
NDEsMTYgKzk0NiwzOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmFuc2ZlclNpemVDYWxjdWxh
dG9yID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3Vs
YXRvci5wcm90b3R5cGUgPSB7CiAgICAgY29tcHV0ZUJhckdyYXBoTGFiZWxzOiBmdW5jdGlvbihy
ZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5mb3JtYXRWYWx1ZSh0
aGlzLl92YWx1ZShyZXNvdXJjZSkpOwotICAgICAgICB2YXIgdG9vbHRpcCA9IGxhYmVsOworICAg
ICAgICB2YXIgbmV0d29ya0J5dGVzID0gdGhpcy5fbmV0d29ya0J5dGVzKHJlc291cmNlKTsKKyAg
ICAgICAgdmFyIHJlc291cmNlQnl0ZXMgPSB0aGlzLl92YWx1ZShyZXNvdXJjZSk7CisgICAgICAg
IGlmIChuZXR3b3JrQnl0ZXMgJiYgbmV0d29ya0J5dGVzICE9PSByZXNvdXJjZUJ5dGVzKSB7Cisg
ICAgICAgICAgICAvLyBUcmFuc2ZlcnJlZCBzaXplIGlzIG5vdCB0aGUgc2FtZSBhcyByZXBvcnRl
ZCByZXNvdXJjZSBsZW5ndGguCisgICAgICAgICAgICB2YXIgbmV0d29ya0J5dGVzU3RyaW5nID0g
dGhpcy5mb3JtYXRWYWx1ZShuZXR3b3JrQnl0ZXMpOworICAgICAgICAgICAgdmFyIGxlZnQgPSBu
ZXR3b3JrQnl0ZXNTdHJpbmc7CisgICAgICAgICAgICB2YXIgcmlnaHQgPSB0aGlzLmZvcm1hdFZh
bHVlKHJlc291cmNlQnl0ZXMpOworICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSByaWdodCA/IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiJXMgKCVzIHRyYW5zZmVycmVkKSIsIHJpZ2h0LCBuZXR3b3Jr
Qnl0ZXNTdHJpbmcpIDogcmlnaHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIg
bGVmdCA9IHRoaXMuZm9ybWF0VmFsdWUocmVzb3VyY2VCeXRlcyk7CisgICAgICAgICAgICB2YXIg
cmlnaHQgPSBsZWZ0OworICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSBsZWZ0OworICAgICAgICB9
CiAgICAgICAgIGlmIChyZXNvdXJjZS5jYWNoZWQpCiAgICAgICAgICAgICB0b29sdGlwID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlcyAoZnJvbSBjYWNoZSkiLCB0b29sdGlwKTsKLSAgICAgICAg
cmV0dXJuIHtsZWZ0OiBsYWJlbCwgcmlnaHQ6IGxhYmVsLCB0b29sdGlwOiB0b29sdGlwfTsKKyAg
ICAgICAgcmV0dXJuIHtsZWZ0OiBsZWZ0LCByaWdodDogcmlnaHQsIHRvb2x0aXA6IHRvb2x0aXB9
OworICAgIH0sCisKKyAgICBjb21wdXRlQmFyR3JhcGhQZXJjZW50YWdlczogZnVuY3Rpb24oaXRl
bSkKKyAgICB7CisgICAgICAgIGNvbnN0IHJlc291cmNlQnl0ZXNBc1BlcmNlbnQgPSAodGhpcy5f
dmFsdWUoaXRlbSkgLyB0aGlzLmJvdW5kYXJ5U3BhbikgKiAxMDA7CisgICAgICAgIGNvbnN0IG5l
dHdvcmtCeXRlc0FzUGVyY2VudCA9IHRoaXMuX25ldHdvcmtCeXRlcyhpdGVtKSA/ICh0aGlzLl9u
ZXR3b3JrQnl0ZXMoaXRlbSkgLyB0aGlzLmJvdW5kYXJ5U3BhbikgKiAxMDAgOiByZXNvdXJjZUJ5
dGVzQXNQZXJjZW50OworICAgICAgICByZXR1cm4ge3N0YXJ0OiAwLCBtaWRkbGU6IG5ldHdvcmtC
eXRlc0FzUGVyY2VudCwgZW5kOiByZXNvdXJjZUJ5dGVzQXNQZXJjZW50fTsKICAgICB9LAogCiAg
ICAgX3ZhbHVlOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHJldHVybiByZXNv
dXJjZS5jb250ZW50TGVuZ3RoOworICAgICAgICByZXR1cm4gcmVzb3VyY2UucmVzb3VyY2VTaXpl
OworICAgIH0sCisKKyAgICBfbmV0d29ya0J5dGVzOiBmdW5jdGlvbihyZXNvdXJjZSkKKyAgICB7
CisgICAgICAgIHJldHVybiByZXNvdXJjZS50cmFuc2ZlclNpemU7CiAgICAgfSwKIAogICAgIGZv
cm1hdFZhbHVlOiBmdW5jdGlvbih2YWx1ZSkKQEAgLTExNDEsNiArMTE2OSwxMSBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ1NpemUg
PSBmdW5jdGlvbihhLCBiKQogICAgIHJldHVybiAtMSAqIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5D
b21wYXJlQnlTaXplKGEucmVzb3VyY2UsIGIucmVzb3VyY2UpOwogfQogCitXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQuQ29tcGFyZUJ5RGVzY2VuZGluZ1RyYW5zZmVyU2l6
ZSA9IGZ1bmN0aW9uKGEsIGIpCit7CisgICAgcmV0dXJuIC0xICogV2ViSW5zcGVjdG9yLlJlc291
cmNlLkNvbXBhcmVCeVRyYW5zZmVyU2l6ZShhLnJlc291cmNlLCBiLnJlc291cmNlKTsKK30KKwog
V2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZTsKIAogV2ViSW5z
cGVjdG9yLlJlc291cmNlR3JhcGggPSBmdW5jdGlvbihyZXNvdXJjZSkKQEAgLTExOTgsOCArMTIz
MSwxNSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGNvbnN0IGxhYmVsUGFkZGluZyA9IDEwOwogICAgICAgICBjb25zdCBiYXJSaWdodEVsZW1lbnRP
ZmZzZXRXaWR0aCA9IHRoaXMuX2JhclJpZ2h0RWxlbWVudC5vZmZzZXRXaWR0aDsKICAgICAgICAg
Y29uc3QgYmFyTGVmdEVsZW1lbnRPZmZzZXRXaWR0aCA9IHRoaXMuX2JhckxlZnRFbGVtZW50Lm9m
ZnNldFdpZHRoOwotICAgICAgICBjb25zdCByaWdodEJhcldpZHRoID0gKGJhclJpZ2h0RWxlbWVu
dE9mZnNldFdpZHRoIC0gbGFiZWxQYWRkaW5nKTsKLSAgICAgICAgY29uc3QgbGVmdEJhcldpZHRo
ID0gKChiYXJMZWZ0RWxlbWVudE9mZnNldFdpZHRoIC0gYmFyUmlnaHRFbGVtZW50T2Zmc2V0V2lk
dGgpIC0gbGFiZWxQYWRkaW5nKTsKKworICAgICAgICBpZiAodGhpcy5faXNCYXJPcGFxdWVBdExl
ZnQpIHsKKyAgICAgICAgICAgIHZhciBsZWZ0QmFyV2lkdGggPSBiYXJMZWZ0RWxlbWVudE9mZnNl
dFdpZHRoIC0gbGFiZWxQYWRkaW5nOworICAgICAgICAgICAgdmFyIHJpZ2h0QmFyV2lkdGggPSAo
YmFyUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggLSBiYXJMZWZ0RWxlbWVudE9mZnNldFdpZHRoKSAt
IGxhYmVsUGFkZGluZzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBsZWZ0QmFy
V2lkdGggPSAoYmFyTGVmdEVsZW1lbnRPZmZzZXRXaWR0aCAtIGJhclJpZ2h0RWxlbWVudE9mZnNl
dFdpZHRoKSAtIGxhYmVsUGFkZGluZzsKKyAgICAgICAgICAgIHZhciByaWdodEJhcldpZHRoID0g
YmFyUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggLSBsYWJlbFBhZGRpbmc7CisgICAgICAgIH0KKwog
ICAgICAgICBjb25zdCBsYWJlbExlZnRFbGVtZW50T2Zmc2V0V2lkdGggPSB0aGlzLl9sYWJlbExl
ZnRFbGVtZW50Lm9mZnNldFdpZHRoOwogICAgICAgICBjb25zdCBsYWJlbFJpZ2h0RWxlbWVudE9m
ZnNldFdpZHRoID0gdGhpcy5fbGFiZWxSaWdodEVsZW1lbnQub2Zmc2V0V2lkdGg7CiAKQEAgLTEy
MDcsOCArMTI0NywyMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGNvbnN0IGxhYmVsQWZ0ZXIgPSAobGFiZWxSaWdodEVsZW1lbnRPZmZzZXRXaWR0
aCA+IHJpZ2h0QmFyV2lkdGgpOwogICAgICAgICBjb25zdCBncmFwaEVsZW1lbnRPZmZzZXRXaWR0
aCA9IHRoaXMuX2dyYXBoRWxlbWVudC5vZmZzZXRXaWR0aDsKIAorICAgICAgICBpZiAobGFiZWxC
ZWZvcmUgJiYgKGdyYXBoRWxlbWVudE9mZnNldFdpZHRoICogKHRoaXMuX3BlcmNlbnRhZ2VzLnN0
YXJ0IC8gMTAwKSkgPCAobGFiZWxMZWZ0RWxlbWVudE9mZnNldFdpZHRoICsgMTApKQorICAgICAg
ICAgICAgdmFyIGxlZnRIaWRkZW4gPSB0cnVlOworCisgICAgICAgIGlmIChsYWJlbEFmdGVyICYm
IChncmFwaEVsZW1lbnRPZmZzZXRXaWR0aCAqICgoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuZW5k
KSAvIDEwMCkpIDwgKGxhYmVsUmlnaHRFbGVtZW50T2Zmc2V0V2lkdGggKyAxMCkpCisgICAgICAg
ICAgICB2YXIgcmlnaHRIaWRkZW4gPSB0cnVlOworCisgICAgICAgIGlmIChiYXJMZWZ0RWxlbWVu
dE9mZnNldFdpZHRoID09IGJhclJpZ2h0RWxlbWVudE9mZnNldFdpZHRoKSB7CisgICAgICAgICAg
ICAvLyBUaGUgbGVmdC9yaWdodCBsYWJlbCBkYXRhIGFyZSB0aGUgc2FtZSwgc28gYSBiZWZvcmUv
YWZ0ZXIgbGFiZWwgY2FuIGJlIHJlcGxhY2VkIGJ5IGFuIG9uLWJhciBsYWJlbC4KKyAgICAgICAg
ICAgIGlmIChsYWJlbEJlZm9yZSAmJiAhbGFiZWxBZnRlcikKKyAgICAgICAgICAgICAgICBsZWZ0
SGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxhYmVsQWZ0ZXIgJiYgIWxhYmVs
QmVmb3JlKQorICAgICAgICAgICAgICAgIHJpZ2h0SGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgfQor
CiAgICAgICAgIGlmIChsYWJlbEJlZm9yZSkgewotICAgICAgICAgICAgaWYgKChncmFwaEVsZW1l
bnRPZmZzZXRXaWR0aCAqICh0aGlzLl9wZXJjZW50YWdlcy5zdGFydCAvIDEwMCkpIDwgKGxhYmVs
TGVmdEVsZW1lbnRPZmZzZXRXaWR0aCArIDEwKSkKKyAgICAgICAgICAgIGlmIChsZWZ0SGlkZGVu
KQogICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuYWRkU3R5bGVDbGFzcygi
aGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LnN0eWxlLnNldFBy
b3BlcnR5KCJyaWdodCIsICgxMDAgLSB0aGlzLl9wZXJjZW50YWdlcy5zdGFydCkgKyAiJSIpOwog
ICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJiZWZvcmUi
KTsKQEAgLTEyMTgsNyArMTI3Miw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChsYWJlbEFmdGVyKSB7Ci0gICAgICAg
ICAgICBpZiAoKGdyYXBoRWxlbWVudE9mZnNldFdpZHRoICogKCgxMDAgLSB0aGlzLl9wZXJjZW50
YWdlcy5lbmQpIC8gMTAwKSkgPCAobGFiZWxSaWdodEVsZW1lbnRPZmZzZXRXaWR0aCArIDEwKSkK
KyAgICAgICAgICAgIGlmIChyaWdodEhpZGRlbikKICAgICAgICAgICAgICAgICB0aGlzLl9sYWJl
bFJpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMu
X2xhYmVsUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2Vu
dGFnZXMuZW5kICsgIiUiKTsKICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoImFmdGVyIik7CkBAIC0xMjI4LDcgKzEyODIsNyBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VHcmFwaC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgcmVm
cmVzaDogZnVuY3Rpb24oY2FsY3VsYXRvcikKKyAgICByZWZyZXNoOiBmdW5jdGlvbihjYWxjdWxh
dG9yLCBpc0Jhck9wYXF1ZUF0TGVmdCkKICAgICB7CiAgICAgICAgIHZhciBwZXJjZW50YWdlcyA9
IGNhbGN1bGF0b3IuY29tcHV0ZUJhckdyYXBoUGVyY2VudGFnZXModGhpcy5yZXNvdXJjZSk7CiAg
ICAgICAgIHZhciBsYWJlbHMgPSBjYWxjdWxhdG9yLmNvbXB1dGVCYXJHcmFwaExhYmVscyh0aGlz
LnJlc291cmNlKTsKQEAgLTEyNDMsMTEgKzEyOTcsMzIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
R3JhcGgucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fYmFyTGVmdEVs
ZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJjZW50YWdlcy5zdGFydCArICIlIik7
Ci0gICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIs
ICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsgIiUiKTsKLQotICAgICAgICB0aGlzLl9iYXJSaWdo
dEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJjZW50YWdlcy5taWRkbGUgKyAi
JSIpOwogICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJp
Z2h0IiwgKDEwMCAtIHBlcmNlbnRhZ2VzLmVuZCkgKyAiJSIpOwogCisgICAgICAgIGlmICghaXNC
YXJPcGFxdWVBdExlZnQpIHsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0eWxl
LnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsgIiUiKTsKKyAg
ICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIs
IHBlcmNlbnRhZ2VzLm1pZGRsZSArICIlIik7CisKKyAgICAgICAgICAgIGlmICh0aGlzLl9pc0Jh
ck9wYXF1ZUF0TGVmdCAhPSBpc0Jhck9wYXF1ZUF0TGVmdCkgeworICAgICAgICAgICAgICAgIHRo
aXMuX2JhckxlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXRpbmciKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygid2FpdGluZy1yaWdo
dCIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuYWRkU3R5bGVDbGFz
cygid2FpdGluZyIpOworICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnJl
bW92ZVN0eWxlQ2xhc3MoIndhaXRpbmctcmlnaHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0eWxlLnNldFByb3Bl
cnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5taWRkbGUpICsgIiUiKTsKKyAgICAgICAg
ICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBlcmNl
bnRhZ2VzLnN0YXJ0ICsgIiUiKTsKKworICAgICAgICAgICAgaWYgKHRoaXMuX2lzQmFyT3BhcXVl
QXRMZWZ0ICE9IGlzQmFyT3BhcXVlQXRMZWZ0KSB7CisgICAgICAgICAgICAgICAgdGhpcy5fYmFy
TGVmdEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygid2FpdGluZyIpOworICAgICAgICAgICAgICAg
IHRoaXMuX2JhclJpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ3YWl0aW5nLXJpZ2h0Iik7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ3
YWl0aW5nIik7CisgICAgICAgICAgICAgICAgdGhpcy5fbGFiZWxSaWdodEVsZW1lbnQuYWRkU3R5
bGVDbGFzcygid2FpdGluZy1yaWdodCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgdGhpcy5faXNCYXJPcGFxdWVBdExlZnQgPSBpc0Jhck9wYXF1ZUF0TGVmdDsKKwogICAg
ICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LnRleHRDb250ZW50ID0gbGFiZWxzLmxlZnQ7CiAg
ICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnRleHRDb250ZW50ID0gbGFiZWxzLnJpZ2h0
OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IGUzNmU5
NzQuLjQ2MzA4OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuY3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3Nz
CkBAIC0yNzYxLDYgKzI3NjEsMTAgQEAgYnV0dG9uLmVuYWJsZS10b2dnbGUtc3RhdHVzLWJhci1p
dGVtLnRvZ2dsZWQtb24gLmdseXBoIHsKICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKIH0KIAorLnJl
c291cmNlcy1ncmFwaC1sYWJlbC53YWl0aW5nLXJpZ2h0IHsKKyAgICBtYXJnaW4tbGVmdDogNXB4
OworfQorCiAucmVzb3VyY2VzLWdyYXBoLWxhYmVsLmJlZm9yZSB7CiAgICAgY29sb3I6IHJnYmEo
MCwgMCwgMCwgMC43KTsKICAgICB0ZXh0LXNoYWRvdzogbm9uZTsKQEAgLTI4MjksNyArMjgzMyw3
IEBAIGJ1dHRvbi5lbmFibGUtdG9nZ2xlLXN0YXR1cy1iYXItaXRlbS50b2dnbGVkLW9uIC5nbHlw
aCB7CiAgICAgZGlzcGxheTogYmxvY2s7CiB9CiAKLS5yZXNvdXJjZXMtZ3JhcGgtYmFyLndhaXRp
bmcgeworLnJlc291cmNlcy1ncmFwaC1iYXIud2FpdGluZywgLnJlc291cmNlcy1ncmFwaC1iYXIu
d2FpdGluZy1yaWdodCB7CiAgICAgb3BhY2l0eTogMC4zNTsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZmQ2ZDI3MC4uMjU0YTA3ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMDk2LDcgKzEwOTYsNyBAQCBX
ZWJJbnNwZWN0b3IudXBkYXRlUmVzb3VyY2UgPSBmdW5jdGlvbihpZGVudGlmaWVyLCBwYXlsb2Fk
KQogICAgIH0KIAogICAgIGlmIChwYXlsb2FkLmRpZExlbmd0aENoYW5nZSkgewotICAgICAgICBy
ZXNvdXJjZS5jb250ZW50TGVuZ3RoID0gcGF5bG9hZC5jb250ZW50TGVuZ3RoOworICAgICAgICBy
ZXNvdXJjZS5yZXNvdXJjZVNpemUgPSBwYXlsb2FkLnJlc291cmNlU2l6ZTsKICAgICB9CiAKICAg
ICBpZiAocGF5bG9hZC5kaWRDb21wbGV0aW9uQ2hhbmdlKSB7Cg==
</data>
<flag name="review"
          id="32902"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>