<?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>130452</bug_id>
          
          <creation_ts>2014-03-19 07:34:35 -0700</creation_ts>
          <short_desc>Improving webkitGetUserMedia error handling and error messages</short_desc>
          <delta_ts>2014-03-19 14:07:12 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago de Barros Lacerda">thiago.lacerda</reporter>
          <assigned_to name="Thiago de Barros Lacerda">thiago.lacerda</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>992098</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-19 07:34:35 -0700</bug_when>
    <thetext>Checking if first argument of webkitGetUserMedia is a valid Dictionary. If not, throw an exception with a clearer message of the error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992102</commentid>
    <comment_count>1</comment_count>
      <attachid>227182</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-19 07:44:19 -0700</bug_when>
    <thetext>Created attachment 227182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992104</commentid>
    <comment_count>2</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-19 07:45:11 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=227182) [details]
&gt; Patch

This patch does not contain the modifications needed in apple build files. Eric, could you provide that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992129</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-19 09:35:18 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Created an attachment (id=227182) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; This patch does not contain the modifications needed in apple build files. Eric, could you provide that?

Don&apos;t worry about the Xcode modifications, I will fix that later when I get a chance to work on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992141</commentid>
    <comment_count>4</comment_count>
      <attachid>227182</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-19 10:03:44 -0700</bug_when>
    <thetext>Comment on attachment 227182
Patch

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

&gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:48
&gt; +    ExceptionCode ec = 0;

Nit: this can be declared just before it is used.

&gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:59
&gt; +        throwVMTypeError(exec, makeDOMBindingsTypeErrorString(&quot;Argument &quot;, &quot;2&quot;, &quot; (&apos;&quot;, &quot;successCallback&quot;, &quot;&apos;) to &quot;, &quot;Navigator&quot;, &quot;.&quot;, &quot;webkitGetUserMedia&quot;, &quot; must be a function&quot;));

I think the reason these error messages are split up is to decrease the number of unique strings in the binary, so you can combine:

    &quot;, &quot;Navigator&quot;, &quot;.&quot;, &quot;webkitGetUserMedia&quot;, &quot; must be a function&quot;

to make:

    &quot;&apos;) to Navigator.webkitGetUserMedia must be a function&quot;

&gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:65
&gt; +    JSValue thisValue = exec-&gt;hostThisValue();
&gt; +    JSNavigator* castedThis = jsDynamicCast&lt;JSNavigator*&gt;(thisValue);
&gt; +    RefPtr&lt;NavigatorUserMediaSuccessCallback&gt; successCallback = JSNavigatorUserMediaSuccessCallback::create(asObject(exec-&gt;uncheckedArgument(1)), castedThis-&gt;globalObject());

Nit: there is no reason to do this if the error function is invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992195</commentid>
    <comment_count>5</comment_count>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-19 11:55:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 227182 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227182&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:48
&gt; &gt; +    ExceptionCode ec = 0;
&gt; 
&gt; Nit: this can be declared just before it is used.
OK

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:59
&gt; &gt; +        throwVMTypeError(exec, makeDOMBindingsTypeErrorString(&quot;Argument &quot;, &quot;2&quot;, &quot; (&apos;&quot;, &quot;successCallback&quot;, &quot;&apos;) to &quot;, &quot;Navigator&quot;, &quot;.&quot;, &quot;webkitGetUserMedia&quot;, &quot; must be a function&quot;));
&gt; 
&gt; I think the reason these error messages are split up is to decrease the number of unique strings in the binary, so you can combine:
&gt; 
&gt;     &quot;, &quot;Navigator&quot;, &quot;.&quot;, &quot;webkitGetUserMedia&quot;, &quot; must be a function&quot;
&gt; 
&gt; to make:
&gt; 
&gt;     &quot;&apos;) to Navigator.webkitGetUserMedia must be a function&quot;

OK

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:65
&gt; &gt; +    JSValue thisValue = exec-&gt;hostThisValue();
&gt; &gt; +    JSNavigator* castedThis = jsDynamicCast&lt;JSNavigator*&gt;(thisValue);
&gt; &gt; +    RefPtr&lt;NavigatorUserMediaSuccessCallback&gt; successCallback = JSNavigatorUserMediaSuccessCallback::create(asObject(exec-&gt;uncheckedArgument(1)), castedThis-&gt;globalObject());
&gt; 
&gt; Nit: there is no reason to do this if the error function is invalid.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992199</commentid>
    <comment_count>6</comment_count>
      <attachid>227206</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2014-03-19 12:06:00 -0700</bug_when>
    <thetext>Created attachment 227206
Requested changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992228</commentid>
    <comment_count>7</comment_count>
      <attachid>227206</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-19 13:30:58 -0700</bug_when>
    <thetext>Comment on attachment 227206
Requested changes

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

&gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:58
&gt; +        throwVMError(exec, createTypeError(exec, &quot;Argument 2 (&apos;successCallback&apos;) to Navigator.webkitGetUserMedia must be a function&quot;));

&quot;to Navigator.webkitGetUserMedia must be a function&quot; is common to both error messages, you should split this:

&quot;Argument 2 (&apos;successCallback&apos;)&quot;, &quot;to Navigator.webkitGetUserMedia must be a function&quot;

&gt; Source/WebCore/bindings/js/JSNavigatorCustom.cpp:66
&gt; +            throwVMError(exec, createTypeError(exec, &quot;Argument 3 (&apos;errorCallback&apos;) to Navigator.webkitGetUserMedia must be a function&quot;));

And this:

