<?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>86361</bug_id>
          
          <creation_ts>2012-05-14 05:19:04 -0700</creation_ts>
          <short_desc>Web Inspector: [Extensions API] allow extensions to evaluate in the context of their content scripts</short_desc>
          <delta_ts>2012-05-14 09:34:56 -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>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="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622861</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-14 05:19:04 -0700</bug_when>
    <thetext>This exposes additional options to inspectedWindow.eval() and SidebarPane.setExpression() that allow extensions to specify that evaluation should be performed in the context of the content script of those extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622863</commentid>
    <comment_count>1</comment_count>
      <attachid>141700</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-14 05:25:14 -0700</bug_when>
    <thetext>Created attachment 141700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622957</commentid>
    <comment_count>2</comment_count>
      <attachid>141700</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-14 07:27:43 -0700</bug_when>
    <thetext>Comment on attachment 141700
Patch

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

&gt; Source/WebCore/inspector/front-end/ExtensionAPI.js:419
&gt; +        var callback = extractCallbackArgument(arguments);

Can we avoid this and have callback at a fixed position? Probably do it by passing an arguments map as the firs parameter instead of expression string as you suggested?

&gt; Source/WebCore/inspector/front-end/ExtensionServer.js:729
&gt; +     * @param {Object} options

Please keep parameter annotations in the same order as the parameters.

&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:208
&gt; +        function comparator(securityOrigin, context)

I&apos;d rather use a linear search here.

&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:216
&gt; +            return this._isolatedContexts[index];

Pleas add explicit return statement for the case when there is no context matching that security origin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623039</commentid>
    <comment_count>3</comment_count>
      <attachid>141700</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-14 09:26:44 -0700</bug_when>
    <thetext>Comment on attachment 141700
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/ExtensionAPI.js:419
&gt;&gt; +        var callback = extractCallbackArgument(arguments);
&gt; 
&gt; Can we avoid this and have callback at a fixed position? Probably do it by passing an arguments map as the firs parameter instead of expression string as you suggested?

As discussed offline -- we&apos;d like expression to appear on its own as it&apos;s a mandatory parameter.

&gt;&gt; Source/WebCore/inspector/front-end/ExtensionServer.js:729
&gt;&gt; +     * @param {Object} options
&gt; 
&gt; Please keep parameter annotations in the same order as the parameters.

Fixed!

&gt;&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:208
&gt;&gt; +        function comparator(securityOrigin, context)
&gt; 
&gt; I&apos;d rather use a linear search here.

Done!

&gt;&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:216
&gt;&gt; +            return this._isolatedContexts[index];
&gt; 
&gt; Pleas add explicit return statement for the case when there is no context matching that security origin.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623042</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-14 09:34:56 -0700</bug_when>
    <thetext>Committed r116957: &lt;http://trac.webkit.org/changeset/116957&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141700</attachid>
            <date>2012-05-14 05:25:14 -0700</date>
            <delta_ts>2012-05-14 09:26:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86361-20120514162512.patch</filename>
            <type>text/plain</type>
            <size>19944</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUyZTM0NDEyYzYyZWMw
