<?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>54249</bug_id>
          
          <creation_ts>2011-02-10 14:57:07 -0800</creation_ts>
          <short_desc>Throwing in an IndexedDB error or success event should lead to the transaction aborting</short_desc>
          <delta_ts>2011-02-17 13:06:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>54543</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>ager</cc>
    
    <cc>andreip</cc>
    
    <cc>antonm</cc>
    
    <cc>dgrogan</cc>
    
    <cc>hans</cc>
    
    <cc>japhet</cc>
    
    <cc>mnaganov</cc>
    
    <cc>vitalyr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>349411</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-10 14:57:07 -0800</bug_when>
    <thetext>Throwing in an IndexedDB error or success event should lead to the transaction aborting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349413</commentid>
    <comment_count>1</comment_count>
      <attachid>82054</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-10 14:59:36 -0800</bug_when>
    <thetext>Created attachment 82054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349414</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-10 15:00:33 -0800</bug_when>
    <thetext>please review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349421</commentid>
    <comment_count>3</comment_count>
      <attachid>82057</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-10 15:05:19 -0800</bug_when>
    <thetext>Created attachment 82057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351701</commentid>
    <comment_count>4</comment_count>
      <attachid>82057</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-02-15 16:10:12 -0800</bug_when>
    <thetext>Comment on attachment 82057
Patch

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

&gt; Source/WebCore/dom/EventTarget.h:154
&gt; +        virtual void uncaughtExceptionInEventHandler();

Is there any way to avoid having this function show up all the way down in EventTarget?  Alternatively, is it likely other EventTargets will find this method useful?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351709</commentid>
    <comment_count>5</comment_count>
      <attachid>82057</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-15 16:24:34 -0800</bug_when>
    <thetext>Comment on attachment 82057
Patch

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

&gt;&gt; Source/WebCore/dom/EventTarget.h:154
&gt;&gt; +        virtual void uncaughtExceptionInEventHandler();
&gt; 
&gt; Is there any way to avoid having this function show up all the way down in EventTarget?  Alternatively, is it likely other EventTargets will find this method useful?

is there a better place for it?  I don&apos;t think this is a great one, but I didn&apos;t see any other better ones either.