&quot;Argument 3 (&apos;errorCallback&apos;)&quot;, &quot;to Navigator.webkitGetUserMedia must be a function&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992241</commentid>
    <comment_count>8</comment_count>
      <attachid>227206</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 14:07:06 -0700</bug_when>
    <thetext>Comment on attachment 227206
Requested changes

Clearing flags on attachment: 227206

Committed r165915: &lt;http://trac.webkit.org/changeset/165915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992242</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 14:07:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227182</attachid>
            <date>2014-03-19 07:44:19 -0700</date>
            <delta_ts>2014-03-19 12:05:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130452-20140319114356.patch</filename>
            <type>text/plain</type>
            <size>20405</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZGM4NjY4ZDZiMzVh
MzVlYWMxM2JjMDcxMDUwNDVmYWY0ZWRiMi4uNmI1ZDg4OWUxYTAwYzFlY2RhM2JiMzY0YjVkNjMx
YzBkMzU4ZjY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAzLTE5ICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIEltcHJvdmluZyB3ZWJraXRHZXRVc2VyTWVkaWEgZXJyb3IgaGFuZGxpbmcgYW5kIGVy
cm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzA0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGVja2luZyBpZiBmaXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgaXMg
YSB2YWxpZCBEaWN0aW9uYXJ5LiBJZiBub3QsIHRocm93IGFuIGV4Y2VwdGlvbiB3aXRoIGEKKyAg
ICAgICAgY2xlYXJlciBtZXNzYWdlIG9mIHRoZSBlcnJvci4KKworICAgICAgICBUZXN0IHVwZGF0
ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFt
LmlkbDoKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogYmluZGluZ3MvanMvSlNO
YXZpZ2F0b3JDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTmF2aWdhdG9y
Ojp3ZWJraXRHZXRVc2VyTWVkaWEpOgorCiAyMDE0LTAzLTE5ICBDbGF1ZGlvIFNhYXZlZHJhICA8
Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gQ2xlYW4gdGltZW91
dCBzb3VyY2UgaWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCmluZGV4IDBjZjIzMDc5NjE1Y2Q4MGNk
ZjU3NDE5NjgxNjU2MzI2OWZlZTFjMWYuLjRjNjVjYjdhZTEyYzQzYWE0YjM5NGZmM2QzZWY0Yzlm
OTE2NWY4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCkBAIC0yMCw3ICsyMCw3IEBACiBbCiAg
ICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogXSBwYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0
b3IgewotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgd2Via2l0R2V0VXNlck1lZGlhKERpY3Rp
b25hcnkgb3B0aW9ucywKKyAgICBbQ3VzdG9tLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgd2Via2l0
R2V0VXNlck1lZGlhKERpY3Rpb25hcnkgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2sgZXJy
b3JDYWxsYmFjayk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCmluZGV4IDI4ZGNhZTRmNTRhODIyOGZkMjFm
MjRlYjdkYzg5YmM1MWRlNDJkMzguLjkyNGUwMDVhZmJkZDhlMzYyYWM5YTY4ZWYyMmM5NGM4YzY5
YTIwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTEwOCw2ICsxMDgsNyBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTTmF2aWdhdG9y
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcApAQCAtMjY5LDYgKzI3MCw3IEBAIGlmIChFTkFCTEVfTUVESUFfU1RSRUFN
KQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBiaW5kaW5ncy9qcy9K
U01lZGlhU291cmNlU3RhdGVzQ3VzdG9tLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU01lZGlh
U3RyZWFtQ2FwYWJpbGl0aWVzQ3VzdG9tLmNwcAorICAgICAgICBiaW5kaW5ncy9qcy9KU05hdmln
YXRvckN1c3RvbS5jcHAKICAgICAgICAgYmluZGluZ3MvanMvSlNSVENJY2VDYW5kaWRhdGVDdXN0
b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUlRDUGVlckNvbm5lY3Rpb25DdXN0b20uY3Bw
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3VzdG9tLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQxZGU1ZTBlZTljOGEwMzg5MTJjZjRmMjg4ZTViMWJiN2ZhMjRkYjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3Rv
bS5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lu
Y2x1ZGUgIkpTTmF2aWdhdG9yLmgiCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjay5oIgorI2luY2x1ZGUgIkpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNr
LmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCIKKwordXNpbmcgbmFtZXNwYWNl
IEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIEpTTmF2aWdhdG9yOjp3ZWJr
aXRHZXRVc2VyTWVkaWEoRXhlY1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAyKSB7CisgICAgICAgIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIERpY3Rpb25hcnkgb3B0aW9u
cyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIGlmICghb3B0aW9ucy5pc09i
amVjdCgpKSB7CisgICAgICAgIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhl
YywgIkZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQg
RGljdGlvbmFyeSIpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisg
ICAgaWYgKCFleGVjLT5hcmd1bWVudCgxKS5pc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkFyZ3VtZW50
ICIsICIyIiwgIiAoJyIsICJzdWNjZXNzQ2FsbGJhY2siLCAiJykgdG8gIiwgIk5hdmlnYXRvciIs
ICIuIiwgIndlYmtpdEdldFVzZXJNZWRpYSIsICIgbXVzdCBiZSBhIGZ1bmN0aW9uIikpOworICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU05hdmlnYXRvciogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNOYXZpZ2F0b3IqPih0aGlzVmFsdWUpOworICAgIFJlZlB0cjxOYXZp
Z2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayA9IEpTTmF2aWdh
dG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMSkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7CisKKyAgICBSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjazsKKyAgICBp
ZiAoIWV4ZWMtPmFyZ3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKKyAgICAgICAgaWYg
KCFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKS5pc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJB
cmd1bWVudCAiLCAiMyIsICIgKCciLCAiZXJyb3JDYWxsYmFjayIsICInKSB0byAiLCAiTmF2aWdh
dG9yIiwgIi4iLCAid2Via2l0R2V0VXNlck1lZGlhIiwgIiBtdXN0IGJlIGEgZnVuY3Rpb24iKSk7
CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgICAgICBl
cnJvckNhbGxiYWNrID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrOjpjcmVhdGUo
YXNPYmplY3QoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSk7CisgICAgfQorCisgICAgTmF2aWdhdG9yJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOworICAgIE5hdmlnYXRvck1lZGlhU3RyZWFtOjp3ZWJraXRHZXRVc2VyTWVkaWEoJmltcGws
IG9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgZWMpOworICAgIHNldERP
TUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggY2EzOWU2MTc1MjFjNTg5YjFjYmQwMmFmMGVkZThhOGYyMGY4OTYyMS4uMjc3YTZhYzg3
NjRmNjM5NTFiNzg3M2JhMDU5MzIxMDQ0MzFkZWM4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE0LTAzLTE5ICBUaGlhZ28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIEltcHJvdmluZyB3ZWJraXRHZXRVc2VyTWVkaWEgZXJyb3Ig
aGFuZGxpbmcgYW5kIGVycm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGVja2luZyBpZiBmaXJzdCBhcmd1bWVudCBvZiB3ZWJraXRH
ZXRVc2VyTWVkaWEgaXMgYSB2YWxpZCBEaWN0aW9uYXJ5LiBJZiBub3QsIHRocm93IGFuIGV4Y2Vw
dGlvbiB3aXRoIGEKKyAgICAgICAgY2xlYXJlciBtZXNzYWdlIG9mIHRoZSBlcnJvci4KKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzOgor
CiAyMDE0LTAzLTE5ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAg
ICAgIFtDU1NSZWdpb25zXSBDb21wdXRlIHJlZ2lvbiByYW5nZXMgZm9yIGNoaWxkcmVuIG9mIGlu
bGluZSBibG9ja3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJn
dW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9h
cmd1bWVudC10eXBlcy1leHBlY3RlZC50eHQKaW5kZXggODhmZjlkMWQwZjI2NmI0ZjAwMzIzOTY0
ZWUzNDAzNGMwNGYxNGZkYi4uMGI5NGJlNmI0NjFkZmE5ZWJjMmMxYWZkMDU0NDg1ZmY2NWFlYmI3
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVudC10eXBl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcmd1bWVu
dC10eXBlcy1leHBlY3RlZC50eHQKQEAgLTE0LDM0ICsxNCwzNCBAQCBQQVNTIG5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91ZwogUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKC1JbmZpbml0eSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIG5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkLCBlbXB0
eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00g
RXhjZXB0aW9uIDkuCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEobnVsbCwgZW1w
dHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA5LgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHVuZGVmaW5l
ZCwgZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRmlyc3QgYXJndW1l
bnQgb2Ygd2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSB2YWxpZCBEaWN0aW9uYXJ5LgorUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwsIGVtcHR5RnVuY3Rpb24pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRp
YSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeS4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7IH0sIGVtcHR5RnVuY3Rpb24pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3Vw
cG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLUZBSUwgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh0cnVlLCBlbXB0eUZ1bmN0aW9uKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yOiBOb3Qg
YW4gb2JqZWN0Li4gVGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA5LgotRkFJTCBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyLCBlbXB0
eUZ1bmN0aW9uKSBzaG91bGQgdGhyb3cgVHlwZUVycm9yOiBOb3QgYW4gb2JqZWN0Li4gVGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotRkFJ
TCBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKEluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKSBz
aG91bGQgdGhyb3cgVHlwZUVycm9yOiBOb3QgYW4gb2JqZWN0Li4gVGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotRkFJTCBuYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKC1JbmZpbml0eSwgZW1wdHlGdW5jdGlvbikgc2hvdWxkIHRocm93
IFR5cGVFcnJvcjogTm90IGFuIG9iamVjdC4uIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3Vw
cG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh0cnVlLCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBG
aXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIHZhbGlkIERpY3Rp
b25hcnkuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoNDIsIGVtcHR5RnVuY3Rp
b24pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdl
dFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeS4KK1BBU1MgbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSwgZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogRmlyc3QgYXJndW1lbnQgb2Ygd2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUg
YSB2YWxpZCBEaWN0aW9uYXJ5LgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKC1J
bmZpbml0eSwgZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRmlyc3Qg
YXJndW1lbnQgb2Ygd2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSB2YWxpZCBEaWN0aW9uYXJ5
LgogUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24sIGVtcHR5
RnVuY3Rpb24pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBF
eGNlcHRpb24gOS4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCAiZm9vYmFyIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBB
U1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB1bmRlZmluZWQp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
LVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB0cnVlKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBuYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIDQyKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRl
bzogdHJ1ZX0sIEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIC1JbmZp
bml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAiZm9vYmFyIikgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycpIHRvIE5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHVuZGVmaW5lZCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycpIHRvIE5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJndW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycpIHRvIE5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7dmlkZW86IHRydWV9LCA0MikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycpIHRvIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEg
bXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2
aWRlbzogdHJ1ZX0sIEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBt
dXN0IGJlIGEgZnVuY3Rpb24uCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3Zp
ZGVvOiB0cnVlfSwgLUluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBt
dXN0IGJlIGEgZnVuY3Rpb24uCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoeyB9
LCBlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5v
dFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCiBQQVNTIG5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbikg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKSBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1
ZSwgdmlkZW86dHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIHVuZGVmaW5lZCkgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9
LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rp
b24sICJ2aWRlbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlv
biwgInZpZGVvIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMyAoJ2Vycm9y
Q2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5j
dGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBl
bXB0eUZ1bmN0aW9uLCBudWxsKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB0cnVlKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIDQyKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIEluZmluaXR5KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIC1JbmZpbml0eSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAzICgnZXJyb3JDYWxsYmFjaycpIHRvIE5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIDQyKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAzICgnZXJyb3JDYWxsYmFjaycpIHRv
IE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFTUyBu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24s
IEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAzICgnZXJyb3JD
YWxsYmFjaycpIHRvIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0
aW9uLgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVt
cHR5RnVuY3Rpb24sIC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11
c3QgYmUgYSBmdW5jdGlvbi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwppbmRleCA0YTMxNmU4ODczZWM5NjMyN2Ew
ZDFhMjgzMGU3ZTFhZmFhYjQ3MTBmLi5hYzEzZGQ2MjZmM2Q2MGEwY2NlNWVmM2FlNDNmMDI5YzJi
N2NjZmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10
ZXN0cy9hcmd1bWVudC10eXBlcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwpAQCAtMTEsNyArMTEsMTAgQEAgZnVuY3Rp
b24gdGVzdChleHByZXNzaW9uLCBleHByZXNzaW9uU2hvdWxkVGhyb3csIGV4cGVjdGVkRXhjZXB0
aW9uKSB7CiAgICAgfQogfQogCit2YXIgZXJyb3JDYWxsYmFja0Vycm9yID0gbmV3IFR5cGVFcnJv
cigiQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpCit2YXIgaW52YWxpZERpY3Rpb25hcnlFcnJvciA9
IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRpYSBtdXN0
IGJlIGEgdmFsaWQgRGljdGlvbmFyeScpCiB2YXIgbm90U3VwcG9ydGVkRXJyb3IgPSBuZXcgRXJy
b3IoJ05vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDknKTsKK3ZhciBzdWNjZXNzQ2Fs
bGJhY2tFcnJvciA9IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2sn
KSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpCiB2
YXIgdHlwZUVycm9yID0gbmV3IFR5cGVFcnJvcignVHlwZSBlcnJvcicpOwogdmFyIHR5cGVOb3RB
bk9iamVjdEVycm9yID0gbmV3IFR5cGVFcnJvcignTm90IGFuIG9iamVjdC4nKTsKIApAQCAtMzMs
MjIgKzM2LDIyIEBAIHRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZW1wdHlGdW5j
dGlvbiknLCB0cnVlKTsKIAogLy8gMiBBcmd1bWVudHMuCiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwotdGVz
dCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rpb24p
JywgdHJ1ZSwgbm90U3VwcG9ydGVkRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYShudWxsLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIG5vdFN1cHBvcnRlZEVycm9yKTsK
K3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkLCBlbXB0eUZ1bmN0
aW9uKScsIHRydWUsIGludmFsaWREaWN0aW9uYXJ5RXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYShudWxsLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIGludmFsaWREaWN0
aW9uYXJ5RXJyb3IpOwogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7IH0sIGVt
cHR5RnVuY3Rpb24pJywgdHJ1ZSwgbm90U3VwcG9ydGVkRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh0cnVlLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIHR5cGVOb3RB
bk9iamVjdEVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoNDIsIGVt
cHR5RnVuY3Rpb24pJywgdHJ1ZSwgdHlwZU5vdEFuT2JqZWN0RXJyb3IpOwotdGVzdCgnbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlLCB0
eXBlTm90QW5PYmplY3RFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KC1JbmZpbml0eSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlLCB0eXBlTm90QW5PYmplY3RFcnJvcik7
Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHRydWUsIGVtcHR5RnVuY3Rpb24p
JywgdHJ1ZSwgaW52YWxpZERpY3Rpb25hcnlFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKDQyLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIGludmFsaWREaWN0aW9uYXJ5
RXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSwgZW1w
dHlGdW5jdGlvbiknLCB0cnVlLCBpbnZhbGlkRGljdGlvbmFyeUVycm9yKTsKK3Rlc3QoJ25hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoLUluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUs
IGludmFsaWREaWN0aW9uYXJ5RXJyb3IpOwogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYShlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIG5vdFN1cHBvcnRlZEVy
cm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwg
ImZvb2JhciIpJywgdHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdW5kZWZpbmVkKScsIHRydWUsIHR5cGVFcnJvcik7Ci10
ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIG51bGwpJywg
dHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3Zp
ZGVvOiB0cnVlfSwge30pJywgdHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdHJ1ZSknLCB0cnVlLCB0eXBlRXJyb3IpOwot
dGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCA0MiknLCB0
cnVlLCB0eXBlRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCBJbmZpbml0eSknLCB0cnVlLCB0eXBlRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAtSW5maW5pdHkpJywgdHJ1ZSwgdHlw
ZUVycm9yKTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgImZvb2JhciIpJywgdHJ1ZSwgc3VjY2Vzc0NhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCB1bmRlZmluZWQpJywgdHJ1ZSwg
c3VjY2Vzc0NhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9LCBudWxsKScsIHRydWUsIHN1Y2Nlc3NDYWxsYmFja0Vycm9yKTsKK3Rl
c3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwge30pJywgdHJ1
ZSwgc3VjY2Vzc0NhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7dmlkZW86IHRydWV9LCB0cnVlKScsIHRydWUsIHN1Y2Nlc3NDYWxsYmFja0Vycm9yKTsK
K3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgNDIpJywg
dHJ1ZSwgc3VjY2Vzc0NhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7dmlkZW86IHRydWV9LCBJbmZpbml0eSknLCB0cnVlLCBzdWNjZXNzQ2FsbGJhY2tF
cnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0s
IC1JbmZpbml0eSknLCB0cnVlLCBzdWNjZXNzQ2FsbGJhY2tFcnJvcik7CiAKIC8vIDMgQXJndW1l
bnRzLgogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7IH0sIGVtcHR5RnVuY3Rp
b24sIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSwgbm90U3VwcG9ydGVkRXJyb3IpOwpAQCAtNTYsMTIg
KzU5LDEyIEBAIHRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVl
fSwgZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbiknCiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIHVuZGVmaW5lZCknLCBm
YWxzZSk7CiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2
aWRlbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKScsIGZhbHNlKTsKIHRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9LCBlbXB0eUZ1bmN0aW9uLCB1
bmRlZmluZWQpJywgZmFsc2UpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAidmlkZW8iKScsIHRydWUsIHR5cGVFcnJvcik7
Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5
RnVuY3Rpb24sICJ2aWRlbyIpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKIHRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwg
bnVsbCknLCBmYWxzZSApOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSknLCB0cnVlLCB0eXBlRXJyb3IpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9u
LCB0cnVlKScsIHRydWUsIHR5cGVFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIDQyKScsIHRydWUsIHR5cGVFcnJv
cik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVt
cHR5RnVuY3Rpb24sIEluZmluaXR5KScsIHRydWUsIHR5cGVFcnJvcik7Ci10ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIC1JbmZp
bml0eSknLCB0cnVlLCB0eXBlRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCB7fSknLCB0cnVlLCBlcnJvckNhbGxi
YWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCBlbXB0eUZ1bmN0aW9uLCB0cnVlKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Cit0
ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVu
Y3Rpb24sIDQyKScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIEluZmluaXR5
KScsIHRydWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIC1JbmZpbml0eSknLCB0cnVl
LCBlcnJvckNhbGxiYWNrRXJyb3IpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227206</attachid>
            <date>2014-03-19 12:06:00 -0700</date>
            <delta_ts>2014-03-19 14:07:06 -0700</delta_ts>
            <desc>Requested changes</desc>
            <filename>bug-130452-20140319160537.patch</filename>
            <type>text/plain</type>
            <size>19869</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1OTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwNDNhNDE0ZGU2NDA5