N2Y1ZTUyYTZiMmJhNzc1MDdkZmQxNzc4Mi4uZmMwMmVjYTFiMzczM2E3ZTUyYjJkYjU1NmUyNDVk
NWIwYmFmMjI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA1LTE0ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW0V4dGVuc2lvbnMgQVBJXSBhbGxvdyBleHRlbnNpb25zIHRvIGV2YWx1YXRlIGluIHRoZSBj
b250ZXh0IG9mIHRoZWlyIGNvbnRlbnQgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYzNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25BUEkuanM6IAorICAgICAgICAoaW5qZWN0ZWRFeHRlbnNpb25BUEkuRXh0
ZW5zaW9uU2lkZWJhclBhbmVJbXBsLnByb3RvdHlwZS5zZXRFeHByZXNzaW9uKTogQWRkZWQgZXZh
bHVhdGVPcHRpb25zIG9wdGlvbmFsIHBhcmFtZXRlci4KKyAgICAgICAgKGluamVjdGVkRXh0ZW5z
aW9uQVBJLkluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUuZXZhbCk6CisgICAgICAgIChpbmplY3Rl
ZEV4dGVuc2lvbkFQSS5leHRyYWN0Q2FsbGJhY2tBcmd1bWVudCk6IEEgaGVscGVyIHRvIGV4dHJh
Y3QgY2FsbGJhY2sgZnVuY3Rpb24gZnJvbSBsYXN0IGFyZ3VtZW50LgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2lkZWJhclBhbmUucHJvdG90eXBlLnNldEV4cHJlc3Npb24pOiBBZGRlZCBldmFs
dWF0ZU9wdGlvbnMgb3B0aW9uYWwgcGFyYW1ldGVyLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lv
blNlcnZlci5wcm90b3R5cGUuX29uU2V0U2lkZWJhckNvbnRlbnQpOiBVc2UgRXh0ZW5zaW9uU2Vy
dmVyLmV2YWx1YXRlKCkgd3JhcHBlci4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlLl9vbkV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlKTogRGl0dG8uCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fbm9ybWFsaXplUGF0
aCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5ldmFs
dWF0ZSk6IEEgd3JhcHBlciBmb3IgUGFnZUFnZW50LmV2YWx1YXRlKCkgdGhhdCBoYW5kbGVzIGV2
YWx1YXRlT3B0aW9ucy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRD
b250ZXh0TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4
dE1hbmFnZXIucHJvdG90eXBlLmNvbnRleHRCeUZyYW1lQW5kU2VjdXJpdHlPcmlnaW4pOiBFeHBv
c2UgaW50ZXJmYWNlIHRvIGxvY2F0ZSBjb250ZXh0IGlkIGJ5IGZyYW1lIGFuZCBjb250ZW50IHNj
cmlwdCBzZWN1cml0eSBvcmlnaW4uCisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0
aW9uQ29udGV4dC5wcm90b3R5cGUuX2FkZEV4ZWN1dGlvbkNvbnRleHQpOiBNYWludGFpbiBjb250
ZXh0cyBzb3J0ZWQgYnkgbmFtZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRp
b25Db250ZXh0LnByb3RvdHlwZS5pc29sYXRlZENvbnRleHRzKTogZGl0dG8gKHNraXAgc29ydGlu
ZyB3aGVuIHJldHVybmluZyBjb250ZXh0cykKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV2
YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZS5jb250ZXh0QnlTZWN1cml0eU9yaWdpbik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6IEhvbGQvZXhwb3NlIGphdmFT
Y3JpcHRDb250ZXh0TWFuYWdlci4KKwogMjAxMi0wNS0xNCAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTaG91bGQgaGF2ZSBOb2RlOjppbkRldGFjaCgpIGZv
ciBhc3NlcnRpb24gcHVycG9zZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzCmluZGV4IGQyNWFiMWIzMjA5NTYyM2ZiMTBhYzAwODM1
NTkyNWI5OGQ0ZTg5NGQuLmQyZDUwYzE3OTkyNzQxMWQxNDJkZGU2Mjc5Nzg3NWU0MjliZDQ5MDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
QVBJLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
QVBJLmpzCkBAIC00MTQsOSArNDE0LDE5IEBAIEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6
IGNvbW1hbmRzLlNldFNpZGViYXJIZWlnaHQsIGlkOiB0aGlzLl9pZCwgaGVpZ2h0OiBoZWlnaHQg
fSk7CiAgICAgfSwKIAotICAgIHNldEV4cHJlc3Npb246IGZ1bmN0aW9uKGV4cHJlc3Npb24sIHJv
b3RUaXRsZSwgY2FsbGJhY2spCisgICAgc2V0RXhwcmVzc2lvbjogZnVuY3Rpb24oZXhwcmVzc2lv
biwgcm9vdFRpdGxlLCBldmFsdWF0ZU9wdGlvbnMpCiAgICAgewotICAgICAgICBleHRlbnNpb25T
ZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiBjb21tYW5kcy5TZXRTaWRlYmFyQ29udGVudCwg
aWQ6IHRoaXMuX2lkLCBleHByZXNzaW9uOiBleHByZXNzaW9uLCByb290VGl0bGU6IHJvb3RUaXRs
ZSwgZXZhbHVhdGVPblBhZ2U6IHRydWUgfSwgY2FsbGJhY2spOworICAgICAgICB2YXIgY2FsbGJh
Y2sgPSBleHRyYWN0Q2FsbGJhY2tBcmd1bWVudChhcmd1bWVudHMpOworICAgICAgICB2YXIgcmVx
dWVzdCA9IHsKKyAgICAgICAgICAgIGNvbW1hbmQ6IGNvbW1hbmRzLlNldFNpZGViYXJDb250ZW50
LAorICAgICAgICAgICAgaWQ6IHRoaXMuX2lkLAorICAgICAgICAgICAgZXhwcmVzc2lvbjogZXhw
cmVzc2lvbiwKKyAgICAgICAgICAgIHJvb3RUaXRsZTogcm9vdFRpdGxlLAorICAgICAgICAgICAg
ZXZhbHVhdGVPblBhZ2U6IHRydWUsCisgICAgICAgIH07CisgICAgICAgIGlmICh0eXBlb2YgZXZh
bHVhdGVPcHRpb25zID09PSAib2JqZWN0IikKKyAgICAgICAgICAgIHJlcXVlc3QuZXZhbHVhdGVP
cHRpb25zID0gZXZhbHVhdGVPcHRpb25zOworICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJl
cXVlc3QocmVxdWVzdCwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICBzZXRPYmplY3Q6IGZ1bmN0
aW9uKGpzb25PYmplY3QsIHJvb3RUaXRsZSwgY2FsbGJhY2spCkBAIC02MDIsMTMgKzYxMiwyMCBA
QCBJbnNwZWN0ZWRXaW5kb3cucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gZXh0ZW5zaW9u
U2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogY29tbWFuZHMuUmVsb2FkLCBvcHRpb25zOiBv
cHRpb25zIH0pOwogICAgIH0sCiAKLSAgICBldmFsOiBmdW5jdGlvbihleHByZXNzaW9uLCBjYWxs
YmFjaykKKyAgICBldmFsOiBmdW5jdGlvbihleHByZXNzaW9uLCBldmFsdWF0ZU9wdGlvbnMpCiAg
ICAgeworICAgICAgICB2YXIgY2FsbGJhY2sgPSBleHRyYWN0Q2FsbGJhY2tBcmd1bWVudChhcmd1
bWVudHMpOwogICAgICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIocmVzdWx0KQogICAgICAg
ICB7CiAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQudmFsdWUsIHJlc3VsdC5pc0V4Y2VwdGlv
bik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVz
dCh7IGNvbW1hbmQ6IGNvbW1hbmRzLkV2YWx1YXRlT25JbnNwZWN0ZWRQYWdlLCBleHByZXNzaW9u
OiBleHByZXNzaW9uIH0sIGNhbGxiYWNrICYmIGNhbGxiYWNrV3JhcHBlcik7CisgICAgICAgIHZh
ciByZXF1ZXN0ID0geworICAgICAgICAgICAgY29tbWFuZDogY29tbWFuZHMuRXZhbHVhdGVPbklu
c3BlY3RlZFBhZ2UsCisgICAgICAgICAgICBleHByZXNzaW9uOiBleHByZXNzaW9uCisgICAgICAg
IH07CisgICAgICAgIGlmICh0eXBlb2YgZXZhbHVhdGVPcHRpb25zID09PSAib2JqZWN0IikKKyAg
ICAgICAgICAgIHJlcXVlc3QuZXZhbHVhdGVPcHRpb25zID0gZXZhbHVhdGVPcHRpb25zOworICAg
ICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHJlcXVlc3QsIGNhbGxiYWNr
ICYmIGNhbGxiYWNrV3JhcHBlcik7CiAgICAgfSwKIAogICAgIGdldFJlc291cmNlczogZnVuY3Rp
b24oY2FsbGJhY2spCkBAIC03ODYsNiArODAzLDEyIEBAIGZ1bmN0aW9uIGRlZmluZURlcHJlY2F0
ZWRQcm9wZXJ0eShvYmplY3QsIGNsYXNzTmFtZSwgb2xkTmFtZSwgbmV3TmFtZSkKICAgICBvYmpl
Y3QuX19kZWZpbmVHZXR0ZXJfXyhvbGROYW1lLCBnZXR0ZXIpOwogfQogCitmdW5jdGlvbiBleHRy
YWN0Q2FsbGJhY2tBcmd1bWVudChhcmdzKQoreworICAgIHZhciBsYXN0QXJndW1lbnQgPSBhcmdz
W2FyZ3MubGVuZ3RoIC0gMV07CisgICAgcmV0dXJuIHR5cGVvZiBsYXN0QXJndW1lbnQgPT09ICJm
dW5jdGlvbiIgPyBsYXN0QXJndW1lbnQgOiB1bmRlZmluZWQ7Cit9CisKIHZhciBBdWRpdENhdGVn
b3J5ID0gZGVjbGFyZUludGVyZmFjZUNsYXNzKEF1ZGl0Q2F0ZWdvcnlJbXBsKTsKIHZhciBBdWRp
dFJlc3VsdCA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhBdWRpdFJlc3VsdEltcGwpOwogdmFyIEJ1
dHRvbiA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhCdXR0b25JbXBsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCmluZGV4IDk0
NWM4NjUyNmNjNDkyNzRmNTY4ODMyNGMzOGVkYzVmMjQ1ZGFmZDAuLmEzMWIwOTY4NDRkM2I5NmE4
OTQ0YWUwYjYwN2Q5ZTU0MTE1NGFkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwpAQCAtMjQ1LDEwICsyNDUsMTAgQEAg
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30gdGl0bGUKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmc9KX0g
Y2FsbGJhY2sKICAgICAgKi8KLSAgICBzZXRFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9u
LCB0aXRsZSwgY2FsbGJhY2spCisgICAgc2V0RXhwcmVzc2lvbjogZnVuY3Rpb24oZXhwcmVzc2lv
biwgdGl0bGUsIGV2YWx1YXRlT3B0aW9ucywgc2VjdXJpdHlPcmlnaW4sIGNhbGxiYWNrKQogICAg
IHsKICAgICAgICAgdGhpcy5fY3JlYXRlT2JqZWN0UHJvcGVydGllc1ZpZXcoKTsKLSAgICAgICAg
UnVudGltZUFnZW50LmV2YWx1YXRlKGV4cHJlc3Npb24sICJleHRlbnNpb24td2F0Y2giLCB0cnVl
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLl9vbkV2YWx1YXRlLmJpbmQo
dGhpcywgdGl0bGUsIGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZXh0
ZW5zaW9uU2VydmVyLmV2YWx1YXRlKGV4cHJlc3Npb24sIHRydWUsIGZhbHNlLCBldmFsdWF0ZU9w
dGlvbnMsIHNlY3VyaXR5T3JpZ2luLCB0aGlzLl9vbkV2YWx1YXRlLmJpbmQodGhpcywgdGl0bGUs
IGNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCA2OTlhNWViZjk5
ZTQ1OTJjOWViM2JhOTUyOTYwODk4YjA0ZmNlODAwLi5kZWNjYjYwM2FlNTZiNTE4ZDIwZDhkY2E1
NWE2MzRlNTZhZGExYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjYwLDkgKzI2MCw4IEBAIFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fZGlz
cGF0Y2hDYWxsYmFjayhtZXNzYWdlLnJlcXVlc3RJZCwgcG9ydCwgcmVzdWx0KTsKICAgICAgICAg
fQogICAgICAgICBpZiAobWVzc2FnZS5ldmFsdWF0ZU9uUGFnZSkKLSAgICAgICAgICAgIHNpZGVi
YXIuc2V0RXhwcmVzc2lvbihtZXNzYWdlLmV4cHJlc3Npb24sIG1lc3NhZ2Uucm9vdFRpdGxlLCBj
YWxsYmFjay5iaW5kKHRoaXMpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc2lkZWJhci5z
ZXRPYmplY3QobWVzc2FnZS5leHByZXNzaW9uLCBtZXNzYWdlLnJvb3RUaXRsZSwgY2FsbGJhY2su
YmluZCh0aGlzKSk7CisgICAgICAgICAgICByZXR1cm4gc2lkZWJhci5zZXRFeHByZXNzaW9uKG1l
c3NhZ2UuZXhwcmVzc2lvbiwgbWVzc2FnZS5yb290VGl0bGUsIG1lc3NhZ2UuZXZhbHVhdGVPcHRp
b25zLCBwb3J0Ll9leHRlbnNpb25PcmlnaW4sIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAg
ICBzaWRlYmFyLnNldE9iamVjdChtZXNzYWdlLmV4cHJlc3Npb24sIG1lc3NhZ2Uucm9vdFRpdGxl
LCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX29uU2V0U2lkZWJhclBhZ2U6
IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCkBAIC0zMzgsNyArMzM3LDcgQEAgV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAKICAgICAgICAgICAgIHRoaXMu
X2Rpc3BhdGNoQ2FsbGJhY2sobWVzc2FnZS5yZXF1ZXN0SWQsIHBvcnQsIHJlc3VsdCk7CiAgICAg
ICAgIH0KLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKG1lc3NhZ2UuZXhwcmVzc2lvbiwg
IiIsIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlLCBjYWxsYmFjay5iaW5kKHRoaXMp
KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGUobWVzc2FnZS5leHByZXNzaW9uLCB0cnVl
LCB0cnVlLCBtZXNzYWdlLmV2YWx1YXRlT3B0aW9ucywgcG9ydC5fZXh0ZW5zaW9uT3JpZ2luLCBj
YWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX29uR2V0Q29uc29sZU1lc3NhZ2Vz
OiBmdW5jdGlvbigpCkBAIC03MjMsNiArNzIyLDI4IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHNvdXJjZVtp
XSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICIvIiArIHJlc3VsdC5qb2luKCIvIik7Cisg
ICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBleHByZXNzaW9uCisgICAg
ICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGV4cG9z
ZUNvbW1hbmRMaW5lQVBJCisgICAgICogQHBhcmFtIHtib29sZWFufSByZXR1cm5CeVZhbHVlCisg
ICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nLCA/UnVudGltZUFnZW50LlJlbW90ZU9iamVj
dCwgYm9vbGVhbj0pfSBjYWxsYmFjaworICAgICAqLworICAgIGV2YWx1YXRlOiBmdW5jdGlvbihl
eHByZXNzaW9uLCBleHBvc2VDb21tYW5kTGluZUFQSSwgcmV0dXJuQnlWYWx1ZSwgb3B0aW9ucywg
c2VjdXJpdHlPcmlnaW4sIGNhbGxiYWNrKSAKKyAgICB7CisgICAgICAgIHZhciBjb250ZXh0SWQ7
CisgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gIm9iamVjdCIgJiYgb3B0aW9uc1sidXNl
Q29udGVudFNjcmlwdENvbnRleHQiXSkgeworICAgICAgICAgICAgdmFyIG1haW5GcmFtZSA9IFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWU7CisgICAgICAgICAgICBpZiAo
IW1haW5GcmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfRkFJTEVE
KCJtYWluIGZyYW1lIG5vdCBhdmFpbGFibGUgeWV0Iik7CisgICAgICAgICAgICB2YXIgY29udGV4
dCA9IFdlYkluc3BlY3Rvci5qYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuY29udGV4dEJ5RnJhbWVB
bmRTZWN1cml0eU9yaWdpbihtYWluRnJhbWUsIHNlY3VyaXR5T3JpZ2luKTsKKyAgICAgICAgICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLkVfTk9U
Rk9VTkQoc2VjdXJpdHlPcmlnaW4pOworICAgICAgICAgICAgY29udGV4dElkID0gY29udGV4dC5p
ZDsKKyAgICAgICAgfQorICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwg
ImV4dGVuc2lvbiIsIGV4cG9zZUNvbW1hbmRMaW5lQVBJLCB0cnVlLCBjb250ZXh0SWQsIHJldHVy
bkJ5VmFsdWUsIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIu
anMKaW5kZXggZGEyNzFkYTk4MjJjNTZkN2I3Y2ZlNzJiOWIwZGM4YWNhNDIzYTE0ZS4uZTVkM2Yx
Y2FjMjE5ZTE1NzIzZGUyMmUyYzgyNDk3OTVkZGMxZmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1h
bmFnZXIuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTQzLDYgKzQzLDE2IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1h
bmFnZXIgPSBmdW5jdGlvbihyZXNvdXJjZVRyZWVNb2RlbCwgY29uc29sZVZpZXcpCiB9CiAKIFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90eXBlID0geworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfSBmcmFtZQor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgorICAgICAqLworICAgIGNvbnRl
eHRCeUZyYW1lQW5kU2VjdXJpdHlPcmlnaW46IGZ1bmN0aW9uKGZyYW1lLCBzZWN1cml0eU9yaWdp
bikKKyAgICB7CisgICAgICAgIHZhciBmcmFtZUNvbnRleHQgPSB0aGlzLl9mcmFtZUlkVG9Db250
ZXh0W2ZyYW1lLmlkXTsKKyAgICAgICAgcmV0dXJuIGZyYW1lQ29udGV4dCAmJiBmcmFtZUNvbnRl
eHQuY29udGV4dEJ5U2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOworICAgIH0sCisKICAg
ICBfZnJhbWVBZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUg
PSBldmVudC5kYXRhOwpAQCAtODcsNiArOTcsMTAgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRD
b250ZXh0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29u
dGV4dE1hbmFnZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJv
dG90eXBlOwogCisvKioKKyAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRN
YW5hZ2VyfQorICovCitXZWJJbnNwZWN0b3IuamF2YVNjcmlwdENvbnRleHRNYW5hZ2VyID0gbnVs
bDsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKQEAgLTExNyw4ICsxMzEsOSBAQCBXZWJJbnNwZWN0
b3IuRXhlY3V0aW9uQ29udGV4dCA9IGZ1bmN0aW9uKGlkLCBuYW1lLCBpc1BhZ2VDb250ZXh0KQog
fQogCiAvKioKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV4ZWN1dGlvbkNvbnRleHR9IGEKLSAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV4ZWN1dGlvbkNvbnRleHR9IGIKKyAqIEBwYXJhbSB7Kn0g
YQorICogQHBhcmFtIHsqfSBiCisgKiBAcmV0dXJuIHtudW1iZXJ9CiAgKi8KIFdlYkluc3BlY3Rv
ci5FeGVjdXRpb25Db250ZXh0LmNvbXBhcmF0b3IgPSBmdW5jdGlvbihhLCBiKQogewpAQCAtMTYz
LDggKzE3OCwxMCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5
cGUgPQogICAgIHsKICAgICAgICAgaWYgKGNvbnRleHQuaXNNYWluV29ybGRDb250ZXh0KQogICAg
ICAgICAgICAgdGhpcy5fbWFpbldvcmxkQ29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHRoaXMuX2lzb2xhdGVkQ29udGV4dHMucHVzaChjb250ZXh0KTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICB2YXIgaW5zZXJ0QXQgPSBpbnNlcnRpb25JbmRleEZvck9i
amVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24oY29udGV4dCwgdGhpcy5faXNvbGF0ZWRDb250ZXh0
cywgV2ViSW5zcGVjdG9yLkV4ZWN1dGlvbkNvbnRleHQuY29tcGFyYXRvcik7CisgICAgICAgICAg
ICB0aGlzLl9pc29sYXRlZENvbnRleHRzLnNwbGljZShpbnNlcnRBdCwgMCwgY29udGV4dCk7Cisg
ICAgICAgIH0KICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQuRXZlbnRUeXBlcy5BZGRlZEV4ZWN1dGlvbkNvbnRl
eHQsIHRoaXMpOwogICAgIH0sCiAKQEAgLTE3NSwxMSArMTkyLDMwIEBAIFdlYkluc3BlY3Rvci5G
cmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZSA9CiAKICAgICBpc29sYXRlZENvbnRleHRz
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faXNvbGF0ZWRDb250ZXh0cy5s
ZW5ndGgpCi0gICAgICAgICAgICB0aGlzLl9pc29sYXRlZENvbnRleHRzLnNvcnQoV2ViSW5zcGVj
dG9yLkV4ZWN1dGlvbkNvbnRleHQuY29tcGFyYXRvcik7CiAgICAgICAgIHJldHVybiB0aGlzLl9p
c29sYXRlZENvbnRleHRzOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gc2VjdXJpdHlPcmlnaW4KKyAgICAgKi8KKyAgICBjb250ZXh0QnlTZWN1cml0eU9yaWdpbjog
ZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4pCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICog
QHBhcmFtIHsqfSBzZWN1cml0eU9yaWdpbgorICAgICAgICAgKiBAcGFyYW0geyp9IGNvbnRleHQK
KyAgICAgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rp
b24gY29tcGFyYXRvcihzZWN1cml0eU9yaWdpbiwgY29udGV4dCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKGNvbnRleHQuaXNNYWluV29ybGRDb250ZXh0KQorICAgICAgICAgICAgICAgIHJl
dHVybiAxOworICAgICAgICAgICAgcmV0dXJuIHNlY3VyaXR5T3JpZ2luLmxvY2FsZUNvbXBhcmUo
Y29udGV4dC5uYW1lKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgaW5kZXggPSBiaW5hcnlTZWFy
Y2goc2VjdXJpdHlPcmlnaW4sIHRoaXMuX2lzb2xhdGVkQ29udGV4dHMsIGNvbXBhcmF0b3IpOwor
ICAgICAgICBpZiAoaW5kZXggPj0gMCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc29sYXRl
ZENvbnRleHRzW2luZGV4XTsKKyAgICB9LAorCiAgICAgZ2V0IGZyYW1lSWQoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lLmlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBmMTQwZWI2OWMxMTU4YmRlYTEwY2QwODk3
NmY2ZDVmNGQ3YjAyOWY2Li43MDg3ODgxNTRlM2NiODk5NTY4YjMzYjFmMDdlYWQ1ODhlYWNkZTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cwpAQCAtMzkyLDcgKzM5Miw3IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFi
aWxpdGllcyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnJlc291cmNlVHJlZU1vZGVsID0gbmV3IFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCh0aGlzLm5ldHdvcmtNYW5hZ2VyKTsKICAgICB0
aGlzLm5ldHdvcmtMb2cgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2coKTsKICAgICB0aGlz
LmRvbUFnZW50ID0gbmV3IFdlYkluc3BlY3Rvci5ET01BZ2VudCgpOwotICAgIG5ldyBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyKHRoaXMucmVzb3VyY2VUcmVlTW9kZWwsIHRo
aXMuY29uc29sZVZpZXcpOworICAgIHRoaXMuamF2YVNjcmlwdENvbnRleHRNYW5hZ2VyID0gbmV3
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIodGhpcy5yZXNvdXJjZVRyZWVN
b2RlbCwgdGhpcy5jb25zb2xlVmlldyk7CiAKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
SW5zcGVjdG9yRGlzcGF0Y2hlcih0aGlzKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU3N2I0ZDY4YzhjNjFlYTVmYmI1
NzExMDdkNzVmZWZkODkwOTUwNmMuLmYyZjA1NGRlNzRkMDU3M2ZjYmU3NjUwMWNjYmYzYWE5ZTdk
MDk4MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0xNCAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b25zIEFQSV0gYWxsb3cgZXh0ZW5zaW9ucyB0byBldmFsdWF0ZSBpbiB0aGUgY29udGV4dCBvZiB0
aGVpciBjb250ZW50IHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MzYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVu
dC1zY3JpcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgor
CiAyMDEyLTA1LTE0ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZywgdW5za2lwIG5vdyBwYXNzaW5nIHRlc3Rz
IGFmdGVyIHIxMTY5MjYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjAzZDQyZGQ2MDI2ODdlMjI4NjIwM2QwMjRiNzgw
OTdjN2VkMjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0cyBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSQorCitTdGFydGVkIGV4
dGVuc2lvbi4KK1J1bm5pbmcgdGVzdHMuLi4KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RF
dmFsSW5Db250ZW50U2NyaXB0Q29udGV4dAorRXZhbHVhdGU6ICJicmF2ZSBuZXcgd29ybGQiIChl
eGNlcHRpb246IHVuZGVmaW5lZCkKK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsSW5N
YWluV29ybGRFeHBsaWNpdAorRXZhbHVhdGU6ICJtYWluIHdvcmxkIiAoZXhjZXB0aW9uOiB1bmRl
ZmluZWQpCitSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZhbEluTWFpbldvcmxkSW1wbGlj
aXQKK0V2YWx1YXRlOiAibWFpbiB3b3JsZCIgKGV4Y2VwdGlvbjogdW5kZWZpbmVkKQorQWxsIHRl
c3RzIGRvbmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzc1NjE4YWExZmYzN2NiMDgxYzFmZWQ2ZDc4YTZhMmMyY2YwZDI4MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZh
bC1jb250ZW50LXNjcmlwdC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisKK3dpbmRvdy53aGVyZUFtSSA9ICJtYWluIHdvcmxkIjsKKworbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKDYzMiwgImZpbGU6Ly8vIik7CitsYXlv
dXRUZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCg2MzIsICJ3aW5k
b3cud2hlcmVBbUkgPSAnYnJhdmUgbmV3IHdvcmxkJyIpOworCitmdW5jdGlvbiBleHRlbnNpb25f
dGVzdEV2YWxJbk1haW5Xb3JsZEltcGxpY2l0KG5leHRUZXN0KQoreworICAgIHdlYkluc3BlY3Rv
ci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgid2hlcmVBbUkiLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4
dGVuc2lvbl9vbkV2YWwsIG5leHRUZXN0KSk7Cit9CisKK2Z1bmN0aW9uIGV4dGVuc2lvbl90ZXN0
RXZhbEluTWFpbldvcmxkRXhwbGljaXQobmV4dFRlc3QpCit7CisgICAgd2ViSW5zcGVjdG9yLmlu
c3BlY3RlZFdpbmRvdy5ldmFsKCJ3aGVyZUFtSSIsIHsgdXNlQ29udGVudFNjcmlwdENvbnRleHQ6
IGZhbHNlIH0sIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3Qp
KTsKK30KKworZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RFdmFsSW5Db250ZW50U2NyaXB0Q29udGV4
dChuZXh0VGVzdCkKK3sKKyAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoIndo
ZXJlQW1JIiwgeyB1c2VDb250ZW50U2NyaXB0Q29udGV4dDogdHJ1ZSB9LCBjYWxsYmFja0FuZE5l
eHRUZXN0KGV4dGVuc2lvbl9vbkV2YWwsIG5leHRUZXN0KSk7Cit9CisKK2Z1bmN0aW9uIGV4dGVu
c2lvbl9vbkV2YWwodmFsdWUsIGlzRXhjZXB0aW9uKQoreworICAgIG91dHB1dCgiRXZhbHVhdGU6
ICIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgKyAiIChleGNlcHRpb246ICIgKyBpc0V4Y2VwdGlv
biArICIpIik7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPHA+VGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEk8L3A+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAppbmRleCAyN2E2ODY3Nzk4YjdkMjU3OTRjN2Y4ODNjNjMyMzI4NGUyYjdmMDRhLi4wOWU4MTgy
NjM3ZmJjNDliMTNiZjhjZTMwNTBiMmIyYWNjNWYzZjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTc4Myw2ICs3ODMsNyBAQCBCVUdX
SzQzMzMyIFNLSVAgOiBpbnNwZWN0b3IvZGVidWdnZXIveGhyLWJyZWFrcG9pbnRzLmh0bWwgPSBG
QUlMCiBCVUdXSzQwMzAwIFNLSVAgOiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0bWwg
PSBGQUlMCiBCVUdXSzUwODY4IFNLSVAgOiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3Rl
cC1vdXQuaHRtbCA9IEZBSUwKIEJVR1dLNTA4NjggU0tJUCA6IGluc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLXNvdXJjZS1saW5lcy1pbmxpbmUuaHRtbCA9IEZBSUwKK0JVR1dLODU3MDkgU0tJUCA6IGlu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sID0g
RkFJTAogCiAvLyBUaGVzZSBpbnNwZWN0b3IgdGVzdHMgZmVsbCBvdXQgb2YgdGhlIHJhZGFyIGFm
dGVyIHRoZSB0cmFuc2l0aW9uIHRvIE5SV1QKIC8vIFNvbWUgdGltZSBvdXQgYW5kIHNvbWUgYXJl
IGZsYWt5IG9yIHByZXNlbnQgZGlmZmVyZW50IGJhc2VsaW5lcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKaW5kZXggYzgwZThjYzc4YmM3MzY0ZWY1ODMwNjM0MGY0NDllOGEwZWIyMDE2Yy4uM2Q3
NWQ0YWNiNmU5ZDYzNTEwZGI3NWE3Y2I5NWI5NDI5MDdhZmUwNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKQEAgLTgzOSwzICs4MzksNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKIAogIyBIaXRzIGFzc2VydCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMDgKIGlldGVzdGNlbnRlci9jc3MzL3ZhbHVl
c2FuZHVuaXRzL3VuaXRzLTAwMC5odG0KKworIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFs
dWF0aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKK2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApp
bmRleCAxY2QyMmIwZjdjZTcyNTc3MGRlYzEwMzZjNzU5Yjc0NjM3NjEyY2YxLi40YzhhZjM2YjJh
ZGZkNTZhZGM0NTYwMWEzODUwNWUwMDI4MzM1ODU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
QEAgLTI1NjgsMyArMjU2OCw3IEBAIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVy
LWNvbnNvbGUuaHRtbAogIyBbUXRdIFJFR1JFU1NJT04gKHIxMTY3NzUpOiBpbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5odG1sIGZhaWxzCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjMzNwogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NjcmlwdC1mb3JtYXR0ZXItYnJlYWtwb2ludHMuaHRtbAorCisjIEluc3BlY3RvciBvbmx5IHN1
cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwgc2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQoraW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQKaW5kZXggNTdkMjZkNDFkYzM2N2QzOWFkNjc5ZWU5YjQzYjgxYzM2YjFm
OTkyZS4uMGUyYjQyZTgzNjRkY2YwMDg0NTEwYWJlNTUyZTRjOGYzY2Q0YmRkMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQKQEAgLTE3NDQsMyArMTc0NCw3IEBAIGZhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJy
ZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAorCisjIEluc3BlY3RvciBvbmx5IHN1cHBvcnRz
IGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwgc2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQoraW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1NraXBwZWQKaW5kZXggOWQ3OWI1NDIzOGIxN2Q1ZWI1ODYwZTU4YTllMjQyNmJmYWEwODA5Mi4u
YWQ4Yjc3NzQwNTc4ZGFjYWE0MmI2N2FkNTYwMzY1ZjUwNDQ1N2M2ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1NraXBwZWQKQEAgLTcxLDYgKzcxLDkgQEAgZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9mcmFt
ZXNldC1mbGF0dGVuaW5nLXN1YmZyYW1lc2V0cy5odG1sCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLWhlYWRlcnMuaHRtbAogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1u
ZXR3b3JrLXJlZGlyZWN0Lmh0bWwKIAorIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0
aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKK2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sIAorCiAjIEEgYnVuY2ggb2YgaW5zcGVjdG9y
IHRlc3RzIHRpbWUgb3V0IG9uIExpb24gSW50ZWwgRGVidWcgV2ViS2l0MiB0ZXN0ZXJzLgogIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2MDEKIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwK
</data>
<flag name="review"
          id="147876"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>