I&apos;m not aware of any other API that would make use of it, but it is possible one would in the future.  Are you concerned about adding yet another vtable entry?  I actually can&apos;t think of any way around putting some entry in EventTarget (even if it&apos;s something to say that it can be static casted to some other type that would have the method call on it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351714</commentid>
    <comment_count>6</comment_count>
      <attachid>82057</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-02-15 16:29:06 -0800</bug_when>
    <thetext>Comment on attachment 82057
Patch

It&apos;s just my little peeve that there are a fair number of these one-off functions in base classes that are empty or hardcoded and only overridden in one subclass.  I can&apos;t think of anything better, but I figured I should at least ask :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351757</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-15 17:24:18 -0800</bug_when>
    <thetext>Committed r78655: &lt;http://trac.webkit.org/changeset/78655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351945</commentid>
    <comment_count>8</comment_count>
      <attachid>82057</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-16 02:11:23 -0800</bug_when>
    <thetext>Comment on attachment 82057
Patch

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

&gt; Source/WebCore/bindings/v8/V8AbstractEventListener.cpp:155
&gt; +            innerTryCatch.Reset();

Just FYI: you don&apos;t need to Reset innerTryCatch---it catches all the exceptions by default (you need explicit Rethrow to propagate exception caught).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352064</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-02-16 07:45:45 -0800</bug_when>
    <thetext>Patch reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352193</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-16 11:02:09 -0800</bug_when>
    <thetext>Mikhail: in the future, you should post some context in the bug when you&apos;re reverting.  I now have absolutely no idea what the failures are and will likely need to re-land just to see what went wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352198</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-16 11:07:56 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Mikhail: in the future, you should post some context in the bug when you&apos;re reverting.  I now have absolutely no idea what the failures are and will likely need to re-land just to see what went wrong.

Never mind....the results were still available.  Please do post a few links when reverting stuff though.  Sorry for the trouble the patch caused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352206</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-16 11:13:24 -0800</bug_when>
    <thetext>Mads/Anton: Can you please take a look at this patch and see if you can tell what&apos;s wrong with it?  It&apos;s causing subtle issues in a lot of layout tests.  Most look something like this though: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Finspector-support%2Funcaught-dom3-exception.html&amp;showExpectations=true&amp;group=%40ToT%20-%20chromium.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352210</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-02-16 11:16:44 -0800</bug_when>
    <thetext>Jeremy, I&apos;m sorry. Next time I will provide links to logs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352263</commentid>
    <comment_count>14</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-16 12:37:27 -0800</bug_when>
    <thetext>I&apos;ll have a look tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352620</commentid>
    <comment_count>15</comment_count>
      <attachid>82057</attachid>
    <who name="Mads Ager">ager</who>
    <bug_when>2011-02-16 23:06:24 -0800</bug_when>
    <thetext>Comment on attachment 82057
Patch

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

&gt; Source/WebCore/bindings/v8/V8AbstractEventListener.cpp:151
&gt; +            v8::TryCatch innerTryCatch;

I think this is your behavioral change. This inner TryCatch is not verbose which means that the errors are not reported. Does it help to put in innerTryCatch.SetVerbose(true).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352628</commentid>
    <comment_count>16</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-16 23:36:54 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 82057 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82057&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8AbstractEventListener.cpp:151
&gt; &gt; +            v8::TryCatch innerTryCatch;
&gt; 
&gt; I think this is your behavioral change. This inner TryCatch is not verbose which means that the errors are not reported. Does it help to put in innerTryCatch.SetVerbose(true).

Followed up on chat.  Turns out I don&apos;t even need the inner one and everything should just work if I check whether it&apos;s been caught before the reset.  Clearly I really confused myself on this one.  :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353105</commentid>
    <comment_count>17</comment_count>
      <attachid>82849</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-17 12:43:13 -0800</bug_when>
    <thetext>Created attachment 82849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353131</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-02-17 13:06:33 -0800</bug_when>
    <thetext>Committed r78908: &lt;http://trac.webkit.org/changeset/78908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82054</attachid>
            <date>2011-02-10 14:59:36 -0800</date>
            <delta_ts>2011-02-10 15:05:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54249-20110210145935.patch</filename>
            <type>text/plain</type>
            <size>34984</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgyNTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NDA0ODA5ODFlMDMzOWFkM2M3YmNk
ZTA1MDA1Zjg3ODRhMzdmM2E2Li41MDU0N2IxNTgwZjc2ZDA5NGM3NmQ0NDY4YjI5MGI3MDY0YjIy
NjM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMTAgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhyb3dpbmcgaW4gYW4gSW5kZXhlZERCIGVycm9yIG9yIHN1Y2Nlc3MgZXZl
bnQgc2hvdWxkIGxlYWQgdG8gdGhlIHRyYW5zYWN0aW9uIGFib3J0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDI0OQorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9y
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICAgICB0ZXN0cyBuZXcgZmVhdHVyZQorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWw6CisgICAgICAgICAgICBj
bGVhbmVkIHVwICh3aGlsZSBkZWJ1Z2dpZ24gc29tZXRoaW5nIGVsc2UpCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1s
OgorICAgICAgICAgICAgYSBmZXcgYWRkaXRpb25hbCB0ZXN0cyArIGNsZWFudXAKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJv
cGFnYXRpb24uaHRtbDoKKyAgICAgICAgICAgIGEgZmV3IGFkZGl0aW9uYWwgdGVzdHMgKyBjbGVh
bnVwCisKIDIwMTEtMDItMTAgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1h
Ym9ydHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmN2U2ODBkNWEwMjFkMzNjN2NhNTk4YTVm
MzQ2OTYwNmQxMzE1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYxIEBACitUZXN0IGV4Y2VwdGlvbnMgaW4gSURCUmVxdWVzdCBoYW5kbGVycyBjYXVzZSBhYm9y
dHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCit3ZWJraXRJbmRleGVkREIub3Bl
bignbmFtZScpCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KQorc2V0VmVyc2lvblN1Y2Nlc3MoKToKK3RyYW5zID0gZXZlbnQucmVzdWx0CitQQVNTIHRyYW5z
ICE9PSBudWxsIGlzIHRydWUKK3RyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKK0RlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnLCBudWxsKQorc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQorCit0
cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQordHJhbnMub25hYm9ydCA9IHRyYW5zYWN0aW9uQWJvcnRlZDEKK3RyYW5zLm9uY29tcGxldGUg
PSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaworc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlMicsIHk6ICd6enoyJ30sICdrZXkyJykK
KworZXZlbnQucHJldmVudERlZmF1bHQoKQorVGhyb3dpbmcKKworUEFTUyBUaGUgdHJhbnNhY3Rp
b24gd2FzIGFib3J0ZWQuCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQordHJhbnMub25hYm9ydCA9IHRyYW5zYWN0aW9uQWJvcnRlZDIK
K3RyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaworc3RvcmUgPSB0
cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTog
J3p6eid9LCAna2V5JykKKworZXZlbnQucHJldmVudERlZmF1bHQoKQorVGhyb3dpbmcKKworUEFT
UyBUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQuCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtd
LCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQordHJhbnMub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrCit0cmFucy5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0
ZWQxCitzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorc3RvcmUuYWRkKHt4
OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKQorCitldmVudC5wcmV2ZW50RGVmYXVsdCgp
CitUaHJvd2luZyB3aXRoaW4gYSB0cnkgYmxvY2sKKworUEFTUyBUaGUgdHJhbnNhY3Rpb24gY29t
cGxldGVkLgordHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24u
UkVBRF9XUklURSkKK3RyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjawordHJh
bnMub25jb21wbGV0ZSA9IHRyYW5zYWN0aW9uQ29tcGxldGVkMgorc3RvcmUgPSB0cmFucy5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlMicsIHk6ICd6enoyJ30s
ICdrZXkyJykKKworZXZlbnQucHJldmVudERlZmF1bHQoKQorVGhyb3dpbmcgd2l0aGluIGEgdHJ5
IGJsb2NrCisKK1BBU1MgVGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZC4KKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NjEwMDU3OGUzODk0Yjk4NzhkMzY2Mzc5ZDIxZDVlNDZmMjNmNDk1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0
aW9uLWluLWV2ZW50LWFib3J0cy5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitk
ZXNjcmlwdGlvbigiVGVzdCBleGNlcHRpb25zIGluIElEQlJlcXVlc3QgaGFuZGxlcnMgY2F1c2Ug
YWJvcnRzLiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKSIpOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbigpCit7
CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworCisgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCit7
CisgICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7CisgICAgd2luZG93LnRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRy
YW5zICE9PSBudWxsIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QiKTsKKwor
ICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYiwgY3JlYXRlT2JqZWN0U3RvcmUpOworfQorCitm
dW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZSgpCit7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJz
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tl
eScpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgZGVidWcoIiIpOworICAgIHRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmFib3J0ID0gdHJhbnNh
Y3Rpb25BYm9ydGVkMSIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSB1bmV4
cGVjdGVkQ29tcGxldGVDYWxsYmFjayIpOworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUg
PSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKSIpOworICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY2F1c2VFeGNlcHRpb247CisgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGNhdXNlRXhjZXB0aW9u
KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZXZhbEFuZExvZygiZXZlbnQucHJldmVudERlZmF1
bHQoKSIpOworICAgIGRlYnVnKCJUaHJvd2luZyIpOworICAgIHRocm93ICJPSCBOTyEhISI7Cit9
CisKK2Z1bmN0aW9uIHRyYW5zYWN0aW9uQWJvcnRlZDEoKQoreworICAgIGRlYnVnKCIiKTsKKyAg
ICB0ZXN0UGFzc2VkKCJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQuIik7CisgICAgdHJhbnMg
PSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uYWJvcnQgPSB0cmFu
c2FjdGlvbkFib3J0ZWQyIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHVu
ZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrIik7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9y
ZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVl
c3Qub25lcnJvciA9IGNhdXNlRXhjZXB0aW9uOworfQorCitmdW5jdGlvbiB0cmFuc2FjdGlvbkFi
b3J0ZWQyKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdGVzdFBhc3NlZCgiVGhlIHRyYW5zYWN0
aW9uIHdhcyBhYm9ydGVkLiIpOworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50
cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2siKTsKKyAg
ICBldmFsQW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQxIik7
CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1
ZTInLCB5OiAnenp6Mid9LCAna2V5MicpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aHJv
d0FuZENhdGNoOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworfQorCitmdW5jdGlvbiB0aHJvd0FuZENhdGNoKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAg
ZXZhbEFuZExvZygiZXZlbnQucHJldmVudERlZmF1bHQoKSIpOworICAgIGRlYnVnKCJUaHJvd2lu
ZyB3aXRoaW4gYSB0cnkgYmxvY2siKTsKKyAgICB0cnkgeworICAgICAgICB0aHJvdyAiQUhISCI7
CisgICAgfSBjYXRjaCAoZSkgeworICAgIH0KK30KKworZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21w
bGV0ZWQxKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdGVzdFBhc3NlZCgiVGhlIHRyYW5zYWN0
aW9uIGNvbXBsZXRlZC4iKTsKKyAgICB0cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJh
bnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgZXZh
bEFuZExvZygidHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrIik7CisgICAg
ZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHRyYW5zYWN0aW9uQ29tcGxldGVkMiIpOwor
ICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUy
JywgeTogJ3p6ejInfSwgJ2tleTInKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBl
Y3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB0aHJvd0FuZENhdGNo
OworfQorCitmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlZDIoKQoreworICAgIGRlYnVnKCIi
KTsKKyAgICB0ZXN0UGFzc2VkKCJUaGUgdHJhbnNhY3Rpb24gY29tcGxldGVkLiIpOworICAgIGRl
YnVnKCIiKTsKKyAgICBkb25lKCk7Cit9CisKK3Rlc3QoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3Rl
ZC50eHQKaW5kZXggNzZjMTA3NDZjNjBhYTNjYzllYzE2MjFmY2RjZmUzNGRjNjVmZDU0NC4uZWIw
YTNiN2U5ODZmNWFiNDk1YjkyNDE2ZjkxNjc3ZTFjOWZhNjcxMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtZXhwZWN0ZWQu
dHh0CkBAIC00LDk5ICs0LDIxIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogd2Via2l0
SW5kZXhlZERCLm9wZW4oJ25hbWUnKQotUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1
ZQotUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGlu
IHJlc3VsdCBpcyB0cnVlCi1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCi0KLVN1Y2Nl
c3MgZXZlbnQgZmlyZWQ6Ci1QQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKLVBBU1MgJ2Nv
ZGUnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQot
UEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCi1QQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxs
IGlzIHRydWUKLVBBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1Mg
J29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVu
dC50YXJnZXQuRE9ORQotCiBkYiA9IGV2ZW50LnJlc3VsdAogZGIuc2V0VmVyc2lvbignbmV3IHZl
cnNpb24nKQotUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQotUEFTUyAnb25lcnJv
cicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVl
Ci1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCi0KIHNldFZlcnNpb25TdWNjZXNzKCk6
Ci1TdWNjZXNzIGV2ZW50IGZpcmVkOgotUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCi1Q
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQotUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKLVBBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCi1QQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
Ci1QQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0
ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUg
aXMgZXZlbnQudGFyZ2V0LkRPTkUKLQogdHJhbnMgPSBldmVudC5yZXN1bHQKIFBBU1MgdHJhbnMg
IT09IG51bGwgaXMgdHJ1ZQogRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KLWRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQotc3RvcmUuYWRkKHt4
OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQotUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3Rh
dGUnIGluIHJlc3VsdCBpcyB0cnVlCi1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCiAK
K0FkZGluZyAzIGtleXMuIFdlIHNob3VsZCBnZXQgMyBzdWNjZXNzZXMuCitzdG9yZS5hZGQoe3g6
ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZTInLCB5OiAn
enp6Mid9LCAna2V5MicpCi1QQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNT
ICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0
IGlzIHRydWUKLUFuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KLQogc3RvcmUucHV0KHt4
OiAndmFsdTInLCB5OiAnenoyJ30sICdreTInKQotUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3Rh
dGUnIGluIHJlc3VsdCBpcyB0cnVlCi1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCi0K
LVN1Y2Nlc3MgZXZlbnQgZmlyZWQ6Ci1QQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKLVBB
U1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBm
YWxzZQotUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCi1QQVNTIGV2ZW50LnNvdXJjZSAh
PSBudWxsIGlzIHRydWUKLVBBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
LVBBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRl
JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBp
cyBldmVudC50YXJnZXQuRE9ORQotCiBQQVNTIDAgaXMgMAotU3VjY2VzcyBldmVudCBmaXJlZDoK
LVBBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyAnY29kZScgaW4gZXZlbnQgaXMg
ZmFsc2UKLVBBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdzb3VyY2UnIGlu
IGV2ZW50IGlzIHRydWUKLVBBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQotUEFTUyAn
b25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCi1QQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCi0K
IFBBU1MgMSBpcyAxCi1TdWNjZXNzIGV2ZW50IGZpcmVkOgotUEFTUyAncmVzdWx0JyBpbiBldmVu
dCBpcyB0cnVlCi1QQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQotUEFTUyAnbWVzc2FnZScg
aW4gZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyBl
dmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCi1QQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFT
UyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKLQogUEFTUyAyIGlzIDIKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMuaHRtbAppbmRleCBkNDhjYjUyMjA4MWMwN2Q3NmEzYmE4
ZjJkNDY5NGNkZjMxNWRkYTcwLi4zMmYxYThlZGFmYzBlYjM5N2VmNDYzOGI0OWE1YjUwNmY2MTlh
NTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29t
bWFuZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29t
bWFuZHMuaHRtbApAQCAtMTcsMTggKzE3LDE1IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ3ZWJr
aXRJbmRleGVkREIub3BlbignbmFtZScpIik7Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAg
ICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247CiAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbigpCiB7Ci0g
ICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKICAgICBkYiA9IGV2YWxBbmRMb2coImRiID0g
ZXZlbnQucmVzdWx0Iik7CiAKICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9u
KCduZXcgdmVyc2lvbicpIik7Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0
Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CiB9CkBAIC0zNiw3ICszMyw2IEBAIGZ1bmN0aW9uIHNldFZlcnNp
b24oKQogZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQogewogICAgIGRlYnVnKCJzZXRWZXJzaW9u
U3VjY2VzcygpOiIpOwotICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CiAgICAgd2luZG93
LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsKICAgICBzaG91bGRC
ZVRydWUoInRyYW5zICE9PSBudWxsIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOwpAQCAtNDYsMjEgKzQyLDIxIEBAIGZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5n
KCkKIAogZnVuY3Rpb24gY3JlYXRlSW5kZXgoKQogewotICAgIHdpbmRvdy5zdG9yZSA9IGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHdp
bmRvdy5zdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KSIpOwogICAgIHdpbmRvdy5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUlu
ZGV4KCdpbmRleE5hbWUnLCAneCcpIik7CiAKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIkFk
ZGluZyAzIGtleXMuIFdlIHNob3VsZCBnZXQgMyBzdWNjZXNzZXMuIik7CisKICAgICByZXN1bHQg
PSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpIik7
Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKCkgeyB2ZXJpZnlBZGQoMCk7IH07CiAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKIAogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDog
J3ZhbHVlMicsIHk6ICd6enoyJ30sICdrZXkyJykiKTsKLSAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7IHZlcmlmeUFkZCgxKTsgfTsK
ICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogCiAgICAgcmVz
dWx0ID0gZXZhbEFuZExvZygic3RvcmUucHV0KHt4OiAndmFsdTInLCB5OiAnenoyJ30sICdreTIn
KSIpOwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpIHsgdmVyaWZ5QWRkKDIpOyB9OwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CiAKQEAgLTY5LDcgKzY1LDYgQEAgZnVuY3Rpb24gY3JlYXRlSW5k
ZXgoKQogCiBmdW5jdGlvbiB2ZXJpZnlBZGQoZXhwZWN0ZWQpCiB7Ci0gICAgdmVyaWZ5U3VjY2Vz
c0V2ZW50KGV2ZW50KTsKICAgICBzaG91bGRCZSgiIiArIGFkZENvdW50KyssICIiICsgZXhwZWN0
ZWQpOwogCiAgICAgaWYgKGFkZENvdW50ID09IDMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24t
ZXhwZWN0ZWQudHh0CmluZGV4IGRlZGE2YTcwN2JlODQ2MjFlNzgwMjFjNmJkNjUzZDA1ZGZkNGUy
MDQuLmZjNTdhNTI4NTk5MDhmNzk4ZGQyNGZjMGNlZTIwZGRlYTFhYjQyZjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3Qt
ZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00LDQxICs0LDkgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogCiB3ZWJraXRJbmRleGVkREIub3BlbignbmFtZScpCi1QQVNTICdv
bnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMg
dHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKLUFuIGV2ZW50IHNob3Vs
ZCBmaXJlIHNob3J0bHkuLi4KLQotU3VjY2VzcyBldmVudCBmaXJlZDoKLVBBU1MgJ3Jlc3VsdCcg
aW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ21l
c3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUK
LVBBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQotUEFTUyAnb25zdWNjZXNzJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTIGV2ZW50
LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCi0KIGRiID0gZXZlbnQucmVz
dWx0CiBkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1QQVNTICdvbnN1Y2Nlc3MnIGluIHJl
c3VsdCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQotUEFTUyAncmVh
ZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKLUFuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHku
Li4KLQogc2V0VmVyc2lvblN1Y2Nlc3MoKToKLVN1Y2Nlc3MgZXZlbnQgZmlyZWQ6Ci1QQVNTICdy
ZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKLVBBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCi1Q
QVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQotUEFTUyAnc291cmNlJyBpbiBldmVudCBp
cyB0cnVlCi1QQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKLVBBU1MgJ29uc3VjY2Vz
cycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFT
UyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQotCiB0cmFucyA9
IGV2ZW50LnJlc3VsdAogUEFTUyB0cmFucyAhPT0gbnVsbCBpcyB0cnVlCiB0cmFucy5vbmNvbXBs
ZXRlID0gc3RhcnRUZXN0CkBAIC03Nyw2ICs0NSw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIGZh
bHNlCiBQQVNTIHJlcXVlc3RGaXJlZCBpcyBmYWxzZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxz
ZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1
ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQgaXMgZGIKIAogSW4gSURCVHJhbnNhY3Rpb24g
ZXJyb3IgY2FwdHVyZQogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCkBAIC04NCw2ICs1NCw4
IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCiBQQVNTIHJlcXVlc3RGaXJlZCBpcyBmYWxz
ZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZhbHNl
CitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQg
aXMgdHJhbnMKIAogSW4gSURCUmVxdWVzdCBoYW5kbGVyCiBQQVNTIGRiQ2FwdHVyZUZpcmVkIGlz
IHRydWUKQEAgLTkxLDYgKzYzLDggQEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyBy
ZXF1ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJC
dWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgcmVxdWVzdAorUEFTUyBl
dmVudC5jdXJyZW50VGFyZ2V0IGlzIHJlcXVlc3QKIAogSW4gSURCVHJhbnNhY3Rpb24gZXJyb3Ig
YnViYmxlCiBQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRydWUKQEAgLTk4LDYgKzcyLDggQEAgUEFT
UyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMgdHJ1ZQogUEFTUyBi
dWJibGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGV2
ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQgaXMgdHJhbnMK
IAogSW4gSURCRGF0YWJhc2UgZXJyb3IgYnViYmxlCiBQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRy
dWUKQEAgLTEwNSw2ICs4MSw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgcmVx
dWVzdEZpcmVkIGlzIHRydWUKIFBBU1MgYnViYmxlRmlyZWQgaXMgdHJ1ZQogUEFTUyBkYkJ1YmJs
ZUZpcmVkIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50
LmN1cnJlbnRUYXJnZXQgaXMgZGIKIAogVHJhbnNhY3Rpb24gYWJvcnRlZAogUEFTUyBkYkNhcHR1
cmVGaXJlZCBpcyB0cnVlCkBAIC0xMzgsNiArMTE2LDggQEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMg
ZmFsc2UKIFBBU1MgcmVxdWVzdEZpcmVkIGlzIGZhbHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZh
bHNlCiBQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHJl
cXVlc3QKK1BBU1MgZXZlbnQuY3VycmVudFRhcmdldCBpcyBkYgogCiBJbiBJREJUcmFuc2FjdGlv
biBzdWNjZXNzIGNhcHR1cmUKIFBBU1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQpAQCAtMTQ1LDYg
KzEyNSw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCiBQQVNTIHJlcXVlc3RGaXJlZCBp
cyBmYWxzZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlz
IGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRU
YXJnZXQgaXMgdHJhbnMKIAogSW4gSURCUmVxdWVzdCBoYW5kbGVyCiBQQVNTIGRiQ2FwdHVyZUZp
cmVkIGlzIHRydWUKQEAgLTE1Miw2ICsxMzQsOCBAQCBQQVNTIGNhcHR1cmVGaXJlZCBpcyB0cnVl
CiBQQVNTIHJlcXVlc3RGaXJlZCBpcyBmYWxzZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQog
UEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0
CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQgaXMgcmVxdWVzdAogCiBUcmFuc2FjdGlvbiBjb21w
bGV0ZWQKIFBBU1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1s
CmluZGV4IDg3ZjZhMmQ5YjI2MGVkZDMzNTUyN2Y1OWI0MzJlNDAxM2NkNjJiMGQuLjA3NDA2YjZm
OGY5YmQ2MWNiOGI5NjQ4NjY4OWJlY2IxZDM3MDg1M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0
bWwKQEAgLTE2LDI3ICsxNiwyMyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ3ZWJraXRJbmRl
eGVkREIub3BlbignbmFtZScpIik7Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7Ci0gICAgcmVz
dWx0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhl
ZERCLm9wZW4oJ25hbWUnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsK
KyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVu
Y3Rpb24gc2V0VmVyc2lvbigpCiB7Ci0gICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKICAg
ICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQucmVzdWx0Iik7CiAKLSAgICByZXN1bHQgPSBl
dmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgdmVyaWZ5UmVz
dWx0KHJlc3VsdCk7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAg
IHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCiB7CiAg
ICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgdmVyaWZ5U3VjY2Vzc0V2ZW50
KGV2ZW50KTsKICAgICB3aW5kb3cudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnJl
c3VsdCIpOwogICAgIHNob3VsZEJlVHJ1ZSgidHJhbnMgIT09IG51bGwiKTsKICAgICB0cmFucy5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CkBAIC00OCw4ICs0NCw4IEBAIGZ1bmN0
aW9uIGRlbGV0ZUV4aXN0aW5nKCkKIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlKCkKIHsKICAg
ICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScsIG51bGwpIik7Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAn
dmFsdWUnLCB5OiAnenp6J30sICdrZXknKSIpOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7
eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKQEAgLTYw
LDggKzU2LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkKICAgICBldmFsQW5kTG9nKCJ0cmFucy5v
bmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2siKTsKICAgICBldmFsQW5kTG9n
KCJ0cmFucy5vbmVycm9yID0gYWxsb3dEZWZhdWx0Iik7CiAgICAgc3RvcmUgPSBldmFsQW5kTG9n
KCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwotICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsK
LSAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdr
ZXknKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFj
azsKICAgICBoYW5kbGVyRmlyZWQgPSBmYWxzZTsKIH0KIApAQCAtODksOSArODUsOSBAQCBmdW5j
dGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQoKQogICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlz
dGVuZXIoJ3N1Y2Nlc3MnLCB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrLCB0cnVlKSIpOwogICAg
IGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCB1bmV4cGVjdGVkU3Vj
Y2Vzc0NhbGxiYWNrLCBmYWxzZSkiKTsKICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0g
dHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExv
Zygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKSIpOwotICAgIHJlc3Vs
dC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwotICAgIHJlc3VsdC5vbmVy
cm9yID0gZXJyb3JGaXJlZENhbGxiYWNrOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9y
ZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9
IGVycm9yRmlyZWRDYWxsYmFjazsKICAgICBkYkNhcHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIGNh
cHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIHJlcXVlc3RGaXJlZCA9IGZhbHNlOwpAQCAtMTA4LDYg
KzEwNCw4IEBAIGZ1bmN0aW9uIGRiRXJyb3JDYXB0dXJlQ2FsbGJhY2soKQogICAgIHNob3VsZEJl
RmFsc2UoInJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7
CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlKCJldmVu
dC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0
IiwgImRiIik7CiAgICAgZGJDYXB0dXJlRmlyZWQgPSB0cnVlOwogfQogCkBAIC0xMjAsNiArMTE4
LDggQEAgZnVuY3Rpb24gZXJyb3JDYXB0dXJlQ2FsbGJhY2soKQogICAgIHNob3VsZEJlRmFsc2Uo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgInRy
YW5zIik7CiAgICAgY2FwdHVyZUZpcmVkID0gdHJ1ZTsKIH0KIApAQCAtMTMyLDYgKzEzMiw4IEBA
IGZ1bmN0aW9uIGVycm9yRmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVz
dEZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91bGRC
ZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJy
ZXF1ZXN0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAicmVxdWVzdCIp
OwogICAgIHJlcXVlc3RGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTE0NCw2ICsxNDYsOCBAQCBmdW5j
dGlvbiBlcnJvckJ1YmJsZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZVRydWUoInJlcXVlc3RGaXJl
ZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiZGJCdWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVz
dCIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgInRyYW5zIik7CiAgICAg
YnViYmxlRmlyZWQgPSB0cnVlOwogfQogCkBAIC0xNTYsNiArMTYwLDggQEAgZnVuY3Rpb24gZGJF
cnJvckJ1YmJsZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZVRydWUoInJlcXVlc3RGaXJlZCIpOwog
ICAgIHNob3VsZEJlVHJ1ZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1
YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJyZXF1ZXN0Iik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAiZGIiKTsKICAgICBkYkJ1YmJsZUZp
cmVkID0gdHJ1ZTsKIH0KIApAQCAtMTg2LDkgKzE5Miw5IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9u
QWJvcnRlZDIoKQogICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2ssIHRydWUpIik7CiAgICAgZXZhbEFuZExvZygiZGIuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaywgZmFsc2UpIik7
CiAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKSIpOwotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVl
JywgeTogJ3p6eid9LCAna2V5MicpIik7Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLSAgICByZXN1bHQub25zdWNjZXNzID0gc3VjY2Vzc0ZpcmVkQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTog
J3p6eid9LCAna2V5MicpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzdWNjZXNzRmlyZWRDYWxsYmFjazsK
ICAgICBkYkNhcHR1cmVGaXJlZCA9IGZhbHNlOwogICAgIGNhcHR1cmVGaXJlZCA9IGZhbHNlOwog
ICAgIHJlcXVlc3RGaXJlZCA9IGZhbHNlOwpAQCAtMjA1LDYgKzIxMSw4IEBAIGZ1bmN0aW9uIGRi
U3VjY2Vzc0NhcHR1cmVDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVzdEZpcmVk
Iik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNl
KCJkYkJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJyZXF1ZXN0
Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAiZGIiKTsKICAgICBkYkNh
cHR1cmVGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTIxNyw2ICsyMjUsOCBAQCBmdW5jdGlvbiBzdWNj
ZXNzQ2FwdHVyZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsK
ICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRi
QnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgInJlcXVlc3QiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwogICAgIGNhcHR1
cmVGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTIyOSw2ICsyMzksOCBAQCBmdW5jdGlvbiBzdWNjZXNz
RmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVzdEZpcmVkIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJs
ZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJyZXF1ZXN0Iik7CisgICAg
c2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAicmVxdWVzdCIpOwogICAgIHJlcXVlc3RG
aXJlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVj
dGVkLnR4dAppbmRleCA5ZDA0YjBhMDY5NzRhNDljYWM1NGM0OTlhYWE1NGFjNGY2MzYxYjE1Li44
NDQ0YjlkOTI2YzEwM2RlNTA0NjkwMDY3YmVlZThmZjA4NDBkMDk1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00LDE4ICs0LDggQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogCiB3ZWJraXRJbmRleGVkREIub3BlbignbmFtZScpCi1QQVNT
ICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiByZXN1bHQg
aXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKLUFuIGV2ZW50IHNo
b3VsZCBmaXJlIHNob3J0bHkuLi4KLQogZGIgPSBldmVudC5yZXN1bHQKIGRiLnNldFZlcnNpb24o
J25ldyB2ZXJzaW9uJykKLVBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1Mg
J29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQg
aXMgdHJ1ZQotQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgotCiB0cmFucyA9IGV2ZW50
LnJlc3VsdAogUEFTUyB0cmFucyAhPT0gbnVsbCBpcyB0cnVlCiB0cmFucy5vbmNvbXBsZXRlID0g
c3RhcnRUZXN0CkBAIC0zNywxNiArMjcsMjIgQEAgSW4gSURCRGF0YWJhc2UgYWJvcnQgY2FwdHVy
ZQogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyBmYWxzZQogUEFTUyBhYm9ydEZpcmVkIGlzIGZhbHNl
CiBQQVNTIGRiQnViYmxlRmlyZWQxIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyB0cmFu
cworUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIGRiCiAKIEluIGFib3J0IGhhbmRsZXIKIFBB
U1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyBhYm9ydEZpcmVkIGlzIGZhbHNlCiBQQVNT
IGRiQnViYmxlRmlyZWQxIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyB0cmFucworUEFT
UyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIHRyYW5zCiAKIEluIElEQkRhdGFiYXNlIGVycm9yIGJ1
YmJsZQogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCiBQQVNTIGFib3J0RmlyZWQgaXMgdHJ1
ZQogUEFTUyBkYkJ1YmJsZUZpcmVkMSBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgdHJh
bnMKK1BBU1MgZXZlbnQuY3VycmVudFRhcmdldCBpcyBkYgogCiBWZXJpZmluZyBzdWNjZXNzLgog
dHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKQEAgLTY3LDExICs2MywxNSBAQCBJbiBJREJEYXRhYmFzZSBjb21wbGV0ZSBjYXB0dXJlCiBQ
QVNTIGRiQ2FwdHVyZUZpcmVkIGlzIGZhbHNlCiBQQVNTIGNvbXBsZXRlRmlyZWQgaXMgZmFsc2UK
IFBBU1MgZGJCdWJibGVGaXJlZDIgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHRyYW5z
CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQgaXMgZGIKIAogSW4gSURCUmVxdWVzdCBoYW5kbGVy
CiBQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgY29tcGxldGVGaXJlZCBpcyBmYWxz
ZQogUEFTUyBkYkJ1YmJsZUZpcmVkMiBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgdHJh
bnMKK1BBU1MgZXZlbnQuY3VycmVudFRhcmdldCBpcyB0cmFucwogCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sCmluZGV4IGMz
MTY0NmFiMGQzZjMyMTRkMGI4YzY0NDI3YWVmOWMzNGNkZTJjNTUuLmUwMTU2MmE5MzA3ODMyOWM5
ODVjZmI5ZTU3OWFjODNhNDEwMjRkYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRt
bApAQCAtMTYsMjAgKzE2LDE4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAK
IGZ1bmN0aW9uIHRlc3QoKQogewotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4
ZWREQi5vcGVuKCduYW1lJykiKTsKLSAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKLSAgICByZXN1
bHQub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ3ZWJraXRJbmRleGVk
REIub3BlbignbmFtZScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5j
dGlvbiBzZXRWZXJzaW9uKCkKIHsKICAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQucmVz
dWx0Iik7CiAKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVy
c2lvbicpIik7Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7Ci0gICAgcmVzdWx0Lm9uc3VjY2Vz
cyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2
ZXJzaW9uJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5jdGlv
biBkZWxldGVFeGlzdGluZygpCkBAIC00NSw4ICs0Myw4IEBAIGZ1bmN0aW9uIGRlbGV0ZUV4aXN0
aW5nKCkKIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlKCkKIHsKICAgICBzdG9yZSA9IGV2YWxB
bmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7
Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6
J30sICdrZXknKSIpOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTog
J3p6eid9LCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKIH0KIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKQEAgLTczLDYgKzcxLDggQEAgZnVu
Y3Rpb24gZGJBYm9ydENhcHR1cmVDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVGYWxzZSgiZGJDYXB0
dXJlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJhYm9ydEZpcmVkIik7CiAgICAgc2hvdWxk
QmVGYWxzZSgiZGJCdWJibGVGaXJlZDEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0Iiwg
InRyYW5zIik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAiZGIiKTsKICAg
ICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTgzLDYgKzgzLDggQEAgZnVuY3Rpb24g
YWJvcnRGaXJlZENhbGxiYWNrKCkKICAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7
CiAgICAgc2hvdWxkQmVGYWxzZSgiYWJvcnRGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRi
QnViYmxlRmlyZWQxIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJ0cmFucyIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgInRyYW5zIik7CiAgICAgYWJvcnRG
aXJlZCA9IHRydWU7CiB9CiAKQEAgLTkzLDYgKzk1LDggQEAgZnVuY3Rpb24gZGJBYm9ydEJ1YmJs
ZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7CiAgICAgc2hv
dWxkQmVUcnVlKCJhYm9ydEZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJl
ZDEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgInRyYW5zIik7CisgICAgc2hvdWxk
QmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAiZGIiKTsKICAgICBkYkJ1YmJsZUZpcmVkMSA9IHRy
dWU7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKCJWZXJpZmluZyBzdWNjZXNzLiIpOwpAQCAt
MTIxLDYgKzEyNSw4IEBAIGZ1bmN0aW9uIGRiQ29tcGxldGVDYXB0dXJlQ2FsbGJhY2soKQogICAg
IHNob3VsZEJlRmFsc2UoImRiQ2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiY29t
cGxldGVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQyIik7CisgICAg
c2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJ0cmFucyIpOworICAgIHNob3VsZEJlKCJldmVudC5j
dXJyZW50VGFyZ2V0IiwgImRiIik7CiAgICAgZGJDYXB0dXJlRmlyZWQgPSB0cnVlOwogfQogCkBA
IC0xMzEsNiArMTM3LDggQEAgZnVuY3Rpb24gY29tcGxldGVGaXJlZENhbGxiYWNrKCkKICAgICBz
aG91bGRCZVRydWUoImRiQ2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiY29tcGxl
dGVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQyIik7CisgICAgc2hv
dWxkQmUoImV2ZW50LnRhcmdldCIsICJ0cmFucyIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJy
ZW50VGFyZ2V0IiwgInRyYW5zIik7CiAgICAgY29tcGxldGVGaXJlZCA9IHRydWU7CiAgICAgZGVi
dWcoIiIpOwogICAgIGRvbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTIyYWZkZTRhOWVjMmY0MTc0MDA0
ZmY1YWZlMDJiYmQ0Y2VmOGE4Li4xMWU3YTkyNGFiMTQxYWMzY2Y5MmQyZDhkMzMzNTY0MGQ1ZDVi
ZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMTAgIEplcmVteSBPcmxv
dyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhyb3dpbmcgaW4gYW4gSW5kZXhlZERCIGVycm9yIG9yIHN1Y2Nl
c3MgZXZlbnQgc2hvdWxkIGxlYWQgdG8gdGhlIHRyYW5zYWN0aW9uIGFib3J0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDI0OQorCisgICAgICAg
IFdoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93biBidXQgbm90IGhhbmRsZWQgIHdpdGhpbiBhbiBJ
REJSZXF1ZXN0cyBzdWNjZXNzL2Vycm9yIGV2ZW50LAorICAgICAgICB3ZSBzaG91bGQgYWJvcnQg
dGhlIHRyYW5zYWN0aW9uLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2V4Y2Vw
dGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxl
RXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50
TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6
Omludm9rZUV2ZW50SGFuZGxlcik6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0Ojp1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lE
QlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6dW5jYXVnaHRFeGNl
cHRpb25JbkV2ZW50SGFuZGxlcik6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0Lmg6CisK
IDIwMTEtMDItMTAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG5va2lhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNjQyNzY4M2Y0MmU2MzQ4YjZiM2Zi
YjdlMzEwYzgwZmJhNmRhZGQ5OC4uZWQ3NGJlZTJjMTNlNWU4NzZmMjcwODE5ODlhMDIzNTIzYjJi
MWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwCkBAIC0xMjcsOSArMTI3LDEwIEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAKICAgICAg
ICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2ZWRFdmVudCk7CiAKLSAgICAgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgIGV2ZW50LT50YXJnZXQoKS0+dW5jYXVnaHRFeGNlcHRpb25JbkV2
ZW50SGFuZGxlcigpOwogICAgICAgICAgICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihleGVjKTsK
LSAgICAgICAgZWxzZSB7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoIXJldHZh
bC5pc1VuZGVmaW5lZE9yTnVsbCgpICYmIGV2ZW50LT5zdG9yZXNSZXN1bHRBc1N0cmluZygpKQog
ICAgICAgICAgICAgICAgIGV2ZW50LT5zdG9yZVJlc3VsdCh1c3RyaW5nVG9TdHJpbmcocmV0dmFs
LnRvU3RyaW5nKGV4ZWMpKSk7CiAgICAgICAgICAgICBpZiAobV9pc0F0dHJpYnV0ZSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAppbmRleCAwNGJlMTc1
ZWNjYjkwMzI1N2EzOTI0NGIyNGViZDJiNTM5ZTRkMTNhLi5lNGQ2NzI0ZTI3YmJmMmUyZGEwZjY3
YTVmYThjMzBkMWM4NjYyNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50VGFyZ2V0LmNwcApAQCAtMTYwLDggKzE2MCwxNCBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFy
ZwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoSURCRGF0
YWJhc2UqIGlkYkRhdGFiYXNlID0gdGFyZ2V0LT50b0lEQkRhdGFiYXNlKCkpCisgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGlkYkRhdGFiYXNlKTsKKwogICAgIGlmIChJREJSZXF1ZXN0KiBpZGJS
ZXF1ZXN0ID0gdGFyZ2V0LT50b0lEQlJlcXVlc3QoKSkKICAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgaWRiUmVxdWVzdCk7CisKKyAgICBpZiAoSURCVHJhbnNhY3Rpb24qIGlkYlRyYW5zYWN0aW9u
ID0gdGFyZ2V0LT50b0lEQlRyYW5zYWN0aW9uKCkpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGlkYlRyYW5zYWN0aW9uKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVy
LmNwcAppbmRleCBiZGE0MzQ1NzVkMzMyMmQzZWY2NDYzNzVhNGFkNTgxY2I0YWE1ZDQzLi43ZmFh
ZDA3MWFkOTE2ZjA2M2VlZDRlNGMzYmFhNGIzNDQ5YjZlMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCkBAIC0x
NDcsOCArMTQ3LDE0IEBAIHZvaWQgVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6Omludm9rZUV2ZW50
SGFuZGxlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiAgICAgICAgIHY4Q29udGV4
dC0+R2xvYmFsKCktPlNldEhpZGRlblZhbHVlKGV2ZW50U3ltYm9sLCBqc0V2ZW50KTsKICAgICAg
ICAgdHJ5Q2F0Y2guUmVzZXQoKTsKIAotICAgICAgICAvLyBDYWxsIHRoZSBldmVudCBoYW5kbGVy
LgotICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKGNvbnRleHQsIGpz
RXZlbnQsIGV2ZW50KTsKKyAgICAgICAgeworICAgICAgICAgICAgdjg6OlRyeUNhdGNoIGlubmVy
VHJ5Q2F0Y2g7CisgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGNhbGxMaXN0ZW5lckZ1bmN0aW9u
KGNvbnRleHQsIGpzRXZlbnQsIGV2ZW50KTsKKyAgICAgICAgICAgIGlmIChpbm5lclRyeUNhdGNo
Lkhhc0NhdWdodCgpKQorICAgICAgICAgICAgICAgIGV2ZW50LT50YXJnZXQoKS0+dW5jYXVnaHRF
eGNlcHRpb25JbkV2ZW50SGFuZGxlcigpOworICAgICAgICAgICAgaW5uZXJUcnlDYXRjaC5SZXNl
dCgpOworICAgICAgICB9CisKICAgICAgICAgaWYgKCF0cnlDYXRjaC5DYW5Db250aW51ZSgpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCBl
ZDU5OTVjZDBkMmNkOWI0NzVkNzU4NjNjM2FjNDk5ZGVhZmIwZmZmLi43ODMxYjM4MTJhNWQ1NjIw
NWY1Mzc3NTZmNzJiZWMwMzNhYmViZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAK
QEAgLTMwMSw2ICszMDEsMTAgQEAgYm9vbCBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiBldmVudCkKICAgICByZXR1cm4gZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50
LmdldCgpKTsKIH0KIAordm9pZCBFdmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50
SGFuZGxlcigpCit7Cit9CisKIGJvb2wgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyhF
dmVudCogZXZlbnQpCiB7CiAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBhMDM4MDFiY2JkNTAwZTRkYmNlODk1MWNkNDc2
YjRkM2Q3MDhhOGIzLi43OWVlNjU5OGViMTQ3NjZkYmVlMWEwZjM1NTAzOTU2NDYzN2QzYmZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTUxLDYgKzE1MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsK
ICAgICAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBFeGNlcHRpb25D
b2RlJik7IC8vIERPTSBBUEkKKyAgICAgICAgdmlydHVhbCB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9u
SW5FdmVudEhhbmRsZXIoKTsKIAogICAgICAgICAvLyBVc2VkIGZvciBsZWdhY3kgIm9uRXZlbnQi
IGF0dHJpYnV0ZSBBUElzLgogICAgICAgICBib29sIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKaW5kZXggZTI1NDY0YWZkZTM5ZmMw
Y2QyMmEzZDBkY2Q1ZGJhNjRkOGFjODExOS4uZDA0YWVmZWMwMmM1ZDZlM2ZjODA0ZWI0NWZmNzhk
M2ZlYWQyMDE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC0xNjMs
NiArMTYzLDEyIEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiBldmVudCkKICAgICByZXR1cm4gZG9udFByZXZlbnREZWZhdWx0OwogfQogCit2b2lkIElE
QlJlcXVlc3Q6OnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKQoreworICAgIGlmICht
X3RyYW5zYWN0aW9uKQorICAgICAgICBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCktPmFib3J0KCk7
Cit9CisKIHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogewogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPCBET05FKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJSZXF1ZXN0LmgKaW5kZXggMmM1ZjQ1NDVhMzhjYzFhM2U0MjI2OTg2NTY5MGQzOWI0OGQy
ZGNkNS4uZTRmOTQ5MGJlYjVkMDc3NDlhOTI1MmRlMDQ5NjJkYTI5NDdjMDA4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKQEAgLTc1LDYgKzc1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsK
ICAgICBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIEV4Y2VwdGlv
bkNvZGUmIGVjKSB7IHJldHVybiBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCwgZWMp
OyB9CisgICAgdmlydHVhbCB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsK
IAogICAgIHVzaW5nIFRocmVhZFNhZmVTaGFyZWQ8SURCQ2FsbGJhY2tzPjo6cmVmOwogICAgIHVz
aW5nIFRocmVhZFNhZmVTaGFyZWQ8SURCQ2FsbGJhY2tzPjo6ZGVyZWY7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82057</attachid>
            <date>2011-02-10 15:05:19 -0800</date>
            <delta_ts>2011-02-17 12:43:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54249-20110210150518.patch</filename>
            <type>text/plain</type>
            <size>35024</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgyNTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NDA0ODA5ODFlMDMzOWFkM2M3YmNk
ZTA1MDA1Zjg3ODRhMzdmM2E2Li41MDU0N2IxNTgwZjc2ZDA5NGM3NmQ0NDY4YjI5MGI3MDY0YjIy
NjM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMTAgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhyb3dpbmcgaW4gYW4gSW5kZXhlZERCIGVycm9yIG9yIHN1Y2Nlc3MgZXZl
bnQgc2hvdWxkIGxlYWQgdG8gdGhlIHRyYW5zYWN0aW9uIGFib3J0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDI0OQorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9y
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICAgICB0ZXN0cyBuZXcgZmVhdHVyZQorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWw6CisgICAgICAgICAgICBj
bGVhbmVkIHVwICh3aGlsZSBkZWJ1Z2dpZ24gc29tZXRoaW5nIGVsc2UpCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1s
OgorICAgICAgICAgICAgYSBmZXcgYWRkaXRpb25hbCB0ZXN0cyArIGNsZWFudXAKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJv
cGFnYXRpb24uaHRtbDoKKyAgICAgICAgICAgIGEgZmV3IGFkZGl0aW9uYWwgdGVzdHMgKyBjbGVh
bnVwCisKIDIwMTEtMDItMTAgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1h
Ym9ydHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmN2U2ODBkNWEwMjFkMzNjN2NhNTk4YTVm
MzQ2OTYwNmQxMzE1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYxIEBACitUZXN0IGV4Y2VwdGlvbnMgaW4gSURCUmVxdWVzdCBoYW5kbGVycyBjYXVzZSBhYm9y
dHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCit3ZWJraXRJbmRleGVkREIub3Bl
bignbmFtZScpCitkYiA9IGV2ZW50LnJlc3VsdAorZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KQorc2V0VmVyc2lvblN1Y2Nlc3MoKToKK3RyYW5zID0gZXZlbnQucmVzdWx0CitQQVNTIHRyYW5z
ICE9PSBudWxsIGlzIHRydWUKK3RyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKK0RlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnLCBudWxsKQorc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQorCit0
cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQordHJhbnMub25hYm9ydCA9IHRyYW5zYWN0aW9uQWJvcnRlZDEKK3RyYW5zLm9uY29tcGxldGUg
PSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaworc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlMicsIHk6ICd6enoyJ30sICdrZXkyJykK
KworZXZlbnQucHJldmVudERlZmF1bHQoKQorVGhyb3dpbmcKKworUEFTUyBUaGUgdHJhbnNhY3Rp
b24gd2FzIGFib3J0ZWQuCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQordHJhbnMub25hYm9ydCA9IHRyYW5zYWN0aW9uQWJvcnRlZDIK
K3RyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjaworc3RvcmUgPSB0
cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTog
J3p6eid9LCAna2V5JykKKworZXZlbnQucHJldmVudERlZmF1bHQoKQorVGhyb3dpbmcKKworUEFT
UyBUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQuCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtd
LCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQordHJhbnMub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrCit0cmFucy5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0
ZWQxCitzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorc3RvcmUuYWRkKHt4
OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKQorCitldmVudC5wcmV2ZW50RGVmYXVsdCgp
CitUaHJvd2luZyB3aXRoaW4gYSB0cnkgYmxvY2sKKworUEFTUyBUaGUgdHJhbnNhY3Rpb24gY29t
cGxldGVkLgordHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24u
UkVBRF9XUklURSkKK3RyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjawordHJh
bnMub25jb21wbGV0ZSA9IHRyYW5zYWN0aW9uQ29tcGxldGVkMgorc3RvcmUgPSB0cmFucy5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlMicsIHk6ICd6enoyJ30s
ICdrZXkyJykKKworZXZlbnQucHJldmVudERlZmF1bHQoKQorVGhyb3dpbmcgd2l0aGluIGEgdHJ5
IGJsb2NrCisKK1BBU1MgVGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZC4KKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MTZkYjMyYTgwM2I3MThiYzY0N2EyY2E0YmIwNWNmZmZiY2U5ZjU0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0
aW9uLWluLWV2ZW50LWFib3J0cy5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitk
ZXNjcmlwdGlvbigiVGVzdCBleGNlcHRpb25zIGluIElEQlJlcXVlc3QgaGFuZGxlcnMgY2F1c2Ug
YWJvcnRzLiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKSIpOwor
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc2V0VmVyc2lvbigpCit7
CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworCisgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCit7
CisgICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7CisgICAgd2luZG93LnRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRy
YW5zICE9PSBudWxsIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QiKTsKKwor
ICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYiwgY3JlYXRlT2JqZWN0U3RvcmUpOworfQorCitm
dW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZSgpCit7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJz
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tl
eScpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9
CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgZGVidWcoIiIpOworICAgIHRyYW5zID0g
ZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmFib3J0ID0gdHJhbnNh
Y3Rpb25BYm9ydGVkMSIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSB1bmV4
cGVjdGVkQ29tcGxldGVDYWxsYmFjayIpOworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUg
PSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKSIpOworICAg
IHRyYW5zLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCBjYXVzZUV4Y2VwdGlvbiwgdHJ1ZSk7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1
bmN0aW9uIGNhdXNlRXhjZXB0aW9uKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZXZhbEFuZExv
ZygiZXZlbnQucHJldmVudERlZmF1bHQoKSIpOworICAgIGRlYnVnKCJUaHJvd2luZyIpOworICAg
IHRocm93ICJPSCBOTyEhISI7Cit9CisKK2Z1bmN0aW9uIHRyYW5zYWN0aW9uQWJvcnRlZDEoKQor
eworICAgIGRlYnVnKCIiKTsKKyAgICB0ZXN0UGFzc2VkKCJUaGUgdHJhbnNhY3Rpb24gd2FzIGFi
b3J0ZWQuIik7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9u
KFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGV2YWxBbmRMb2co
InRyYW5zLm9uYWJvcnQgPSB0cmFuc2FjdGlvbkFib3J0ZWQyIik7CisgICAgZXZhbEFuZExvZygi
dHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrIik7CisgICAgc3Rv
cmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIp
OworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6
enonfSwgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vz
c0NhbGxiYWNrOworICAgIGRiLm9uZXJyb3IgPSBjYXVzZUV4Y2VwdGlvbjsKK30KKworZnVuY3Rp
b24gdHJhbnNhY3Rpb25BYm9ydGVkMigpCit7CisgICAgZGVidWcoIiIpOworICAgIHRlc3RQYXNz
ZWQoIlRoZSB0cmFuc2FjdGlvbiB3YXMgYWJvcnRlZC4iKTsKKyAgICB0cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHRyYW5zYWN0
aW9uQ29tcGxldGVkMSIpOworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3Rv
cmUuYWRkKHt4OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKSIpOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gdGhyb3dBbmRDYXRjaDsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICBkYi5vbmVycm9yID0gbnVsbDsKK30KKworZnVuY3Rpb24g
dGhyb3dBbmRDYXRjaCgpCit7CisgICAgZGVidWcoIiIpOworICAgIGV2YWxBbmRMb2coImV2ZW50
LnByZXZlbnREZWZhdWx0KCkiKTsKKyAgICBkZWJ1ZygiVGhyb3dpbmcgd2l0aGluIGEgdHJ5IGJs
b2NrIik7CisgICAgdHJ5IHsKKyAgICAgICAgdGhyb3cgIkFISEgiOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGVkMSgpCit7CisgICAg
ZGVidWcoIiIpOworICAgIHRlc3RQYXNzZWQoIlRoZSB0cmFuc2FjdGlvbiBjb21wbGV0ZWQuIik7
CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJr
aXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2coInRyYW5z
Lm9uY29tcGxldGUgPSB0cmFuc2FjdGlvbkNvbXBsZXRlZDIiKTsKKyAgICBzdG9yZSA9IGV2YWxB
bmRMb2coInN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CisgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlMicsIHk6ICd6enoyJ30sICdr
ZXkyJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJh
Y2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdGhyb3dBbmRDYXRjaDsKK30KKworZnVuY3Rpb24g
dHJhbnNhY3Rpb25Db21wbGV0ZWQyKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdGVzdFBhc3Nl
ZCgiVGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZC4iKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZG9u
ZSgpOworfQorCit0ZXN0KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtZXhwZWN0ZWQudHh0CmluZGV4IDc2YzEw
NzQ2YzYwYWEzY2M5ZWMxNjIxZmNkY2ZlMzRkYzY1ZmQ1NDQuLmViMGEzYjdlOTg2ZjVhYjQ5NWI5
MjQxNmY5MTY3N2UxYzlmYTY3MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4dApAQCAtNCw5OSArNCwy
MSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIHdlYmtpdEluZGV4ZWREQi5vcGVuKCdu
YW1lJykKLVBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ29uZXJyb3In
IGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQot
QW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgotCi1TdWNjZXNzIGV2ZW50IGZpcmVkOgot
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCi1QQVNTICdjb2RlJyBpbiBldmVudCBpcyBm
YWxzZQotUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ3NvdXJjZScgaW4g
ZXZlbnQgaXMgdHJ1ZQotUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCi1QQVNTICdv
bnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKLVBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKLQog
ZGIgPSBldmVudC5yZXN1bHQKIGRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLVBBU1MgJ29u
c3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0
cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQotQW4gZXZlbnQgc2hvdWxk
IGZpcmUgc2hvcnRseS4uLgotCiBzZXRWZXJzaW9uU3VjY2VzcygpOgotU3VjY2VzcyBldmVudCBm
aXJlZDoKLVBBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyAnY29kZScgaW4gZXZl
bnQgaXMgZmFsc2UKLVBBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdzb3Vy
Y2UnIGluIGV2ZW50IGlzIHRydWUKLVBBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQot
UEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAnb25lcnJvcicg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCi1QQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5E
T05FCi0KIHRyYW5zID0gZXZlbnQucmVzdWx0CiBQQVNTIHRyYW5zICE9PSBudWxsIGlzIHRydWUK
IERlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi1kYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVO
YW1lJywgbnVsbCkKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogc3RvcmUuY3Jl
YXRlSW5kZXgoJ2luZGV4TmFtZScsICd4JykKLXN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6
eid9LCAna2V5JykKLVBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ29u
ZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMg
dHJ1ZQotQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgogCitBZGRpbmcgMyBrZXlzLiBX
ZSBzaG91bGQgZ2V0IDMgc3VjY2Vzc2VzLgorc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6
J30sICdrZXknKQogc3RvcmUuYWRkKHt4OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKQot
UEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gcmVz
dWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCi1BbiBldmVu
dCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCi0KIHN0b3JlLnB1dCh7eDogJ3ZhbHUyJywgeTogJ3p6
Mid9LCAna3kyJykKLVBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ29u
ZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMg
dHJ1ZQotQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgotCi1TdWNjZXNzIGV2ZW50IGZp
cmVkOgotUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCi1QQVNTICdjb2RlJyBpbiBldmVu
dCBpcyBmYWxzZQotUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ3NvdXJj
ZScgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCi1Q
QVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKLVBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKLQogUEFTUyAwIGlzIDAKLVN1Y2Nlc3MgZXZlbnQgZmlyZWQ6Ci1QQVNTICdyZXN1bHQnIGlu
IGV2ZW50IGlzIHRydWUKLVBBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdtZXNz
YWdlJyBpbiBldmVudCBpcyBmYWxzZQotUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCi1Q
QVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKLVBBU1MgJ29uc3VjY2VzcycgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
Ci1QQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyBldmVudC50
YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQotCiBQQVNTIDEgaXMgMQotU3Vj
Y2VzcyBldmVudCBmaXJlZDoKLVBBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyAn
Y29kZScgaW4gZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNl
Ci1QQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKLVBBU1MgZXZlbnQuc291cmNlICE9IG51
bGwgaXMgdHJ1ZQotUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFT
UyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2
ZW50LnRhcmdldC5ET05FCi0KIFBBU1MgMiBpcyAyCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVl
ZC1jb21tYW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNv
bW1hbmRzLmh0bWwKaW5kZXggZDQ4Y2I1MjIwODFjMDdkNzZhM2JhOGYyZDQ2OTRjZGYzMTVkZGE3
MC4uMzJmMWE4ZWRhZmMwZWIzOTdlZjQ2MzhiNDlhNWI1MDZmNjE5YTU2NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLmh0bWwKQEAgLTE3
LDE4ICsxNywxNSBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogZnVuY3Rpb24g
dGVzdCgpCiB7CiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERCLm9wZW4o
J25hbWUnKSIpOwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nl
c3MgPSBzZXRWZXJzaW9uOwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogewotICAgIHZlcmlmeVN1Y2Nlc3NF
dmVudChldmVudCk7CiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOwog
CiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIp
OwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxl
dGVFeGlzdGluZzsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwogfQpAQCAtMzYsNyArMzMsNiBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uKCkKIGZ1bmN0aW9uIGRl
bGV0ZUV4aXN0aW5nKCkKIHsKICAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAg
ICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOwogICAgIHdpbmRvdy50cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZXZlbnQucmVzdWx0Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJ0cmFucyAhPT0g
bnVsbCIpOwogICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKQEAg
LTQ2LDIxICs0MiwyMSBAQCBmdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCiAKIGZ1bmN0aW9uIGNy
ZWF0ZUluZGV4KCkKIHsKLSAgICB3aW5kb3cuc3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKKyAgICB3aW5kb3cuc3RvcmUgPSBldmFs
QW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKICAgICB3aW5kb3cu
aW5kZXhPYmplY3QgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywg
J3gnKSIpOwogCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJBZGRpbmcgMyBrZXlzLiBXZSBz
aG91bGQgZ2V0IDMgc3VjY2Vzc2VzLiIpOworCiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3Rv
cmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKSIpOwotICAgIHZlcmlmeVJlc3Vs
dChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsgdmVyaWZ5QWRk
KDApOyB9OwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAK
ICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZTInLCB5OiAnenp6
Mid9LCAna2V5MicpIik7Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgeyB2ZXJpZnlBZGQoMSk7IH07CiAgICAgcmVzdWx0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIAogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
InN0b3JlLnB1dCh7eDogJ3ZhbHUyJywgeTogJ3p6Mid9LCAna3kyJykiKTsKLSAgICB2ZXJpZnlS
ZXN1bHQocmVzdWx0KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7IHZlcmlm
eUFkZCgyKTsgfTsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwogCkBAIC02OSw3ICs2NSw2IEBAIGZ1bmN0aW9uIGNyZWF0ZUluZGV4KCkKIAogZnVuY3Rpb24g
dmVyaWZ5QWRkKGV4cGVjdGVkKQogewotICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CiAg
ICAgc2hvdWxkQmUoIiIgKyBhZGRDb3VudCsrLCAiIiArIGV4cGVjdGVkKTsKIAogICAgIGlmIChh
ZGRDb3VudCA9PSAzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAppbmRl
eCBkZWRhNmE3MDdiZTg0NjIxZTc4MDIxYzZiZDY1M2QwNWRmZDRlMjA0Li5mYzU3YTUyODU5OTA4
Zjc5OGRkMjRmYzBjZWUyMGRkZWExYWI0MmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9u
LWV4cGVjdGVkLnR4dApAQCAtNCw0MSArNCw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IAogd2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKQotUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1
bHQgaXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5
U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCi1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4u
Ci0KLVN1Y2Nlc3MgZXZlbnQgZmlyZWQ6Ci1QQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUK
LVBBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdtZXNzYWdlJyBpbiBldmVudCBp
cyBmYWxzZQotUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCi1QQVNTIGV2ZW50LnNvdXJj
ZSAhPSBudWxsIGlzIHRydWUKLVBBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKLVBBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQotCiBkYiA9IGV2ZW50LnJlc3VsdAogZGIuc2V0VmVyc2lv
bignbmV3IHZlcnNpb24nKQotUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQotUEFT
UyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3Vs
dCBpcyB0cnVlCi1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCi0KIHNldFZlcnNpb25T
dWNjZXNzKCk6Ci1TdWNjZXNzIGV2ZW50IGZpcmVkOgotUEFTUyAncmVzdWx0JyBpbiBldmVudCBp
cyB0cnVlCi1QQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQotUEFTUyAnbWVzc2FnZScgaW4g
ZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyBldmVu
dC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCi1QQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdl
dCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKLQogdHJhbnMgPSBldmVudC5yZXN1bHQKIFBB
U1MgdHJhbnMgIT09IG51bGwgaXMgdHJ1ZQogdHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdApA
QCAtNzcsNiArNDUsOCBAQCBQQVNTIGNhcHR1cmVGaXJlZCBpcyBmYWxzZQogUEFTUyByZXF1ZXN0
RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVG
aXJlZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgcmVxdWVzdAorUEFTUyBldmVudC5j
dXJyZW50VGFyZ2V0IGlzIGRiCiAKIEluIElEQlRyYW5zYWN0aW9uIGVycm9yIGNhcHR1cmUKIFBB
U1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQpAQCAtODQsNiArNTQsOCBAQCBQQVNTIGNhcHR1cmVG
aXJlZCBpcyBmYWxzZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmly
ZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJn
ZXQgaXMgcmVxdWVzdAorUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIHRyYW5zCiAKIEluIElE
QlJlcXVlc3QgaGFuZGxlcgogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCkBAIC05MSw2ICs2
Myw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlzIGZh
bHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZhbHNlCiBQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFs
c2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHJlcXVlc3QKK1BBU1MgZXZlbnQuY3VycmVudFRhcmdl
dCBpcyByZXF1ZXN0CiAKIEluIElEQlRyYW5zYWN0aW9uIGVycm9yIGJ1YmJsZQogUEFTUyBkYkNh
cHR1cmVGaXJlZCBpcyB0cnVlCkBAIC05OCw2ICs3Miw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlz
IHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlzIHRydWUKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFs
c2UKIFBBU1MgZGJCdWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgcmVx
dWVzdAorUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIHRyYW5zCiAKIEluIElEQkRhdGFiYXNl
IGVycm9yIGJ1YmJsZQogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCkBAIC0xMDUsNiArODEs
OCBAQCBQQVNTIGNhcHR1cmVGaXJlZCBpcyB0cnVlCiBQQVNTIHJlcXVlc3RGaXJlZCBpcyB0cnVl
CiBQQVNTIGJ1YmJsZUZpcmVkIGlzIHRydWUKIFBBU1MgZGJCdWJibGVGaXJlZCBpcyBmYWxzZQor
UEFTUyBldmVudC50YXJnZXQgaXMgcmVxdWVzdAorUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlz
IGRiCiAKIFRyYW5zYWN0aW9uIGFib3J0ZWQKIFBBU1MgZGJDYXB0dXJlRmlyZWQgaXMgdHJ1ZQpA
QCAtMTM4LDYgKzExNiw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCiBQQVNTIHJlcXVl
c3RGaXJlZCBpcyBmYWxzZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJs
ZUZpcmVkIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50
LmN1cnJlbnRUYXJnZXQgaXMgZGIKIAogSW4gSURCVHJhbnNhY3Rpb24gc3VjY2VzcyBjYXB0dXJl
CiBQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRydWUKQEAgLTE0NSw2ICsxMjUsOCBAQCBQQVNTIGNh
cHR1cmVGaXJlZCBpcyBmYWxzZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnVi
YmxlRmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBldmVu
dC50YXJnZXQgaXMgcmVxdWVzdAorUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIHRyYW5zCiAK
IEluIElEQlJlcXVlc3QgaGFuZGxlcgogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCkBAIC0x
NTIsNiArMTM0LDggQEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0Rmly
ZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVGaXJl
ZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgcmVxdWVzdAorUEFTUyBldmVudC5jdXJy
ZW50VGFyZ2V0IGlzIHJlcXVlc3QKIAogVHJhbnNhY3Rpb24gY29tcGxldGVkCiBQQVNTIGRiQ2Fw
dHVyZUZpcmVkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uaHRtbAppbmRleCA4N2Y2YTJkOWIy
NjBlZGQzMzU1MjdmNTliNDMyZTQwMTNjZDYyYjBkLi4wNzQwNmI2ZjhmOWJkNjFjYjhiOTY0ODY2
ODliZWNiMWQzNzA4NTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sCkBAIC0xNiwyNyArMTYs
MjMgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKIAogZnVuY3Rpb24gdGVzdCgp
CiB7Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUn
KSIpOwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBz
ZXRWZXJzaW9uOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4ZWREQi5vcGVuKCduYW1lJyki
KTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb24o
KQogewotICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CiAgICAgZGIgPSBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnJlc3VsdCIpOwogCi0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwotICAg
IHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICByZXN1bHQub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxl
dGVFeGlzdGluZzsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKIH0KIAogZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQogewogICAgIGRlYnVnKCJzZXRWZXJz
aW9uU3VjY2VzcygpOiIpOwotICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CiAgICAgd2lu
ZG93LnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC5yZXN1bHQiKTsKICAgICBzaG91
bGRCZVRydWUoInRyYW5zICE9PSBudWxsIik7CiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOwpAQCAtNDgsOCArNDQsOCBAQCBmdW5jdGlvbiBkZWxldGVFeGlzdGlu
ZygpCiBmdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZSgpCiB7CiAgICAgc3RvcmUgPSBldmFsQW5k
TG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOwot
ICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9
LCAna2V5JykiKTsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6
enonfSwgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CiB9CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCkBAIC02MCw4ICs1Niw4IEBAIGZ1bmN0
aW9uIHN0YXJ0VGVzdCgpCiAgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHVuZXhw
ZWN0ZWRDb21wbGV0ZUNhbGxiYWNrIik7CiAgICAgZXZhbEFuZExvZygidHJhbnMub25lcnJvciA9
IGFsbG93RGVmYXVsdCIpOwogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9y
ZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpIik7Ci0gICAgcmVzdWx0Lm9uc3Vj
Y2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CiAgICAgaGFuZGxlckZp
cmVkID0gZmFsc2U7CiB9CiAKQEAgLTg5LDkgKzg1LDkgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25B
Ym9ydGVkKCkKICAgICBldmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywg
dW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjaywgdHJ1ZSkiKTsKICAgICBldmFsQW5kTG9nKCJkYi5h
ZGRFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjaywgZmFs
c2UpIik7CiAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3Jl
KCdzdG9yZU5hbWUnKSIpOwotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDog
J3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gdW5l
eHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKLSAgICByZXN1bHQub25lcnJvciA9IGVycm9yRmlyZWRD
YWxsYmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUn
LCB5OiAnenp6J30sICdrZXknKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3Rl
ZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvckZpcmVkQ2FsbGJh
Y2s7CiAgICAgZGJDYXB0dXJlRmlyZWQgPSBmYWxzZTsKICAgICBjYXB0dXJlRmlyZWQgPSBmYWxz
ZTsKICAgICByZXF1ZXN0RmlyZWQgPSBmYWxzZTsKQEAgLTEwOCw2ICsxMDQsOCBAQCBmdW5jdGlv
biBkYkVycm9yQ2FwdHVyZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0Rmly
ZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFs
c2UoImRiQnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgInJlcXVl
c3QiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJkYiIpOwogICAgIGRi
Q2FwdHVyZUZpcmVkID0gdHJ1ZTsKIH0KIApAQCAtMTIwLDYgKzExOCw4IEBAIGZ1bmN0aW9uIGVy
cm9yQ2FwdHVyZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0RmlyZWQiKTsK
ICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRi
QnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgInJlcXVlc3QiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwogICAgIGNhcHR1
cmVGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTEzMiw2ICsxMzIsOCBAQCBmdW5jdGlvbiBlcnJvckZp
cmVkQ2FsbGJhY2soKQogICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOwogICAgIHNo
b3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVG
aXJlZCIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNo
b3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgInJlcXVlc3QiKTsKICAgICByZXF1ZXN0Rmly
ZWQgPSB0cnVlOwogfQogCkBAIC0xNDQsNiArMTQ2LDggQEAgZnVuY3Rpb24gZXJyb3JCdWJibGVD
YWxsYmFjaygpCiAgICAgc2hvdWxkQmVUcnVlKCJyZXF1ZXN0RmlyZWQiKTsKICAgICBzaG91bGRC
ZUZhbHNlKCJidWJibGVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgInJlcXVlc3QiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwogICAgIGJ1YmJsZUZpcmVkID0gdHJ1
ZTsKIH0KIApAQCAtMTU2LDYgKzE2MCw4IEBAIGZ1bmN0aW9uIGRiRXJyb3JCdWJibGVDYWxsYmFj
aygpCiAgICAgc2hvdWxkQmVUcnVlKCJyZXF1ZXN0RmlyZWQiKTsKICAgICBzaG91bGRCZVRydWUo
ImJ1YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOworICAg
IHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJldmVu
dC5jdXJyZW50VGFyZ2V0IiwgImRiIik7CiAgICAgZGJCdWJibGVGaXJlZCA9IHRydWU7CiB9CiAK
QEAgLTE4Niw5ICsxOTIsOSBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQyKCkKICAgICBl
dmFsQW5kTG9nKCJkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrLCB0cnVlKSIpOwogICAgIGV2YWxBbmRMb2coImRiLmFkZEV2ZW50TGlzdGVuZXIoJ2Vy
cm9yJywgdW5leHBlY3RlZEVycm9yQ2FsbGJhY2ssIGZhbHNlKSIpOwogICAgIHN0b3JlID0gZXZh
bEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKLSAgICBy
ZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tl
eTInKSIpOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0g
ICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHN1Y2Nlc3NGaXJlZENhbGxiYWNrOworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleTInKSIp
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gc3VjY2Vzc0ZpcmVkQ2FsbGJhY2s7CiAgICAgZGJDYXB0dXJlRmly
ZWQgPSBmYWxzZTsKICAgICBjYXB0dXJlRmlyZWQgPSBmYWxzZTsKICAgICByZXF1ZXN0RmlyZWQg
PSBmYWxzZTsKQEAgLTIwNSw2ICsyMTEsOCBAQCBmdW5jdGlvbiBkYlN1Y2Nlc3NDYXB0dXJlQ2Fs
bGJhY2soKQogICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJl
RmFsc2UoImJ1YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIp
OworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJl
KCJldmVudC5jdXJyZW50VGFyZ2V0IiwgImRiIik7CiAgICAgZGJDYXB0dXJlRmlyZWQgPSB0cnVl
OwogfQogCkBAIC0yMTcsNiArMjI1LDggQEAgZnVuY3Rpb24gc3VjY2Vzc0NhcHR1cmVDYWxsYmFj
aygpCiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVzdEZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJyZXF1ZXN0Iik7CisgICAgc2hvdWxkQmUoImV2
ZW50LmN1cnJlbnRUYXJnZXQiLCAidHJhbnMiKTsKICAgICBjYXB0dXJlRmlyZWQgPSB0cnVlOwog
fQogCkBAIC0yMjksNiArMjM5LDggQEAgZnVuY3Rpb24gc3VjY2Vzc0ZpcmVkQ2FsbGJhY2soKQog
ICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1
YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOworICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJldmVudC5j
dXJyZW50VGFyZ2V0IiwgInJlcXVlc3QiKTsKICAgICByZXF1ZXN0RmlyZWQgPSB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1l
dmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggOWQw
NGIwYTA2OTc0YTQ5Y2FjNTRjNDk5YWFhNTRhYzRmNjM2MWIxNS4uODQ0NGI5ZDkyNmMxMDNkZTUw
NDY5MDA2N2JlZWU4ZmYwODQwZDA5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0
aW9uLWV4cGVjdGVkLnR4dApAQCAtNCwxOCArNCw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiAKIAogd2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKQotUEFTUyAnb25zdWNjZXNzJyBpbiBy
ZXN1bHQgaXMgdHJ1ZQotUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ3Jl
YWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCi1BbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5
Li4uCi0KIGRiID0gZXZlbnQucmVzdWx0CiBkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1Q
QVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiByZXN1
bHQgaXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKLUFuIGV2ZW50
IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KLQogdHJhbnMgPSBldmVudC5yZXN1bHQKIFBBU1MgdHJh
bnMgIT09IG51bGwgaXMgdHJ1ZQogdHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdApAQCAtMzcs
MTYgKzI3LDIyIEBAIEluIElEQkRhdGFiYXNlIGFib3J0IGNhcHR1cmUKIFBBU1MgZGJDYXB0dXJl
RmlyZWQgaXMgZmFsc2UKIFBBU1MgYWJvcnRGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZp
cmVkMSBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgdHJhbnMKK1BBU1MgZXZlbnQuY3Vy
cmVudFRhcmdldCBpcyBkYgogCiBJbiBhYm9ydCBoYW5kbGVyCiBQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIHRydWUKIFBBU1MgYWJvcnRGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkMSBp
cyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgdHJhbnMKK1BBU1MgZXZlbnQuY3VycmVudFRh
cmdldCBpcyB0cmFucwogCiBJbiBJREJEYXRhYmFzZSBlcnJvciBidWJibGUKIFBBU1MgZGJDYXB0
dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyBhYm9ydEZpcmVkIGlzIHRydWUKIFBBU1MgZGJCdWJibGVG
aXJlZDEgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHRyYW5zCitQQVNTIGV2ZW50LmN1
cnJlbnRUYXJnZXQgaXMgZGIKIAogVmVyaWZpbmcgc3VjY2Vzcy4KIHRyYW5zID0gZGIudHJhbnNh
Y3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCkBAIC02NywxMSArNjMs
MTUgQEAgSW4gSURCRGF0YWJhc2UgY29tcGxldGUgY2FwdHVyZQogUEFTUyBkYkNhcHR1cmVGaXJl
ZCBpcyBmYWxzZQogUEFTUyBjb21wbGV0ZUZpcmVkIGlzIGZhbHNlCiBQQVNTIGRiQnViYmxlRmly
ZWQyIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyB0cmFucworUEFTUyBldmVudC5jdXJy
ZW50VGFyZ2V0IGlzIGRiCiAKIEluIElEQlJlcXVlc3QgaGFuZGxlcgogUEFTUyBkYkNhcHR1cmVG
aXJlZCBpcyB0cnVlCiBQQVNTIGNvbXBsZXRlRmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVG
aXJlZDIgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHRyYW5zCitQQVNTIGV2ZW50LmN1
cnJlbnRUYXJnZXQgaXMgdHJhbnMKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1l
dmVudC1wcm9wYWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbAppbmRleCBjMzE2NDZhYjBkM2YzMjE0ZDBi
OGM2NDQyN2FlZjljMzRjZGUyYzU1Li5lMDE1NjJhOTMwNzgzMjljOTg1Y2ZiOWU1NzlhYzgzYTQx
MDI0ZGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKQEAgLTE2LDIwICsxNiwx
OCBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogCiBmdW5jdGlvbiB0ZXN0KCkK
IHsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJ3ZWJraXRJbmRleGVkREIub3BlbignbmFtZScp
Iik7Ci0gICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHNl
dFZlcnNpb247Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKSIp
OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbigp
CiB7CiAgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOwogCi0gICAgcmVz
dWx0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHZl
cmlmeVJlc3VsdChyZXN1bHQpOwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGlu
ZzsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gZGVsZXRlRXhpc3Rpbmco
KQpAQCAtNDUsOCArNDMsOCBAQCBmdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCiBmdW5jdGlvbiBj
cmVhdGVPYmplY3RTdG9yZSgpCiB7CiAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOwotICAgIHJlc3VsdCA9IGV2
YWxBbmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKLSAg
ICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpIik7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCkBAIC03Myw2ICs3MSw4IEBAIGZ1bmN0aW9uIGRiQWJvcnRDYXB0
dXJlQ2FsbGJhY2soKQogICAgIHNob3VsZEJlRmFsc2UoImRiQ2FwdHVyZUZpcmVkIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiYWJvcnRGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxl
RmlyZWQxIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJ0cmFucyIpOworICAgIHNo
b3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgImRiIik7CiAgICAgZGJDYXB0dXJlRmlyZWQg
PSB0cnVlOwogfQogCkBAIC04Myw2ICs4Myw4IEBAIGZ1bmN0aW9uIGFib3J0RmlyZWRDYWxsYmFj
aygpCiAgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFs
c2UoImFib3J0RmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMSIpOwor
ICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAidHJhbnMiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwogICAgIGFib3J0RmlyZWQgPSB0cnVlOwogfQog
CkBAIC05Myw2ICs5NSw4IEBAIGZ1bmN0aW9uIGRiQWJvcnRCdWJibGVDYWxsYmFjaygpCiAgICAg
c2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiYWJvcnRG
aXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQxIik7CisgICAgc2hvdWxk
QmUoImV2ZW50LnRhcmdldCIsICJ0cmFucyIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50
VGFyZ2V0IiwgImRiIik7CiAgICAgZGJCdWJibGVGaXJlZDEgPSB0cnVlOwogICAgIGRlYnVnKCIi
KTsKICAgICBkZWJ1ZygiVmVyaWZpbmcgc3VjY2Vzcy4iKTsKQEAgLTEyMSw2ICsxMjUsOCBAQCBm
dW5jdGlvbiBkYkNvbXBsZXRlQ2FwdHVyZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZUZhbHNlKCJk
YkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImNvbXBsZXRlRmlyZWQiKTsKICAg
ICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMiIpOworICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQiLCAidHJhbnMiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJk
YiIpOwogICAgIGRiQ2FwdHVyZUZpcmVkID0gdHJ1ZTsKIH0KIApAQCAtMTMxLDYgKzEzNyw4IEBA
IGZ1bmN0aW9uIGNvbXBsZXRlRmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVUcnVlKCJkYkNh
cHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImNvbXBsZXRlRmlyZWQiKTsKICAgICBz
aG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMiIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJn
ZXQiLCAidHJhbnMiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJ0cmFu
cyIpOwogICAgIGNvbXBsZXRlRmlyZWQgPSB0cnVlOwogICAgIGRlYnVnKCIiKTsKICAgICBkb25l
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMGEyMmFmZGU0YTllYzJmNDE3NDAwNGZmNWFmZTAyYmJkNGNlZjhh
OC4uMTFlN2E5MjRhYjE0MWFjM2NmOTJkMmQ4ZDMzMzU2NDBkNWQ1YmYyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI4IEBACisyMDExLTAyLTEwICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRocm93aW5nIGluIGFuIEluZGV4ZWREQiBlcnJvciBvciBzdWNjZXNzIGV2ZW50IHNob3VsZCBs
ZWFkIHRvIHRoZSB0cmFuc2FjdGlvbiBhYm9ydGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQyNDkKKworICAgICAgICBXaGVuIGFuIGV4Y2VwdGlv
biBpcyB0aHJvd24gYnV0IG5vdCBoYW5kbGVkICB3aXRoaW4gYW4gSURCUmVxdWVzdHMgc3VjY2Vz
cy9lcnJvciBldmVudCwKKyAgICAgICAgd2Ugc2hvdWxkIGFib3J0IHRoZSB0cmFuc2FjdGlvbi4K
KworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJv
cnRzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4QWJzdHJhY3RFdmVudExpc3RlbmVyOjppbnZva2VFdmVudEhhbmRs
ZXIpOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcik6CisgICAgICAgICog
ZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRs
ZXIpOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5oOgorCiAyMDExLTAyLTEwICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwCmluZGV4IDY0Mjc2ODNmNDJlNjM0OGI2YjNmYmI3ZTMxMGM4MGZiYTZkYWRk
OTguLmVkNzRiZWUyYzEzZTVlODc2ZjI3MDgxOTg5YTAyMzUyM2IyYjFiMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcApAQCAtMTI3LDkgKzEy
NywxMCBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dAogCiAgICAgICAgIGdsb2JhbE9iamVjdC0+
c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOwogCi0gICAgICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CisgICAgICAgICAg
ICBldmVudC0+dGFyZ2V0KCktPnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKICAg
ICAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oZXhlYyk7Ci0gICAgICAgIGVsc2Ugewor
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKCFyZXR2YWwuaXNVbmRlZmluZWRPck51
bGwoKSAmJiBldmVudC0+c3RvcmVzUmVzdWx0QXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBl
dmVudC0+c3RvcmVSZXN1bHQodXN0cmluZ1RvU3RyaW5nKHJldHZhbC50b1N0cmluZyhleGVjKSkp
OwogICAgICAgICAgICAgaWYgKG1faXNBdHRyaWJ1dGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5kZXggMDRiZTE3NWVjY2I5MDMyNTdhMzkyNDRi
MjRlYmQyYjUzOWU0ZDEzYS4uZTRkNjcyNGUyN2JiZjJlMmRhMGY2N2E1ZmE4YzMwZDFjODY2MjQw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKQEAg
LTE2MCw4ICsxNjAsMTQgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnRUYXJnZXQqIHRhcmcKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKElEQkRhdGFiYXNlKiBpZGJEYXRhYmFz
ZSA9IHRhcmdldC0+dG9JREJEYXRhYmFzZSgpKQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBp
ZGJEYXRhYmFzZSk7CisKICAgICBpZiAoSURCUmVxdWVzdCogaWRiUmVxdWVzdCA9IHRhcmdldC0+
dG9JREJSZXF1ZXN0KCkpCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGlkYlJlcXVlc3QpOwor
CisgICAgaWYgKElEQlRyYW5zYWN0aW9uKiBpZGJUcmFuc2FjdGlvbiA9IHRhcmdldC0+dG9JREJU
cmFuc2FjdGlvbigpKQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBpZGJUcmFuc2FjdGlvbik7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggYmRhNDM0
NTc1ZDMzMjJkM2VmNjQ2Mzc1YTRhZDU4MWNiNGFhNWQ0My4uN2ZhYWQwNzFhZDkxNmYwNjNlZWQ0
ZTRjM2JhYTRiMzQ0OWI2ZTIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcApAQCAtMTQ3LDggKzE0NywxNCBAQCB2
b2lkIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyOjppbnZva2VFdmVudEhhbmRsZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dAogICAgICAgICB2OENvbnRleHQtPkdsb2JhbCgpLT5TZXRI
aWRkZW5WYWx1ZShldmVudFN5bWJvbCwganNFdmVudCk7CiAgICAgICAgIHRyeUNhdGNoLlJlc2V0
KCk7CiAKLSAgICAgICAgLy8gQ2FsbCB0aGUgZXZlbnQgaGFuZGxlci4KLSAgICAgICAgcmV0dXJu
VmFsdWUgPSBjYWxsTGlzdGVuZXJGdW5jdGlvbihjb250ZXh0LCBqc0V2ZW50LCBldmVudCk7Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHY4OjpUcnlDYXRjaCBpbm5lclRyeUNhdGNoOworICAgICAg
ICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsTGlzdGVuZXJGdW5jdGlvbihjb250ZXh0LCBqc0V2ZW50
LCBldmVudCk7CisgICAgICAgICAgICBpZiAoaW5uZXJUcnlDYXRjaC5IYXNDYXVnaHQoKSkKKyAg
ICAgICAgICAgICAgICBldmVudC0+dGFyZ2V0KCktPnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhh
bmRsZXIoKTsKKyAgICAgICAgICAgIGlubmVyVHJ5Q2F0Y2guUmVzZXQoKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGlmICghdHJ5Q2F0Y2guQ2FuQ29udGludWUoKSkKICAgICAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggZWQ1OTk1Y2QwZDJjZDliNDc1
ZDc1ODYzYzNhYzQ5OWRlYWZiMGZmZi4uNzgzMWIzODEyYTVkNTYyMDVmNTM3NzU2ZjcyYmVjMDMz
YWJlYmVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0zMDEsNiArMzAxLDEw
IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCiAgICAgcmV0dXJuIGZpcmVFdmVudExpc3RlbmVycyhldmVudC5nZXQoKSk7CiB9CiAKK3Zv
aWQgRXZlbnRUYXJnZXQ6OnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKQoreworfQor
CiBib29sIEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50KQogewog
ICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmgKaW5kZXggYTAzODAxYmNiZDUwMGU0ZGJjZTg5NTFjZDQ3NmI0ZDNkNzA4YThiMy4uNzll
ZTY1OThlYjE0NzY2ZGJlZTFhMGYzNTUwMzk1NjQ2MzdkM2JmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0LmgKQEAgLTE1MSw2ICsxNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgICAgIGJvb2wgZGlz
cGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiwgRXhjZXB0aW9uQ29kZSYpOyAvLyBET00gQVBJ
CisgICAgICAgIHZpcnR1YWwgdm9pZCB1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCk7
CiAKICAgICAgICAgLy8gVXNlZCBmb3IgbGVnYWN5ICJvbkV2ZW50IiBhdHRyaWJ1dGUgQVBJcy4K
ICAgICAgICAgYm9vbCBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQlJlcXVlc3QuY3BwCmluZGV4IGUyNTQ2NGFmZGUzOWZjMGNkMjJhM2QwZGNkNWRiYTY0
ZDhhYzgxMTkuLmQwNGFlZmVjMDJjNWQ2ZTNmYzgwNGViNDVmZjc4ZDNmZWFkMjAxNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcApAQCAtMTYzLDYgKzE2MywxMiBAQCBib29s
IElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAg
cmV0dXJuIGRvbnRQcmV2ZW50RGVmYXVsdDsKIH0KIAordm9pZCBJREJSZXF1ZXN0Ojp1bmNhdWdo
dEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCkKK3sKKyAgICBpZiAobV90cmFuc2FjdGlvbikKKyAg
ICAgICAgbV90cmFuc2FjdGlvbi0+YmFja2VuZCgpLT5hYm9ydCgpOworfQorCiB2b2lkIElEQlJl
cXVlc3Q6OmVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICBBU1NF
UlQobV9yZWFkeVN0YXRlIDwgRE9ORSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCmlu
ZGV4IDJjNWY0NTQ1YTM4Y2MxYTNlNDIyNjk4NjU2OTBkMzliNDhkMmRjZDUuLmU0Zjk0OTBiZWI1
ZDA3NzQ5YTkyNTJkZTA0OTYyZGEyOTQ3YzAwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVx
dWVzdC5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgYm9vbCBkaXNwYXRj
aEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1
cm4gRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQsIGVjKTsgfQorICAgIHZpcnR1YWwg
dm9pZCB1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCk7CiAKICAgICB1c2luZyBUaHJl
YWRTYWZlU2hhcmVkPElEQkNhbGxiYWNrcz46OnJlZjsKICAgICB1c2luZyBUaHJlYWRTYWZlU2hh
cmVkPElEQkNhbGxiYWNrcz46OmRlcmVmOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82849</attachid>
            <date>2011-02-17 12:43:13 -0800</date>
            <delta_ts>2011-02-17 13:02:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54249-20110217124312.patch</filename>
            <type>text/plain</type>
            <size>24701</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg4NTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NDg3YTQyYjI2MGZhNWM4OWJmNzBk
MzBhMGZlNGMwMTQwNWE4MTMyLi5jYjRmZDM4ZGMxMzVhMzVhOGQ1MzhiNGI3NDNhZmYxYWYyODg2
M2Q5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMTcgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhyb3dpbmcgaW4gYW4gSW5kZXhlZERCIGVycm9yIG9yIHN1Y2Nlc3MgZXZl
bnQgc2hvdWxkIGxlYWQgdG8gdGhlIHRyYW5zYWN0aW9uIGFib3J0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDI0OQorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9y
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1h
bmRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29t
bWFuZHMuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXBy
b3BhZ2F0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXF1
ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAgKHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrKToK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlv
bi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24uaHRtbDoKKwogMjAxMS0wMi0xNyAgQW5kcmVhcyBLbGluZyAgPGts
aW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50
LWFib3J0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNl
cHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGQ4Mjc5NWRh
MzhhZTg0ZDkxZWQ4ODk2NGM4ZmYwMTQzNWY5OTNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1OSBAQAorVGVzdCBleGNlcHRpb25zIGluIElEQlJlcXVlc3QgaGFu
ZGxlcnMgY2F1c2UgYWJvcnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKword2Vi
a2l0SW5kZXhlZERCLm9wZW4oJ25hbWUnKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitkYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCitzZXRWZXJzaW9uU3VjY2VzcygpOgordHJhbnMgPSBl
dmVudC50YXJnZXQucmVzdWx0CitQQVNTIHRyYW5zICE9PSBudWxsIGlzIHRydWUKK3RyYW5zLm9u
Y29tcGxldGUgPSBzdGFydFRlc3QKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitzdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQorc3RvcmUuYWRkKHt4OiAn
dmFsdWUnLCB5OiAnenp6J30sICdrZXknKQorCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3
ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQordHJhbnMub25hYm9ydCA9IHRyYW5zYWN0
aW9uQWJvcnRlZDEKK3RyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFj
aworc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLmFkZCh7eDog
J3ZhbHVlMicsIHk6ICd6enoyJ30sICdrZXkyJykKKworZXZlbnQucHJldmVudERlZmF1bHQoKQor
VGhyb3dpbmcKKworUEFTUyBUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQuCit0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQordHJhbnMu
b25hYm9ydCA9IHRyYW5zYWN0aW9uQWJvcnRlZDIKK3RyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVj
dGVkQ29tcGxldGVDYWxsYmFjaworc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3N0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykKKworZXZlbnQucHJl
dmVudERlZmF1bHQoKQorVGhyb3dpbmcKKworUEFTUyBUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0
ZWQuCit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQordHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrCit0cmFucy5v
bmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQxCitzdG9yZSA9IHRyYW5zLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQorc3RvcmUuYWRkKHt4OiAndmFsdWUzJywgeTogJ3p6ejMnfSwgJ2tl
eTMnKQorCitldmVudC5wcmV2ZW50RGVmYXVsdCgpCitUaHJvd2luZyB3aXRoaW4gYSB0cnkgYmxv
Y2sKKworUEFTUyBUaGUgdHJhbnNhY3Rpb24gY29tcGxldGVkLgordHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3RyYW5zLm9uYWJvcnQg
PSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjawordHJhbnMub25jb21wbGV0ZSA9IHRyYW5zYWN0aW9u
Q29tcGxldGVkMgorc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3Jl
LmFkZCh7eDogJ3ZhbHVlNCcsIHk6ICd6eno0J30sICdrZXk0JykKK0ZBSUwgU3VjY2VzcyBmdW5j
dGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorCitQQVNTIFRoZSB0cmFuc2FjdGlvbiBjb21wbGV0
ZWQuCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4t
ZXZlbnQtYWJvcnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRp
b24taW4tZXZlbnQtYWJvcnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NhYzgxZDc2YWUyMmIyM2QyOTMz
ZmJiN2U1ZGE0YThhZTk3ODVhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuaHRtbApAQCAtMCwwICsxLDEz
MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgZXhjZXB0aW9ucyBpbiBJREJSZXF1
ZXN0IGhhbmRsZXJzIGNhdXNlIGFib3J0cy4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIAorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4ZWRE
Qi5vcGVuKCduYW1lJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0
aW9uIHNldFZlcnNpb24oKQoreworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbign
bmV3IHZlcnNpb24nKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1
bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKK3sKKyAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3Mo
KToiKTsKKyAgICB3aW5kb3cudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZVRydWUoInRyYW5zICE9PSBudWxsIik7CisgICAgdHJh
bnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInRy
YW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QiKTsKKworICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jl
cyhkYik7CisKKyAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0
b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0
KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRi
LnRyYW5zYWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAg
IGV2YWxBbmRMb2coInRyYW5zLm9uYWJvcnQgPSB0cmFuc2FjdGlvbkFib3J0ZWQxIik7CisgICAg
ZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNr
Iik7CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2
YWx1ZTInLCB5OiAnenp6Mid9LCAna2V5MicpIik7CisgICAgdHJhbnMuYWRkRXZlbnRMaXN0ZW5l
cignc3VjY2VzcycsIGNhdXNlRXhjZXB0aW9uLCB0cnVlKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY2F1c2VFeGNlcHRpb24o
KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBldmFsQW5kTG9nKCJldmVudC5wcmV2ZW50RGVmYXVs
dCgpIik7CisgICAgZGVidWcoIlRocm93aW5nIik7CisgICAgdGhyb3cgIk9IIE5PISEhIjsKK30K
KworZnVuY3Rpb24gdHJhbnNhY3Rpb25BYm9ydGVkMSgpCit7CisgICAgZGVidWcoIiIpOworICAg
IHRlc3RQYXNzZWQoIlRoZSB0cmFuc2FjdGlvbiB3YXMgYWJvcnRlZC4iKTsKKyAgICB0cmFucyA9
IGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25hYm9ydCA9IHRyYW5z
YWN0aW9uQWJvcnRlZDIiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gdW5l
eHBlY3RlZENvbXBsZXRlQ2FsbGJhY2siKTsKKyAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3Jl
ID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coInN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgZGIub25l
cnJvciA9IGNhdXNlRXhjZXB0aW9uOworfQorCitmdW5jdGlvbiB0cmFuc2FjdGlvbkFib3J0ZWQy
KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdGVzdFBhc3NlZCgiVGhlIHRyYW5zYWN0aW9uIHdh
cyBhYm9ydGVkLiIpOworICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBkYi50cmFuc2Fj
dGlvbihbXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBldmFsQW5k
TG9nKCJ0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2siKTsKKyAgICBldmFs
QW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQxIik7CisgICAg
c3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZTMnLCB5
OiAnenp6Myd9LCAna2V5MycpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aHJvd0FuZENh
dGNoOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
IGRiLm9uZXJyb3IgPSBudWxsOworfQorCitmdW5jdGlvbiB0aHJvd0FuZENhdGNoKCkKK3sKKyAg
ICBkZWJ1ZygiIik7CisgICAgZXZhbEFuZExvZygiZXZlbnQucHJldmVudERlZmF1bHQoKSIpOwor
ICAgIGRlYnVnKCJUaHJvd2luZyB3aXRoaW4gYSB0cnkgYmxvY2siKTsKKyAgICB0cnkgeworICAg
ICAgICB0aHJvdyAiQUhISCI7CisgICAgfSBjYXRjaCAoZSkgeworICAgIH0KK30KKworZnVuY3Rp
b24gdHJhbnNhY3Rpb25Db21wbGV0ZWQxKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgdGVzdFBh
c3NlZCgiVGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZC4iKTsKKyAgICB0cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oW10sIHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHRyYW5zYWN0
aW9uQ29tcGxldGVkMiIpOworICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3Rv
cmUuYWRkKHt4OiAndmFsdWU0JywgeTogJ3p6ejQnfSwgJ2tleTQnKSIpOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB0aHJvd0FuZENhdGNoOworfQorCitmdW5jdGlvbiB0cmFuc2FjdGlvbkNvbXBsZXRlZDIo
KQoreworICAgIGRlYnVnKCIiKTsKKyAgICB0ZXN0UGFzc2VkKCJUaGUgdHJhbnNhY3Rpb24gY29t
cGxldGVkLiIpOworICAgIGRlYnVnKCIiKTsKKyAgICBkb25lKCk7Cit9CisKK3Rlc3QoKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNv
bW1hbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVl
ZC1jb21tYW5kcy1leHBlY3RlZC50eHQKaW5kZXggZjVhODIzNGU0YjRhZDdhOWI3NzA4MmI0ZWU2
MzIwNzM0MDg5MjQ5MS4uMjY0ZDdlN2VkNTVjNDNiY2NlNmMwNmYyNDhjM2FhOWQ2NmFiODA2OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQt
Y29tbWFuZHMtZXhwZWN0ZWQudHh0CkBAIC0xMCw3ICsxMCw3IEBAIHNldFZlcnNpb25TdWNjZXNz
KCk6CiB0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgdHJhbnMgIT09IG51bGwgaXMg
dHJ1ZQogRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KLWRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnLCBudWxsKQorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCiBzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQogc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5
OiAnenp6J30sICdrZXknKQogc3RvcmUuYWRkKHt4OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tl
eTInKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNv
bW1hbmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFu
ZHMuaHRtbAppbmRleCA2MzUxNDBiYThiYTEwN2I1ZTkzOGMwMDc5NTc1NjY4ZWUzYTY0YjQ2Li40
NmVhYTQ5NDkyODdiYjNiMWRiYjA5MzJjMzA2ODJlZTljZjg0NTA2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMuaHRtbApAQCAtMzksNyAr
MzksNyBAQCBmdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCiAKICAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOwogCi0gICAgd2luZG93LnN0b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CisgICAgd2luZG93LnN0b3JlID0gZXZhbEFu
ZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CiAgICAgd2luZG93Lmlu
ZGV4T2JqZWN0ID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICd4
JykiKTsKIAogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZScs
IHk6ICd6enonfSwgJ2tleScpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDcwYWNhMzY5NWIwZTg1ZWMyOTJjNGMxZDc5MTNlZmI4MzJkMmVmZTguLmJhMTgw
YjIyMDc0ZjcwMjlmOGMxOTc3ZmYyY2I2ZWQ3OTAyOThjZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJv
cGFnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00NSw2ICs0NSw4IEBAIFBBU1MgY2FwdHVyZUZpcmVk
IGlzIGZhbHNlCiBQQVNTIHJlcXVlc3RGaXJlZCBpcyBmYWxzZQogUEFTUyBidWJibGVGaXJlZCBp
cyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBp
cyByZXF1ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQgaXMgZGIKIAogSW4gSURCVHJhbnNh
Y3Rpb24gZXJyb3IgY2FwdHVyZQogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCkBAIC01Miw2
ICs1NCw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlzIGZhbHNlCiBQQVNTIHJlcXVlc3RGaXJlZCBp
cyBmYWxzZQogUEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlz
IGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRU
YXJnZXQgaXMgdHJhbnMKIAogSW4gSURCUmVxdWVzdCBoYW5kbGVyCiBQQVNTIGRiQ2FwdHVyZUZp
cmVkIGlzIHRydWUKQEAgLTU5LDYgKzYzLDggQEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQog
UEFTUyByZXF1ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQgaXMgZmFsc2UKIFBB
U1MgZGJCdWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgcmVxdWVzdAor
UEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIHJlcXVlc3QKIAogSW4gSURCVHJhbnNhY3Rpb24g
ZXJyb3IgYnViYmxlCiBQQVNTIGRiQ2FwdHVyZUZpcmVkIGlzIHRydWUKQEAgLTY2LDYgKzcyLDgg
QEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMgdHJ1ZQog
UEFTUyBidWJibGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZpcmVkIGlzIGZhbHNlCitQ
QVNTIGV2ZW50LnRhcmdldCBpcyByZXF1ZXN0CitQQVNTIGV2ZW50LmN1cnJlbnRUYXJnZXQgaXMg
dHJhbnMKIAogSW4gSURCRGF0YWJhc2UgZXJyb3IgYnViYmxlCiBQQVNTIGRiQ2FwdHVyZUZpcmVk
IGlzIHRydWUKQEAgLTczLDYgKzgxLDggQEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMgdHJ1ZQogUEFT
UyByZXF1ZXN0RmlyZWQgaXMgdHJ1ZQogUEFTUyBidWJibGVGaXJlZCBpcyB0cnVlCiBQQVNTIGRi
QnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHJlcXVlc3QKK1BBU1Mg
ZXZlbnQuY3VycmVudFRhcmdldCBpcyBkYgogCiBUcmFuc2FjdGlvbiBhYm9ydGVkCiBQQVNTIGRi
Q2FwdHVyZUZpcmVkIGlzIHRydWUKQEAgLTEwNiw2ICsxMTYsOCBAQCBQQVNTIGNhcHR1cmVGaXJl
ZCBpcyBmYWxzZQogUEFTUyByZXF1ZXN0RmlyZWQgaXMgZmFsc2UKIFBBU1MgYnViYmxlRmlyZWQg
aXMgZmFsc2UKIFBBU1MgZGJCdWJibGVGaXJlZCBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQg
aXMgcmVxdWVzdAorUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0IGlzIGRiCiAKIEluIElEQlRyYW5z
YWN0aW9uIHN1Y2Nlc3MgY2FwdHVyZQogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCkBAIC0x
MTMsNiArMTI1LDggQEAgUEFTUyBjYXB0dXJlRmlyZWQgaXMgZmFsc2UKIFBBU1MgcmVxdWVzdEZp
cmVkIGlzIGZhbHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZhbHNlCiBQQVNTIGRiQnViYmxlRmly
ZWQgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHJlcXVlc3QKK1BBU1MgZXZlbnQuY3Vy
cmVudFRhcmdldCBpcyB0cmFucwogCiBJbiBJREJSZXF1ZXN0IGhhbmRsZXIKIFBBU1MgZGJDYXB0
dXJlRmlyZWQgaXMgdHJ1ZQpAQCAtMTIwLDYgKzEzNCw4IEBAIFBBU1MgY2FwdHVyZUZpcmVkIGlz
IHRydWUKIFBBU1MgcmVxdWVzdEZpcmVkIGlzIGZhbHNlCiBQQVNTIGJ1YmJsZUZpcmVkIGlzIGZh
bHNlCiBQQVNTIGRiQnViYmxlRmlyZWQgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHJl
cXVlc3QKK1BBU1MgZXZlbnQuY3VycmVudFRhcmdldCBpcyByZXF1ZXN0CiAKIFRyYW5zYWN0aW9u
IGNvbXBsZXRlZAogUEFTUyBkYkNhcHR1cmVGaXJlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9u
Lmh0bWwKaW5kZXggYTkxZDhjM2Y2M2RiNjlmZjkxMTg5MzJkNTNlYjlhYmIzMTllZjgzZi4uNjBk
YWRiMmFmNzU0M2EwYzdlNTVmNGRjOTQzYTBjOTdiMzU1MDFiMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRp
b24uaHRtbApAQCAtMTAxLDYgKzEwMSw4IEBAIGZ1bmN0aW9uIGRiRXJyb3JDYXB0dXJlQ2FsbGJh
Y2soKQogICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFs
c2UoImJ1YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOwor
ICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJl
dmVudC5jdXJyZW50VGFyZ2V0IiwgImRiIik7CiAgICAgZGJDYXB0dXJlRmlyZWQgPSB0cnVlOwog
fQogCkBAIC0xMTMsNiArMTE1LDggQEAgZnVuY3Rpb24gZXJyb3JDYXB0dXJlQ2FsbGJhY2soKQog
ICAgIHNob3VsZEJlRmFsc2UoInJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1
YmJsZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOworICAgIHNo
b3VsZEJlKCJldmVudC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJldmVudC5j
dXJyZW50VGFyZ2V0IiwgInRyYW5zIik7CiAgICAgY2FwdHVyZUZpcmVkID0gdHJ1ZTsKIH0KIApA
QCAtMTI1LDYgKzEyOSw4IEBAIGZ1bmN0aW9uIGVycm9yRmlyZWRDYWxsYmFjaygpCiAgICAgc2hv
dWxkQmVGYWxzZSgicmVxdWVzdEZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYnViYmxlRmly
ZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUo
ImV2ZW50LnRhcmdldCIsICJyZXF1ZXN0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRU
YXJnZXQiLCAicmVxdWVzdCIpOwogICAgIHJlcXVlc3RGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTEz
Nyw2ICsxNDMsOCBAQCBmdW5jdGlvbiBlcnJvckJ1YmJsZUNhbGxiYWNrKCkKICAgICBzaG91bGRC
ZVRydWUoInJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImJ1YmJsZUZpcmVkIik7
CiAgICAgc2hvdWxkQmVGYWxzZSgiZGJCdWJibGVGaXJlZCIpOworICAgIHNob3VsZEJlKCJldmVu
dC50YXJnZXQiLCAicmVxdWVzdCIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0
IiwgInRyYW5zIik7CiAgICAgYnViYmxlRmlyZWQgPSB0cnVlOwogfQogCkBAIC0xNDksNiArMTU3
LDggQEAgZnVuY3Rpb24gZGJFcnJvckJ1YmJsZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZVRydWUo
InJlcXVlc3RGaXJlZCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiYnViYmxlRmlyZWQiKTsKICAgICBz
aG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdl
dCIsICJyZXF1ZXN0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAiZGIi
KTsKICAgICBkYkJ1YmJsZUZpcmVkID0gdHJ1ZTsKIH0KIApAQCAtMTk4LDYgKzIwOCw4IEBAIGZ1
bmN0aW9uIGRiU3VjY2Vzc0NhcHR1cmVDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVGYWxzZSgicmVx
dWVzdEZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91
bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIs
ICJyZXF1ZXN0Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAiZGIiKTsK
ICAgICBkYkNhcHR1cmVGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTIxMCw2ICsyMjIsOCBAQCBmdW5j
dGlvbiBzdWNjZXNzQ2FwdHVyZUNhbGxiYWNrKCkKICAgICBzaG91bGRCZUZhbHNlKCJyZXF1ZXN0
RmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJidWJibGVGaXJlZCIpOwogICAgIHNob3VsZEJl
RmFsc2UoImRiQnViYmxlRmlyZWQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0IiwgInJl
cXVlc3QiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwog
ICAgIGNhcHR1cmVGaXJlZCA9IHRydWU7CiB9CiAKQEAgLTIyMiw2ICsyMzYsOCBAQCBmdW5jdGlv
biBzdWNjZXNzRmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVGYWxzZSgicmVxdWVzdEZpcmVk
Iik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYnViYmxlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNl
KCJkYkJ1YmJsZUZpcmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJyZXF1ZXN0
Iik7CisgICAgc2hvdWxkQmUoImV2ZW50LmN1cnJlbnRUYXJnZXQiLCAicmVxdWVzdCIpOwogICAg
IHJlcXVlc3RGaXJlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCmluZGV4IGViZDU4YzgyN2QxZGI0ZWI5NzdhMzcz
YWMxYTIxMGU5MTEyMTgyOTAuLjliMjNjYjhjY2YwMmJjNDJhYmI5MjAyZjg5YTQzZjI5MmQ0OTll
Y2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9z
aGFyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3No
YXJlZC5qcwpAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxi
YWNrKCkKIAogZnVuY3Rpb24gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2soKQogewotICAgIHRlc3RG
YWlsZWQoIkVycm9yIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHk6ICgiICsgZXZlbnQudGFy
Z2V0LmNvZGUgKyAiKSAiICsgZXZlbnQudGFyZ2V0Lm1lc3NhZ2UpOworICAgIHRlc3RGYWlsZWQo
IkVycm9yIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHk6ICgiICsgZXZlbnQudGFyZ2V0LmVy
cm9yQ29kZSArICIpICIgKyBldmVudC50YXJnZXQud2Via2l0RXJyb3JNZXNzYWdlKTsKIH0KIAog
ZnVuY3Rpb24gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQt
cHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGRiYTRlMDcwYWIxNTg4ZTQyMjI5ZmYzMzdk
MzMzNzVkN2FjNmMzZTkuLmVlMzBlMTM4YzhkZTdmNjE2MDdiM2Q4NGZhYjQ3ZTQzYWIzZDdhYmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2
ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTI3
LDE2ICsyNywyMiBAQCBJbiBJREJEYXRhYmFzZSBhYm9ydCBjYXB0dXJlCiBQQVNTIGRiQ2FwdHVy
ZUZpcmVkIGlzIGZhbHNlCiBQQVNTIGFib3J0RmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVG
aXJlZDEgaXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHRyYW5zCitQQVNTIGV2ZW50LmN1
cnJlbnRUYXJnZXQgaXMgZGIKIAogSW4gYWJvcnQgaGFuZGxlcgogUEFTUyBkYkNhcHR1cmVGaXJl
ZCBpcyB0cnVlCiBQQVNTIGFib3J0RmlyZWQgaXMgZmFsc2UKIFBBU1MgZGJCdWJibGVGaXJlZDEg
aXMgZmFsc2UKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIHRyYW5zCitQQVNTIGV2ZW50LmN1cnJlbnRU
YXJnZXQgaXMgdHJhbnMKIAogSW4gSURCRGF0YWJhc2UgZXJyb3IgYnViYmxlCiBQQVNTIGRiQ2Fw
dHVyZUZpcmVkIGlzIHRydWUKIFBBU1MgYWJvcnRGaXJlZCBpcyB0cnVlCiBQQVNTIGRiQnViYmxl
RmlyZWQxIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyB0cmFucworUEFTUyBldmVudC5j
dXJyZW50VGFyZ2V0IGlzIGRiCiAKIFZlcmlmaW5nIHN1Y2Nlc3MuCiB0cmFucyA9IGRiLnRyYW5z
YWN0aW9uKFtdLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQpAQCAtNTcsMTEgKzYz
LDE1IEBAIEluIElEQkRhdGFiYXNlIGNvbXBsZXRlIGNhcHR1cmUKIFBBU1MgZGJDYXB0dXJlRmly
ZWQgaXMgZmFsc2UKIFBBU1MgY29tcGxldGVGaXJlZCBpcyBmYWxzZQogUEFTUyBkYkJ1YmJsZUZp
cmVkMiBpcyBmYWxzZQorUEFTUyBldmVudC50YXJnZXQgaXMgdHJhbnMKK1BBU1MgZXZlbnQuY3Vy
cmVudFRhcmdldCBpcyBkYgogCiBJbiBJREJSZXF1ZXN0IGhhbmRsZXIKIFBBU1MgZGJDYXB0dXJl
RmlyZWQgaXMgdHJ1ZQogUEFTUyBjb21wbGV0ZUZpcmVkIGlzIGZhbHNlCiBQQVNTIGRiQnViYmxl
RmlyZWQyIGlzIGZhbHNlCitQQVNTIGV2ZW50LnRhcmdldCBpcyB0cmFucworUEFTUyBldmVudC5j
dXJyZW50VGFyZ2V0IGlzIHRyYW5zCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmh0bWwKaW5kZXggNGQxNWNmNTMwYWFjOGJiODMw
MThlMGI4M2FmMmZkMzU5NTliMzkxNi4uMjc2YjUyZmFmYTNhNGRmMDBjZWE1ZmM3MTcxNzlmYjM0
MjIwMDMzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi5odG1sCkBAIC02OCw2ICs2OCw4
IEBAIGZ1bmN0aW9uIGRiQWJvcnRDYXB0dXJlQ2FsbGJhY2soKQogICAgIHNob3VsZEJlRmFsc2Uo
ImRiQ2FwdHVyZUZpcmVkIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYWJvcnRGaXJlZCIpOwogICAg
IHNob3VsZEJlRmFsc2UoImRiQnViYmxlRmlyZWQxIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRh
cmdldCIsICJ0cmFucyIpOworICAgIHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgImRi
Iik7CiAgICAgZGJDYXB0dXJlRmlyZWQgPSB0cnVlOwogfQogCkBAIC03OCw2ICs4MCw4IEBAIGZ1
bmN0aW9uIGFib3J0RmlyZWRDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVG
aXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImFib3J0RmlyZWQiKTsKICAgICBzaG91bGRCZUZh
bHNlKCJkYkJ1YmJsZUZpcmVkMSIpOworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAidHJh
bnMiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwogICAg
IGFib3J0RmlyZWQgPSB0cnVlOwogfQogCkBAIC04OCw2ICs5Miw4IEBAIGZ1bmN0aW9uIGRiQWJv
cnRCdWJibGVDYWxsYmFjaygpCiAgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOwog
ICAgIHNob3VsZEJlVHJ1ZSgiYWJvcnRGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2UoImRiQnVi
YmxlRmlyZWQxIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldCIsICJ0cmFucyIpOworICAg
IHNob3VsZEJlKCJldmVudC5jdXJyZW50VGFyZ2V0IiwgImRiIik7CiAgICAgZGJCdWJibGVGaXJl
ZDEgPSB0cnVlOwogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVmVyaWZpbmcgc3VjY2Vzcy4i
KTsKQEAgLTExNiw2ICsxMjIsOCBAQCBmdW5jdGlvbiBkYkNvbXBsZXRlQ2FwdHVyZUNhbGxiYWNr
KCkKICAgICBzaG91bGRCZUZhbHNlKCJkYkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFs
c2UoImNvbXBsZXRlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMiIp
OworICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAidHJhbnMiKTsKKyAgICBzaG91bGRCZSgi
ZXZlbnQuY3VycmVudFRhcmdldCIsICJkYiIpOwogICAgIGRiQ2FwdHVyZUZpcmVkID0gdHJ1ZTsK
IH0KIApAQCAtMTI2LDYgKzEzNCw4IEBAIGZ1bmN0aW9uIGNvbXBsZXRlRmlyZWRDYWxsYmFjaygp
CiAgICAgc2hvdWxkQmVUcnVlKCJkYkNhcHR1cmVGaXJlZCIpOwogICAgIHNob3VsZEJlRmFsc2Uo
ImNvbXBsZXRlRmlyZWQiKTsKICAgICBzaG91bGRCZUZhbHNlKCJkYkJ1YmJsZUZpcmVkMiIpOwor
ICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQiLCAidHJhbnMiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQuY3VycmVudFRhcmdldCIsICJ0cmFucyIpOwogICAgIGNvbXBsZXRlRmlyZWQgPSB0cnVlOwog
ICAgIGRlYnVnKCIiKTsKICAgICBkb25lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q3MjliODEwZDY0OWNm
ZWNlODkzZTUzNzkwYmQyM2I4Zjg0ZDgwNC4uODAzOWIzMDQwN2M0MjM3MjIxZjU4Mjc4NDdkNzYw
YTAyZmIwMmI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTAyLTE3ICBKZXJl
bXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRocm93aW5nIGluIGFuIEluZGV4ZWREQiBlcnJvciBv
ciBzdWNjZXNzIGV2ZW50IHNob3VsZCBsZWFkIHRvIHRoZSB0cmFuc2FjdGlvbiBhYm9ydGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQyNDkKKwor
ICAgICAgICBXaGVuIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gYnV0IG5vdCBoYW5kbGVkICB3aXRo
aW4gYW4gSURCUmVxdWVzdHMgc3VjY2Vzcy9lcnJvciBldmVudCwKKyAgICAgICAgd2Ugc2hvdWxk
IGFib3J0IHRoZSB0cmFuc2FjdGlvbi4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRk
Yi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QWJzdHJh
Y3RFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QWJzdHJhY3RFdmVudExp
c3RlbmVyOjppbnZva2VFdmVudEhhbmRsZXIpOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2
ZW50SGFuZGxlcik6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogc3Rv
cmFnZS9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnVuY2F1
Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIpOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVz
dC5oOgorCiAyMDExLTAyLTE3ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDgyNWE0YWQzYWM0
ODA2NTc2ZTA5NGNkNGE4YzA3YmI0YTM3MTk4MjQuLjkwYTE2NGI1ZDliODYwMjUzODQyNTQzMDRl
NGQzNWJmMjNjMzQ5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcApAQCAtMTI2LDkgKzEyNiwxMCBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dAogCiAgICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOwog
Ci0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBldmVudC0+dGFyZ2V0KCktPnVuY2F1Z2h0RXhj
ZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKICAgICAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRp
b24oZXhlYyk7Ci0gICAgICAgIGVsc2UgeworICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aWYgKCFyZXR2YWwuaXNVbmRlZmluZWRPck51bGwoKSAmJiBldmVudC0+c3RvcmVzUmVzdWx0QXNT
dHJpbmcoKSkKICAgICAgICAgICAgICAgICBldmVudC0+c3RvcmVSZXN1bHQodXN0cmluZ1RvU3Ry
aW5nKHJldHZhbC50b1N0cmluZyhleGVjKSkpOwogICAgICAgICAgICAgaWYgKG1faXNBdHRyaWJ1
dGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJn
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5k
ZXggMDRiZTE3NWVjY2I5MDMyNTdhMzkyNDRiMjRlYmQyYjUzOWU0ZDEzYS4uZTRkNjcyNGUyN2Ji
ZjJlMmRhMGY2N2E1ZmE4YzMwZDFjODY2MjQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldC5jcHAKQEAgLTE2MCw4ICsxNjAsMTQgQEAgSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnRU
YXJnZXQqIHRhcmcKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAg
aWYgKElEQkRhdGFiYXNlKiBpZGJEYXRhYmFzZSA9IHRhcmdldC0+dG9JREJEYXRhYmFzZSgpKQor
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBpZGJEYXRhYmFzZSk7CisKICAgICBpZiAoSURCUmVx
dWVzdCogaWRiUmVxdWVzdCA9IHRhcmdldC0+dG9JREJSZXF1ZXN0KCkpCiAgICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGlkYlJlcXVlc3QpOworCisgICAgaWYgKElEQlRyYW5zYWN0aW9uKiBpZGJU
cmFuc2FjdGlvbiA9IHRhcmdldC0+dG9JREJUcmFuc2FjdGlvbigpKQorICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBpZGJUcmFuc2FjdGlvbik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVE
SU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZl
bnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZl
bnRMaXN0ZW5lci5jcHAKaW5kZXggYmRhNDM0NTc1ZDMzMjJkM2VmNjQ2Mzc1YTRhZDU4MWNiNGFh
NWQ0My4uNmRjNDlmYThmYjkyMjIxODgwMzI5ZjRjMjVlODQ5MDRmNjY4M2Y4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVy
LmNwcApAQCAtMTQ3LDEyICsxNDcsMTEgQEAgdm9pZCBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6
aW52b2tlRXZlbnRIYW5kbGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQKICAgICAg
ICAgdjhDb250ZXh0LT5HbG9iYWwoKS0+U2V0SGlkZGVuVmFsdWUoZXZlbnRTeW1ib2wsIGpzRXZl
bnQpOwogICAgICAgICB0cnlDYXRjaC5SZXNldCgpOwogCi0gICAgICAgIC8vIENhbGwgdGhlIGV2
ZW50IGhhbmRsZXIuCiAgICAgICAgIHJldHVyblZhbHVlID0gY2FsbExpc3RlbmVyRnVuY3Rpb24o
Y29udGV4dCwganNFdmVudCwgZXZlbnQpOworICAgICAgICBpZiAodHJ5Q2F0Y2guSGFzQ2F1Z2h0
KCkpCisgICAgICAgICAgICBldmVudC0+dGFyZ2V0KCktPnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVu
dEhhbmRsZXIoKTsKICAgICAgICAgaWYgKCF0cnlDYXRjaC5DYW5Db250aW51ZSgpKQogICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBoYW5k
bGluZyB0aGUgZXZlbnQsIGl0IHNob3VsZCBiZSByZXBvcnRlZCBpbiBhIHJlZ3VsYXIgd2F5Lgog
ICAgICAgICB0cnlDYXRjaC5SZXNldCgpOwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9sZCBl
dmVudC4gVGhpcyBtdXN0IGJlIGRvbmUgZm9yIGFsbCBleGl0IHBhdGhzIHRocm91Z2ggdGhpcyBt
ZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCAwY2I0MjVlMDkwOTI0MDVi
MWI1NjEyNDc5ZGVkNTQ3MDJkZjczZDRhLi43YmQ1Y2Q2NTM2ZWU2ZjJiNGZjNjE5ZTAwZmI1ZjRl
Njc2NjgwYjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTMwNSw2ICszMDUs
MTAgQEAgYm9vbCBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCkKICAgICByZXR1cm4gZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LmdldCgpKTsKIH0KIAor
dm9pZCBFdmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCit7Cit9
CisKIGJvb2wgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCogZXZlbnQpCiB7
CiAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuaAppbmRleCAxZTI2NjQyZDlhZjQzOWU3N2UwNmYzNTA0NmU5ZDg1YzQxNzNiN2U5Li4z
MTY0NGI3Y2NhODU2ZjA2NGYxZGRlOTRmNTUwZGRjOTMyYzM1MDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuaApAQCAtMTUzLDYgKzE1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAgICAgICAgYm9vbCBk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBFeGNlcHRpb25Db2RlJik7IC8vIERPTSBB
UEkKKyAgICAgICAgdmlydHVhbCB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIo
KTsKIAogICAgICAgICAvLyBVc2VkIGZvciBsZWdhY3kgIm9uRXZlbnQiIGF0dHJpYnV0ZSBBUElz
LgogICAgICAgICBib29sIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCUmVxdWVzdC5jcHAKaW5kZXggYTNlNWVhYTYzODE1N2NkNWRlYjI3MmIyMWM4YTU1
NGNiZjdlYmI3MC4uNmNmZmFiODBmNjMzNGJkMTI2ODJiYjE5YTY5MzJiMzc5MDFlNjRjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC0yNTMsNiArMjUzLDEyIEBAIGJv
b2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAg
ICByZXR1cm4gZG9udFByZXZlbnREZWZhdWx0OwogfQogCit2b2lkIElEQlJlcXVlc3Q6OnVuY2F1
Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKQoreworICAgIGlmIChtX3RyYW5zYWN0aW9uKQor
ICAgICAgICBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCktPmFib3J0KCk7Cit9CisKIHZvaWQgSURC
UmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewogICAgIEFT
U0VSVCghbV9maW5pc2hlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCmluZGV4IGU0
MGYxYjE1N2NmYmQwZDg2ZTUyMzk3MjFiN2MzZjQ3ZWIxMzEwNWIuLjVmMjQ2OWRmZTJhZjRmNjZh
NWE2MjkyYjM5ZDc2NmI0MGIwNTdlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5o
CkBAIC04Nyw2ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gRXZl
bnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQsIGVjKTsgfQorICAgIHZpcnR1YWwgdm9pZCB1
bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCk7CiAKICAgICB1c2luZyBUaHJlYWRTYWZl
U2hhcmVkPElEQkNhbGxiYWNrcz46OnJlZjsKICAgICB1c2luZyBUaHJlYWRTYWZlU2hhcmVkPElE
QkNhbGxiYWNrcz46OmRlcmVmOwo=
</data>
<flag name="review"
          id="74554"
          type_id="1"
          status="+"
          setter="japhet"
    />
          </attachment>
      

    </bug>

</bugzilla>