OTBlODgyOWYyM2RkZmE4NGIzM2M0MGE1Mi4uYTgwYTIyNzZmZmJlMWM0MWRiZDVjZDUwYzQxZGUy
MjYwMDcyMWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAzLTE5ICBUaGlh
Z28gZGUgQmFycm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIEltcHJvdmluZyB3ZWJraXRHZXRVc2VyTWVkaWEgZXJyb3IgaGFuZGxpbmcgYW5kIGVy
cm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzA0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGVja2luZyBpZiBmaXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgaXMg
YSB2YWxpZCBEaWN0aW9uYXJ5LiBJZiBub3QsIHRocm93IGFuIGV4Y2VwdGlvbiB3aXRoIGEKKyAg
ICAgICAgY2xlYXJlciBtZXNzYWdlIG9mIHRoZSBlcnJvci4KKworICAgICAgICBUZXN0IHVwZGF0
ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFt
LmlkbDoKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogYmluZGluZ3MvanMvSlNO
YXZpZ2F0b3JDdXN0b20uY3BwOiBBZGRlZC4KKwogMjAxNC0wMy0xOSAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggY3VlIHJlbmRlcmluZyB0ZXN0IGFu
ZCBpbmNsdWRlIHN1cHBvcnQgZm9yIGxlZnQvcmlnaHQgYWxpZ25tZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJl
YW0uaWRsCmluZGV4IDBjZjIzMDc5NjE1Y2Q4MGNkZjU3NDE5NjgxNjU2MzI2OWZlZTFjMWYuLjRj
NjVjYjdhZTEyYzQzYWE0YjM5NGZmM2QzZWY0YzlmOTE2NWY4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJl
YW0uaWRsCkBAIC0yMCw3ICsyMCw3IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAogXSBwYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3IgewotICAgIFtSYWlzZXNFeGNlcHRpb25d
IHZvaWQgd2Via2l0R2V0VXNlck1lZGlhKERpY3Rpb25hcnkgb3B0aW9ucywKKyAgICBbQ3VzdG9t
LCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgd2Via2l0R2V0VXNlck1lZGlhKERpY3Rpb25hcnkgb3B0
aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
YXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIE5hdmln
YXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNt
YWtlCmluZGV4IDI4ZGNhZTRmNTRhODIyOGZkMjFmMjRlYjdkYzg5YmM1MWRlNDJkMzguLjkyMjkz
N2ZhODg5MDU0NDEzMmM3N2ZhNDE2YzMzZGMxM2JiMmQ0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1VzZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAg
LTEwOCw2ICsxMDgsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5n
cy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cAorICAgIGJpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
Y2QwMjliOGEwYTUwOTQ2MDU1ZjhjZmU0YWYzYjFhOTY0NGVmMDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKQEAgLTAs
MCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIkpTTmF2
aWdhdG9yLmgiCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIgor
I2luY2x1ZGUgIkpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCisjaW5jbHVk
ZSAiTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIEpTTmF2aWdhdG9yOjp3ZWJraXRHZXRVc2VyTWVk
aWEoRXhlY1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAy
KSB7CisgICAgICAgIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihleGVjKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAg
IERpY3Rpb25hcnkgb3B0aW9ucyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAg
IGlmICghb3B0aW9ucy5pc09iamVjdCgpKSB7CisgICAgICAgIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVUeXBlRXJyb3IoZXhlYywgIkZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRp
YSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeSIpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgaWYgKCFleGVjLT5hcmd1bWVudCgxKS5pc0Z1bmN0aW9uKCkp
IHsKKyAgICAgICAgdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiQXJn
dW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycpIHRvIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEgbXVzdCBiZSBhIGZ1bmN0aW9uIikpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICB9CisKKyAgICBKU05hdmlnYXRvciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNO
YXZpZ2F0b3IqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIFJlZlB0cjxOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrOworICAgIGlmICghZXhlYy0+YXJn
dW1lbnQoMikuaXNVbmRlZmluZWRPck51bGwoKSkgeworICAgICAgICBpZiAoIWV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDIpLmlzRnVuY3Rpb24oKSkgeworICAgICAgICAgICAgdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2sn
KSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbiIpKTsK
KyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICB9CisgICAgICAgIGVy
cm9yQ2FsbGJhY2sgPSBKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s6OmNyZWF0ZShh
c09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSksIGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpKTsKKyAgICB9CisKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxs
YmFjazo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKSwgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCkpOworICAgIE5hdmlnYXRvciYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBOYXZpZ2F0b3JNZWRpYVN0
cmVhbTo6d2Via2l0R2V0VXNlck1lZGlhKCZpbXBsLCBvcHRpb25zLCBzdWNjZXNzQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2ssIGVjKTsKKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5NDk1MzE2MjI3NWZiMjBiZWQ3
MWUzMjFiNDMzODFjZjI2ZTJiOWMuLjg3Yzc0ZjJmMDMxZDU5NjAzYzcyZjVkNDk4ODJlNzY4ODc2
OTYxZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMy0xOSAgVGhpYWdvIGRlIEJhcnJv
cyBMYWNlcmRhICA8dGhpYWdvLmxhY2VyZGFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBJbXBy
b3Zpbmcgd2Via2l0R2V0VXNlck1lZGlhIGVycm9yIGhhbmRsaW5nIGFuZCBlcnJvciBtZXNzYWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNDUy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2tp
bmcgaWYgZmlyc3QgYXJndW1lbnQgb2Ygd2Via2l0R2V0VXNlck1lZGlhIGlzIGEgdmFsaWQgRGlj
dGlvbmFyeS4gSWYgbm90LCB0aHJvdyBhbiBleGNlcHRpb24gd2l0aCBhCisgICAgICAgIGNsZWFy
ZXIgbWVzc2FnZSBvZiB0aGUgZXJyb3IuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2Fy
Z3VtZW50LXR5cGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Nj
cmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qczoKKwogMjAxNC0wMy0xOSAgQnJlbnQgRnVsZ2hh
bSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggY3VlIHJlbmRlcmluZyB0ZXN0
IGFuZCBpbmNsdWRlIHN1cHBvcnQgZm9yIGxlZnQvcmlnaHQgYWxpZ25tZW50CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FyZ3VtZW50LXR5cGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDg4ZmY5ZDFkMGYyNjZiNGYwMDMyMzk2NGVlMzQwMzRjMDRmMTRmZGIuLjBiOTRi
ZTZiNDYxZGZhOWViYzJjMWFmZDA1NDQ4NWZmNjVhZWJiNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0CkBA
IC0xNCwzNCArMTQsMzQgQEAgUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKEluZmlu
aXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWcKIFBBU1MgbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KGVtcHR5RnVuY3Rpb24pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgogUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0s
IGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHVuZGVmaW5lZCwgZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBuYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwsIGVtcHR5RnVuY3Rpb24pIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rpb24pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVzZXJNZWRp
YSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeS4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYShudWxsLCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBG
aXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIHZhbGlkIERpY3Rp
b25hcnkuCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoeyB9LCBlbXB0eUZ1bmN0
aW9uKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0
aW9uIDkuCi1GQUlMIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodHJ1ZSwgZW1wdHlGdW5j
dGlvbikgc2hvdWxkIHRocm93IFR5cGVFcnJvcjogTm90IGFuIG9iamVjdC4uIFRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLUZBSUwgbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSg0MiwgZW1wdHlGdW5jdGlvbikgc2hvdWxkIHRocm93
IFR5cGVFcnJvcjogTm90IGFuIG9iamVjdC4uIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3Vw
cG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLUZBSUwgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYShJbmZpbml0eSwgZW1wdHlGdW5jdGlvbikgc2hvdWxkIHRocm93IFR5cGVFcnJvcjog
Tm90IGFuIG9iamVjdC4uIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6
IERPTSBFeGNlcHRpb24gOS4KLUZBSUwgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5m
aW5pdHksIGVtcHR5RnVuY3Rpb24pIHNob3VsZCB0aHJvdyBUeXBlRXJyb3I6IE5vdCBhbiBvYmpl
Y3QuLiBUaHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0
aW9uIDkuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodHJ1ZSwgZW1wdHlGdW5j
dGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRmlyc3QgYXJndW1lbnQgb2Ygd2Via2l0
R2V0VXNlck1lZGlhIG11c3QgYmUgYSB2YWxpZCBEaWN0aW9uYXJ5LgorUEFTUyBuYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKDQyLCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBGaXJzdCBhcmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIHZh
bGlkIERpY3Rpb25hcnkuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoSW5maW5p
dHksIGVtcHR5RnVuY3Rpb24pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEZpcnN0IGFyZ3Vt
ZW50IG9mIHdlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeS4KK1BB
U1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHksIGVtcHR5RnVuY3Rpb24p
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEZpcnN0IGFyZ3VtZW50IG9mIHdlYmtpdEdldFVz
ZXJNZWRpYSBtdXN0IGJlIGEgdmFsaWQgRGljdGlvbmFyeS4KIFBBU1MgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCi1QQVNTIG5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgImZvb2JhciIpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRl
bzogdHJ1ZX0sIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwge30pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG5hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86
IHRydWV9LCA0MikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mg
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBJbmZpbml0eSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSwgImZvb2JhciIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
IG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
IG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAy
ICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0
IGJlIGEgZnVuY3Rpb24uCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVv
OiB0cnVlfSwge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdzdWNj
ZXNzQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBm
dW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgnc3VjY2Vzc0Nh
bGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rp
b24uCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgNDIp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdzdWNjZXNzQ2FsbGJhY2sn
KSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BB
U1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBJbmZpbml0eSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycp
IHRvIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgorUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIC1JbmZpbml0eSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3N1Y2Nlc3NDYWxsYmFjaycp
IHRvIE5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIGZ1bmN0aW9uLgogUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHsgfSwgZW1wdHlGdW5jdGlvbiwgZW1wdHlG
dW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA5LgogUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1
ZX0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgogUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5
RnVuY3Rpb24sIHVuZGVmaW5lZCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBlbXB0eUZ1
bmN0aW9uLCB1bmRlZmluZWQpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZp
bmVkKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAidmlkZW8iKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sICJ2aWRlbyIpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDMgKCdlcnJvckNhbGxiYWNrJykgdG8gTmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24uCiBQQVNTIG5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgbnVsbCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVv
OiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCBlbXB0eUZ1bmN0aW9uLCA0MikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBl
bXB0eUZ1bmN0aW9uLCBJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBl
bXB0eUZ1bmN0aW9uLCAtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwg
ZW1wdHlGdW5jdGlvbiwge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDMg
KCdlcnJvckNhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJl
IGEgZnVuY3Rpb24uCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0
cnVlfSwgZW1wdHlGdW5jdGlvbiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
IG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCA0MikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCBJbmZpbml0eSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMyAoJ2Vycm9yQ2FsbGJhY2snKSB0byBOYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAtSW5maW5pdHkp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDMgKCdlcnJvckNhbGxiYWNrJykg
dG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24uCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVz
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQt
dHlwZXMuanMKaW5kZXggNGEzMTZlODg3M2VjOTYzMjdhMGQxYTI4MzBlN2UxYWZhYWI0NzEwZi4u
YWMxM2RkNjI2ZjNkNjBhMGNjZTVlZjNhZTQzZjAyOWMyYjdjY2ZjZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQt
dHlwZXMuanMKQEAgLTExLDcgKzExLDEwIEBAIGZ1bmN0aW9uIHRlc3QoZXhwcmVzc2lvbiwgZXhw
cmVzc2lvblNob3VsZFRocm93LCBleHBlY3RlZEV4Y2VwdGlvbikgewogICAgIH0KIH0KIAordmFy
IGVycm9yQ2FsbGJhY2tFcnJvciA9IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IDMgKCdlcnJvckNh
bGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rp
b24iKQordmFyIGludmFsaWREaWN0aW9uYXJ5RXJyb3IgPSBuZXcgVHlwZUVycm9yKCdGaXJzdCBh
cmd1bWVudCBvZiB3ZWJraXRHZXRVc2VyTWVkaWEgbXVzdCBiZSBhIHZhbGlkIERpY3Rpb25hcnkn
KQogdmFyIG5vdFN1cHBvcnRlZEVycm9yID0gbmV3IEVycm9yKCdOb3RTdXBwb3J0ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA5Jyk7Cit2YXIgc3VjY2Vzc0NhbGxiYWNrRXJyb3IgPSBuZXcgVHlwZUVy
cm9yKCJBcmd1bWVudCAyICgnc3VjY2Vzc0NhbGxiYWNrJykgdG8gTmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSBtdXN0IGJlIGEgZnVuY3Rpb24iKQogdmFyIHR5cGVFcnJvciA9IG5ldyBUeXBl
RXJyb3IoJ1R5cGUgZXJyb3InKTsKIHZhciB0eXBlTm90QW5PYmplY3RFcnJvciA9IG5ldyBUeXBl
RXJyb3IoJ05vdCBhbiBvYmplY3QuJyk7CiAKQEAgLTMzLDIyICszNiwyMiBAQCB0ZXN0KCduYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSk7CiAKIC8vIDIg
QXJndW1lbnRzLgogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCBlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEodW5kZWZpbmVkLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIG5vdFN1cHBvcnRlZEVy
cm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEobnVsbCwgZW1wdHlGdW5j
dGlvbiknLCB0cnVlLCBub3RTdXBwb3J0ZWRFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHVuZGVmaW5lZCwgZW1wdHlGdW5jdGlvbiknLCB0cnVlLCBpbnZhbGlkRGlj
dGlvbmFyeUVycm9yKTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEobnVsbCwg
ZW1wdHlGdW5jdGlvbiknLCB0cnVlLCBpbnZhbGlkRGljdGlvbmFyeUVycm9yKTsKIHRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoeyB9LCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIG5v
dFN1cHBvcnRlZEVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodHJ1
ZSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlLCB0eXBlTm90QW5PYmplY3RFcnJvcik7Ci10ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIHR5
cGVOb3RBbk9iamVjdEVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
SW5maW5pdHksIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSwgdHlwZU5vdEFuT2JqZWN0RXJyb3IpOwot
dGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHksIGVtcHR5RnVuY3Rp
b24pJywgdHJ1ZSwgdHlwZU5vdEFuT2JqZWN0RXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh0cnVlLCBlbXB0eUZ1bmN0aW9uKScsIHRydWUsIGludmFsaWREaWN0aW9u
YXJ5RXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSg0MiwgZW1wdHlG
dW5jdGlvbiknLCB0cnVlLCBpbnZhbGlkRGljdGlvbmFyeUVycm9yKTsKK3Rlc3QoJ25hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoSW5maW5pdHksIGVtcHR5RnVuY3Rpb24pJywgdHJ1ZSwgaW52
YWxpZERpY3Rpb25hcnlFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KC1JbmZpbml0eSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlLCBpbnZhbGlkRGljdGlvbmFyeUVycm9y
KTsKIHRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZW1wdHlGdW5jdGlvbiwgZW1w
dHlGdW5jdGlvbiknLCB0cnVlLCBub3RTdXBwb3J0ZWRFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iu
d2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sICJmb29iYXIiKScsIHRydWUsIHR5cGVF
cnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0s
IHVuZGVmaW5lZCknLCB0cnVlLCB0eXBlRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBudWxsKScsIHRydWUsIHR5cGVFcnJvcik7Ci10ZXN0
KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHt9KScsIHRydWUs
IHR5cGVFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzog
dHJ1ZX0sIHRydWUpJywgdHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRH
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgNDIpJywgdHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgSW5maW5pdHkpJywg
dHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3Zp
ZGVvOiB0cnVlfSwgLUluZmluaXR5KScsIHRydWUsIHR5cGVFcnJvcik7Cit0ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sICJmb29iYXIiKScsIHRydWUsIHN1
Y2Nlc3NDYWxsYmFja0Vycm9yKTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSwgdW5kZWZpbmVkKScsIHRydWUsIHN1Y2Nlc3NDYWxsYmFja0Vycm9yKTsK
K3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgbnVsbCkn
LCB0cnVlLCBzdWNjZXNzQ2FsbGJhY2tFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIHt9KScsIHRydWUsIHN1Y2Nlc3NDYWxsYmFja0Vycm9y
KTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgdHJ1
ZSknLCB0cnVlLCBzdWNjZXNzQ2FsbGJhY2tFcnJvcik7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIDQyKScsIHRydWUsIHN1Y2Nlc3NDYWxsYmFja0Vy
cm9yKTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwg
SW5maW5pdHkpJywgdHJ1ZSwgc3VjY2Vzc0NhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCAtSW5maW5pdHkpJywgdHJ1ZSwgc3Vj
Y2Vzc0NhbGxiYWNrRXJyb3IpOwogCiAvLyAzIEFyZ3VtZW50cy4KIHRlc3QoJ25hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoeyB9LCBlbXB0eUZ1bmN0aW9uLCBlbXB0eUZ1bmN0aW9uKScsIHRy
dWUsIG5vdFN1cHBvcnRlZEVycm9yKTsKQEAgLTU2LDEyICs1OSwxMiBAQCB0ZXN0KCduYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIGVtcHR5
RnVuY3Rpb24pJwogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9LCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgZmFsc2UpOwogdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGVtcHR5RnVuY3Rp
b24sIHVuZGVmaW5lZCknLCBmYWxzZSk7CiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHthdWRpbzp0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKScsIGZhbHNlKTsKLXRl
c3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5j
dGlvbiwgInZpZGVvIiknLCB0cnVlLCB0eXBlRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAidmlkZW8iKScsIHRy
dWUsIGVycm9yQ2FsbGJhY2tFcnJvcik7CiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKHt2aWRlbzogdHJ1ZX0sIGVtcHR5RnVuY3Rpb24sIG51bGwpJywgZmFsc2UgKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlv
biwge30pJywgdHJ1ZSwgdHlwZUVycm9yKTsKLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdHJ1ZSknLCB0cnVlLCB0eXBlRXJy
b3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBl
bXB0eUZ1bmN0aW9uLCA0MiknLCB0cnVlLCB0eXBlRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCBJbmZpbml0eSkn
LCB0cnVlLCB0eXBlRXJyb3IpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCAtSW5maW5pdHkpJywgdHJ1ZSwgdHlwZUVycm9y
KTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1w
dHlGdW5jdGlvbiwge30pJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsKK3Rlc3QoJ25hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSwgZW1wdHlGdW5jdGlvbiwgdHJ1
ZSknLCB0cnVlLCBlcnJvckNhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSh7dmlkZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCA0MiknLCB0cnVlLCBlcnJv
ckNhbGxiYWNrRXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9LCBlbXB0eUZ1bmN0aW9uLCBJbmZpbml0eSknLCB0cnVlLCBlcnJvckNhbGxiYWNr
RXJyb3IpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9
LCBlbXB0eUZ1bmN0aW9uLCAtSW5maW5pdHkpJywgdHJ1ZSwgZXJyb3JDYWxsYmFja0Vycm9yKTsK
IAogd2luZG93LmpzVGVzdElzQXN5bmMgPSBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>