<?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>41667</bug_id>
          
          <creation_ts>2010-07-06 02:07:14 -0700</creation_ts>
          <short_desc>[Qt] QScriptEngine should have an API for creating Date objects</short_desc>
          <delta_ts>2010-09-29 09:31:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Hansen">kent.hansen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>246954</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-07-06 02:07:14 -0700</bug_when>
    <thetext>See http://doc.trolltech.com/latest/qscriptengine.html#newDate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246993</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-07-06 03:24:11 -0700</bug_when>
    <thetext>There should also be corresponding methods QScriptValue::isDate() and QScriptValue::toDateTime().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250782</commentid>
    <comment_count>2</comment_count>
      <attachid>61425</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-13 15:39:07 -0700</bug_when>
    <thetext>Created attachment 61425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251051</commentid>
    <comment_count>3</comment_count>
      <attachid>61425</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-14 02:17:29 -0700</bug_when>
    <thetext>Comment on attachment 61425
Patch

Documentation is badly indented (2 instead of 4 spaces).

Could you remove code duplication? both QSEP::newDate() do the same with the same algoritm, only one difference is an argument data type.JavaScriptCore/qt/api/qscriptvalue_p.h:692
 +          m_engine-&gt;setException(exception);
exception is not null, so NotNullException could be added.

JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp:560
 +  
Could you remove the space?

JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp:590
 +  #ifndef Q_WS_WIN // TODO: Test and remove this since 169701 has been fixed
Is it still needed?

JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue_generated_istype.cpp:576
 +      &quot;engine-&gt;evaluate(\&quot;Date.prototype\&quot;)&quot;,
 +      &quot;engine-&gt;newDate(QDateTime())&quot;};
This won&apos;t work. You haven&apos;t added this values to tst_QScriptValue::initScriptValues() and to expected values for different generated functions. In the Qt repository is a generator for these files, ping me on IRC I will explain how to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254129</commentid>
    <comment_count>4</comment_count>
      <attachid>62146</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-20 22:46:05 -0700</bug_when>
    <thetext>Created attachment 62146
Patch v2

Thanks for the review, Jedrzej.

New version, taking into account the comments:
- QSEP::newDate code duplication removed
- Indentation/style fixed
- Tests properly generated using tools in Qt upstream

And also:
- Make use of the new QScriptOriginalGlobalObject instead of fetching/storing manually the Date constructor/prototype
- If QDateTime passed in the newDate() is not valid, return an invalid date</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265027</commentid>
    <comment_count>5</comment_count>
      <attachid>62146</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-16 05:16:05 -0700</bug_when>
    <thetext>Comment on attachment 62146
Patch v2

Looks good to me. If Jedrej is OK with it, please set cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281072</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-17 19:40:58 -0700</bug_when>
    <thetext>@Jędrzej: Ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281407</commentid>
    <comment_count>7</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-09-20 00:17:12 -0700</bug_when>
    <thetext>Looks ok. Sorry for the lag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286219</commentid>
    <comment_count>8</comment_count>
      <attachid>62146</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-28 07:40:26 -0700</bug_when>
    <thetext>Comment on attachment 62146
Patch v2

LGTM, too. The new API needs &quot;\since 4.8&quot; tags though, please fix that before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286268</commentid>
    <comment_count>9</comment_count>
      <attachid>62146</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 08:44:47 -0700</bug_when>
    <thetext>Comment on attachment 62146
Patch v2

Rejecting patch 62146 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 62146]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=62146&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=41667&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 62146 from bug 41667.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Kenneth Rohde Christiansen&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/3996176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286863</commentid>
    <comment_count>10</comment_count>
      <attachid>69193</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-09-29 07:28:18 -0700</bug_when>
    <thetext>Created attachment 69193
Rebased patch

Rebased and removed the changes to autogenerated tasks. There are some manual tests already and talking to Jedrzej, we agreed that the auto-generated tests can be independently updated later, in a batch update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286881</commentid>
    <comment_count>11</comment_count>
      <attachid>69193</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-29 08:06:49 -0700</bug_when>
    <thetext>Comment on attachment 69193
Rebased patch

Echoing Kenneth&apos;s r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286900</commentid>
    <comment_count>12</comment_count>
      <attachid>69193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-29 08:56:02 -0700</bug_when>
    <thetext>Comment on attachment 69193
Rebased patch

Rejecting patch 69193 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
s successful.
Files=14, Tests=304,  1 wallclock secs ( 0.72 cusr +  0.16 csys =  0.88 CPU)
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Projects/CommitQueue/LayoutTests
Testing 21477 test cases.
plugins/plugin-initiate-popup-window.html -&gt; failed

Exiting early after 1 failures. 17960 tests run.
322.64s total testing time

17959 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
31 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/4184018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286902</commentid>
    <comment_count>13</comment_count>
      <attachid>69193</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-29 09:06:09 -0700</bug_when>
    <thetext>Comment on attachment 69193
Rebased patch

Let&apos;s try that once again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286920</commentid>
    <comment_count>14</comment_count>
      <attachid>69193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-29 09:31:30 -0700</bug_when>
    <thetext>Comment on attachment 69193
Rebased patch

Clearing flags on attachment: 69193

Committed r68651: &lt;http://trac.webkit.org/changeset/68651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286921</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-29 09:31:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61425</attachid>
            <date>2010-07-13 15:39:07 -0700</date>
            <delta_ts>2010-07-20 22:46:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41667-20100713193905.patch</filename>
            <type>text/plain</type>
            <size>18541</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCA3MWI0YTIxZjgxZTcyODU3NTE4MzdhNDJmZGU1ZjAxOWNkZmM2
ODVlLi4wOWEzNGNlMTcwOWQ5YThkZGZjMTNkMDAxZDVkMWQ3Mzc0NzE5MGVmIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDctMTMgIENhaW8gTWFyY2VsbyBkZSBPbGl2
ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFFTY3JpcHRFbmdpbmUgc2hv
dWxkIGhhdmUgYW4gQVBJIGZvciBjcmVhdGluZyBEYXRlIG9iamVjdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNjY3CisKKyAgICAgICAgSW1wbGVt
ZW50IG5ld0RhdGUoKSwgaXNEYXRlKCkgYW5kIHRvRGF0ZVRpbWUoKSBmdW5jdGlvbnMuIFVzZSB0
aGUKKyAgICAgICAgUURhdGVUaW1lOjp7dG8sc2V0fU1TZWNzU2luY2VFcG9jaCgpIGZ1bmN0aW9u
cyB0byBkbyB0aGUKKyAgICAgICAgY2FsY3VsYXRpb25zLgorCisgICAgICAgIE5vdGUgdGhhdCB3
ZSBoYXZlIHRvIGtlZXAgdHJhY2sgb2YgdGhlIERhdGUgY29uc3RydWN0b3IgYW5kCisgICAgICAg
IHByb3RvdHlwZSwgdGhlIHNhbWUgd2F5IHdhcyBkb25lIGZvciBBcnJheS4KKworICAgICAgICBU
aGlzIGNvbW1pdCBhbHNvIGFkZCB0aGUgcmVsYXRlZCB0ZXN0cyB0aGF0IHdlcmUgaW4gUXQgdXBz
dHJlYW0uCisKKyAgICAgICAgKiBhcGkvcXNjcmlwdGVuZ2luZS5jcHA6CisgICAgICAgIChRU2Ny
aXB0RW5naW5lOjpuZXdEYXRlKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdGVuZ2luZS5oOgorICAg
ICAgICAqIGFwaS9xc2NyaXB0ZW5naW5lX3AuY3BwOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVBy
aXZhdGU6OlFTY3JpcHRFbmdpbmVQcml2YXRlKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2
YXRlOjp+UVNjcmlwdEVuZ2luZVByaXZhdGUpOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZh
dGU6Om5ld0RhdGUpOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5naW5lX3AuaDoKKyAgICAgICAg
KFFTY3JpcHRFbmdpbmVQcml2YXRlOjppc0RhdGUpOgorICAgICAgICAqIGFwaS9xc2NyaXB0dmFs
dWUuY3BwOgorICAgICAgICAoUVNjcmlwdFZhbHVlOjppc0RhdGUpOgorICAgICAgICAoUVNjcmlw
dFZhbHVlOjp0b0RhdGVUaW1lKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVlLmg6CisgICAg
ICAgICogYXBpL3FzY3JpcHR2YWx1ZV9wLmg6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRl
Ojppc0RhdGUpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9EYXRlVGltZSk6Cisg
ICAgICAgICogdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHA6CisgICAg
ICAgICh0c3RfUVNjcmlwdEVuZ2luZTo6bmV3RGF0ZSk6CisgICAgICAgICogdGVzdHMvcXNjcmlw
dHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiB0ZXN0cy9xc2NyaXB0dmFsdWUv
dHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfaXN0eXBlLmNwcDoKKyAgICAgICAgKHRzdF9RU2Ny
aXB0VmFsdWU6OmlzRGF0ZV9pbml0RGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjpp
c0RhdGVfbWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNEYXRlX3Rlc3Qp
OgorCiAyMDEwLTA3LTA5ICBKZWRyemVqIE5vd2Fja2kgIDxqZWRyemVqLm5vd2Fja2lAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwIGIvSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwCmluZGV4IDRiMjMxOWJlYTdhYWUzNTIxMzlmNjA3NDQ1
YzEwMmNhM2Y4YzhhNDQuLmQ1YTgzNzgwNDQ0MTk4NjZkZDRkMmE5NWQyNTE0MDkyOWMyOTVjZGIg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNwcAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHAKQEAgLTI4MSw2ICsyODEs
MjYgQEAgUVNjcmlwdFZhbHVlIFFTY3JpcHRFbmdpbmU6Om5ld0FycmF5KHVpbnQgbGVuZ3RoKQog
fQogCiAvKiEKKyAgQ3JlYXRlcyBhIFF0U2NyaXB0IG9iamVjdCBvZiBjbGFzcyBEYXRlIHdpdGgg
dGhlIGdpdmVuCisgIFxhIHZhbHVlICh0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZSAw
MSBKYW51YXJ5IDE5NzAsCisgIFVUQykuCisqLworUVNjcmlwdFZhbHVlIFFTY3JpcHRFbmdpbmU6
Om5ld0RhdGUocXNyZWFsIHZhbHVlKQoreworICAgIHJldHVybiBRU2NyaXB0VmFsdWVQcml2YXRl
OjpnZXQoZF9wdHItPm5ld0RhdGUodmFsdWUpKTsKK30KKworLyohCisgIENyZWF0ZXMgYSBRdFNj
cmlwdCBvYmplY3Qgb2YgY2xhc3MgRGF0ZSBmcm9tIHRoZSBnaXZlbiBcYSB2YWx1ZS4KKworICBc
c2EgUVNjcmlwdFZhbHVlOjp0b0RhdGVUaW1lKCkKKyovCitRU2NyaXB0VmFsdWUgUVNjcmlwdEVu
Z2luZTo6bmV3RGF0ZShjb25zdCBRRGF0ZVRpbWUmIHZhbHVlKQoreworICAgIHJldHVybiBRU2Ny
aXB0VmFsdWVQcml2YXRlOjpnZXQoZF9wdHItPm5ld0RhdGUodmFsdWUpKTsKK30KKworLyohCiAg
IFJldHVybnMgdGhpcyBlbmdpbmUncyBHbG9iYWwgT2JqZWN0LgogCiAgIEJ5IGRlZmF1bHQsIHRo
ZSBHbG9iYWwgT2JqZWN0IGNvbnRhaW5zIHRoZSBidWlsdC1pbiBvYmplY3RzIHRoYXQgYXJlCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5oIGIvSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaAppbmRleCAxYTg3YTM3Yjc3Zjg2NWUzNjQw
MTcxZmRkNjIwZDhmNDU2MDBjYTVkLi41NzA2NzNjMTRhNjg2ZTEyNTk2ZjVmNDY4YjkzNzY1ZDM0
MDA0NjkxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKQEAgLTIzLDExICsy
MywxMiBAQAogI2luY2x1ZGUgInFzY3JpcHRwcm9ncmFtLmgiCiAjaW5jbHVkZSAicXNjcmlwdHN0
cmluZy5oIgogI2luY2x1ZGUgInFzY3JpcHRzeW50YXhjaGVja3Jlc3VsdC5oIgorI2luY2x1ZGUg
InFzY3JpcHR2YWx1ZS5oIgogI2luY2x1ZGUgPFF0Q29yZS9xb2JqZWN0Lmg+CiAjaW5jbHVkZSA8
UXRDb3JlL3FzaGFyZWRkYXRhLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FzdHJpbmcuaD4KIAotY2xh
c3MgUVNjcmlwdFZhbHVlOworY2xhc3MgUURhdGVUaW1lOwogY2xhc3MgUVNjcmlwdEVuZ2luZVBy
aXZhdGU7CiAKIC8vIEludGVybmFsIHR5cGVkZWYKQEAgLTU4LDYgKzU5LDggQEAgcHVibGljOgog
ICAgIFFTY3JpcHRWYWx1ZSB1bmRlZmluZWRWYWx1ZSgpOwogICAgIFFTY3JpcHRWYWx1ZSBuZXdP
YmplY3QoKTsKICAgICBRU2NyaXB0VmFsdWUgbmV3QXJyYXkodWludCBsZW5ndGggPSAwKTsKKyAg
ICBRU2NyaXB0VmFsdWUgbmV3RGF0ZShxc3JlYWwgdmFsdWUpOworICAgIFFTY3JpcHRWYWx1ZSBu
ZXdEYXRlKGNvbnN0IFFEYXRlVGltZSYgdmFsdWUpOwogICAgIFFTY3JpcHRWYWx1ZSBnbG9iYWxP
YmplY3QoKSBjb25zdDsKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFFTY3JpcHRFbmdpbmVQ
cml2YXRlOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVf
cC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcAppbmRleCAz
NjBkZTI5OTQ4M2ZjZTJmMGJiYmQzMWJmYjRmZDNmZGI3ZWM1NGRlLi4zMjlhZDQ4NWZjNmI5NGZh
MDJiZGRjYjMxZmEwZmRlZDBjMDk2MGE4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdGVuZ2luZV9wLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dGVuZ2luZV9wLmNwcApAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAicXNjcmlwdHByb2dy
YW1fcC5oIgogI2luY2x1ZGUgInFzY3JpcHR2YWx1ZV9wLmgiCisjaW5jbHVkZSA8UXRDb3JlL3Fk
YXRldGltZS5oPgogCiAvKiEKICAgICBDb25zdHJ1Y3RzIGEgZGVmYXVsdCBRU2NyaXB0RW5naW5l
UHJpdmF0ZSBvYmplY3QsIGEgbmV3IGdsb2JhbCBjb250ZXh0IHdpbGwgYmUgY3JlYXRlZC4KQEAg
LTM0LDYgKzM1LDggQEAgUVNjcmlwdEVuZ2luZVByaXZhdGU6OlFTY3JpcHRFbmdpbmVQcml2YXRl
KGNvbnN0IFFTY3JpcHRFbmdpbmUqIGVuZ2luZSkKICAgICAsIG1fZXhjZXB0aW9uKDApCiAgICAg
LCBtX2FycmF5Q29uc3RydWN0b3IoMCkKICAgICAsIG1fYXJyYXlQcm90b3R5cGUoMCkKKyAgICAs
IG1fZGF0ZUNvbnN0cnVjdG9yKDApCisgICAgLCBtX2RhdGVQcm90b3R5cGUoMCkKIHsKICAgICBK
U09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QobV9jb250
ZXh0KTsKIApAQCAtNTIsMTIgKzU1LDMwIEBAIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpRU2NyaXB0
RW5naW5lUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5naW5lKiBlbmdpbmUpCiAgICAgUV9BU1NFUlQo
SlNWYWx1ZUlzT2JqZWN0KG1fY29udGV4dCwgYXJyYXlQcm90b3R5cGUpKTsKICAgICBtX2FycmF5
UHJvdG90eXBlID0gYXJyYXlQcm90b3R5cGU7CiAgICAgSlNWYWx1ZVByb3RlY3QobV9jb250ZXh0
LCBtX2FycmF5UHJvdG90eXBlKTsKKworICAgIC8vIFNhdmUgcmVmZXJlbmNlcyB0byB0aGUgRGF0
ZSBjb25zdHJ1Y3RvciBhbmQgcHJvdG90eXBlLgorICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBkYXRlTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRhdGUiKSk7
CisgICAgSlNWYWx1ZVJlZiBkYXRlQ29uc3RydWN0b3IgPSBKU09iamVjdEdldFByb3BlcnR5KG1f
Y29udGV4dCwgZ2xvYmFsT2JqZWN0LCBkYXRlTmFtZS5nZXQoKSwgLyogZXhjZXB0aW9uICovIDAp
OworICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdChtX2NvbnRleHQsIGRhdGVDb25zdHJ1Y3Rv
cikpOworICAgIG1fZGF0ZUNvbnN0cnVjdG9yID0gSlNWYWx1ZVRvT2JqZWN0KG1fY29udGV4dCwg
ZGF0ZUNvbnN0cnVjdG9yLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAgSlNWYWx1ZVByb3RlY3Qo
bV9jb250ZXh0LCBtX2RhdGVDb25zdHJ1Y3Rvcik7CisKKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBp
cyBub3QgdGhlIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwgcHJvcGVydHkgKHdoaWNoIHdlIGNvdWxk
CisgICAgLy8gZ2V0IHZpYSBKU09iamVjdEdldFByb3RvdHlwZSksIGJ1dCB0aGUgRGF0ZS5wcm90
b3R5cGUsIHRoYXQgd2lsbCBiZSBzZXQKKyAgICAvLyBhcyBbW1Byb3RvdHlwZV1dIG9mIERhdGUg
aW5zdGFuY2VzLgorICAgIEpTVmFsdWVSZWYgZGF0ZVByb3RvdHlwZSA9IEpTT2JqZWN0R2V0UHJv
cGVydHkobV9jb250ZXh0LCBtX2RhdGVDb25zdHJ1Y3RvciwgcHJvdG90eXBlTmFtZS5nZXQoKSwg
LyogZXhjZXB0aW9uICovIDApOworICAgIFFfQVNTRVJUKEpTVmFsdWVJc09iamVjdChtX2NvbnRl
eHQsIGRhdGVQcm90b3R5cGUpKTsKKyAgICBtX2RhdGVQcm90b3R5cGUgPSBkYXRlUHJvdG90eXBl
OworICAgIEpTVmFsdWVQcm90ZWN0KG1fY29udGV4dCwgbV9kYXRlUHJvdG90eXBlKTsKIH0KIAog
UVNjcmlwdEVuZ2luZVByaXZhdGU6On5RU2NyaXB0RW5naW5lUHJpdmF0ZSgpCiB7CiAgICAgSlNW
YWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1fYXJyYXlDb25zdHJ1Y3Rvcik7CiAgICAgSlNWYWx1
ZVVucHJvdGVjdChtX2NvbnRleHQsIG1fYXJyYXlQcm90b3R5cGUpOworICAgIEpTVmFsdWVVbnBy
b3RlY3QobV9jb250ZXh0LCBtX2RhdGVDb25zdHJ1Y3Rvcik7CisgICAgSlNWYWx1ZVVucHJvdGVj
dChtX2NvbnRleHQsIG1fZGF0ZVByb3RvdHlwZSk7CisKICAgICBpZiAobV9leGNlcHRpb24pCiAg
ICAgICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2V4Y2VwdGlvbik7CiAgICAgSlNH
bG9iYWxDb250ZXh0UmVsZWFzZShtX2NvbnRleHQpOwpAQCAtMTMwLDYgKzE1MSwzNCBAQCBRU2Ny
aXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6bmV3QXJyYXkodWludCBsZW5n
dGgpCiAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKHRoaXMsIGFycmF5KTsKIH0K
IAorUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdEVuZ2luZVByaXZhdGU6Om5ld0RhdGUocXNy
ZWFsIHZhbHVlKQoreworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU1ZhbHVl
UmVmIGFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VOdW1iZXIobV9jb250ZXh0LCB2YWx1ZSk7CisgICAg
SlNPYmplY3RSZWYgcmVzdWx0ID0gSlNPYmplY3RNYWtlRGF0ZShtX2NvbnRleHQsIC8qIGFyZ3Vt
ZW50Q291bnQgKi8gMSwgJmFyZ3VtZW50LCAmZXhjZXB0aW9uKTsKKworICAgIGlmIChleGNlcHRp
b24pIHsKKyAgICAgICAgc2V0RXhjZXB0aW9uKGV4Y2VwdGlvbiwgTm90TnVsbEV4Y2VwdGlvbik7
CisgICAgICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSgpOworICAgIH0KKworICAg
IHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCByZXN1bHQpOworfQorCitRU2Ny
aXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6bmV3RGF0ZShjb25zdCBRRGF0
ZVRpbWUmIHZhbHVlKQoreworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU1Zh
bHVlUmVmIGFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VOdW1iZXIobV9jb250ZXh0LCBxc3JlYWwodmFs
dWUudG9NU2Vjc1NpbmNlRXBvY2goKSkpOworICAgIEpTT2JqZWN0UmVmIHJlc3VsdCA9IEpTT2Jq
ZWN0TWFrZURhdGUobV9jb250ZXh0LCAvKiBhcmd1bWVudENvdW50ICovIDEsICZhcmd1bWVudCwg
JmV4Y2VwdGlvbik7CisKKyAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgIHNldEV4Y2VwdGlv
bihleGNlcHRpb24sIE5vdE51bGxFeGNlcHRpb24pOworICAgICAgICByZXR1cm4gbmV3IFFTY3Jp
cHRWYWx1ZVByaXZhdGUoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVBy
aXZhdGUodGhpcywgcmVzdWx0KTsKK30KKwogUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdEVu
Z2luZVByaXZhdGU6Omdsb2JhbE9iamVjdCgpIGNvbnN0CiB7CiAgICAgSlNPYmplY3RSZWYgZ2xv
YmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KG1fY29udGV4dCk7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmggYi9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmgKaW5kZXggNDAxYzA1MWQzNTBhMmI3NmZjYzUw
Mzc3ODYwYTM3NTJmNzlhOTE2MC4uMTdkY2JlOTM4NjQzZTU4MzEzMDJlMTQ0ZDNhMTRmZjkyN2Iw
MTY5YSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaApAQCAtNzIsNiAr
NzIsOCBAQCBwdWJsaWM6CiAKICAgICBRU2NyaXB0VmFsdWVQcml2YXRlKiBuZXdPYmplY3QoKSBj
b25zdDsKICAgICBRU2NyaXB0VmFsdWVQcml2YXRlKiBuZXdBcnJheSh1aW50IGxlbmd0aCk7Cisg
ICAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogbmV3RGF0ZShxc3JlYWwgdmFsdWUpOworICAgIFFTY3Jp
cHRWYWx1ZVByaXZhdGUqIG5ld0RhdGUoY29uc3QgUURhdGVUaW1lJiB2YWx1ZSk7CiAgICAgUVNj
cmlwdFZhbHVlUHJpdmF0ZSogZ2xvYmFsT2JqZWN0KCkgY29uc3Q7CiAKICAgICBpbmxpbmUgUVNj
cmlwdFN0cmluZ1ByaXZhdGUqIHRvU3RyaW5nSGFuZGxlKGNvbnN0IFFTdHJpbmcmIHN0cikgY29u
c3Q7CkBAIC03OSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgb3BlcmF0b3IgSlNHbG9i
YWxDb250ZXh0UmVmKCkgY29uc3Q7CiAKICAgICBpbmxpbmUgYm9vbCBpc0FycmF5KEpTVmFsdWVS
ZWYgdmFsdWUpIGNvbnN0OworICAgIGlubGluZSBib29sIGlzRGF0ZShKU1ZhbHVlUmVmIHZhbHVl
KSBjb25zdDsKIHByaXZhdGU6CiAgICAgUVNjcmlwdEVuZ2luZSogcV9wdHI7CiAgICAgSlNHbG9i
YWxDb250ZXh0UmVmIG1fY29udGV4dDsKQEAgLTg2LDYgKzg5LDkgQEAgcHJpdmF0ZToKIAogICAg
IEpTT2JqZWN0UmVmIG1fYXJyYXlDb25zdHJ1Y3RvcjsKICAgICBKU1ZhbHVlUmVmIG1fYXJyYXlQ
cm90b3R5cGU7CisKKyAgICBKU09iamVjdFJlZiBtX2RhdGVDb25zdHJ1Y3RvcjsKKyAgICBKU1Zh
bHVlUmVmIG1fZGF0ZVByb3RvdHlwZTsKIH07CiAKIApAQCAtMjIzLDQgKzIyOSwxMSBAQCBib29s
IFFTY3JpcHRFbmdpbmVQcml2YXRlOjppc0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0CiAg
ICAgcmV0dXJuIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcihtX2NvbnRleHQsIHZhbHVl
LCBtX2FycmF5Q29uc3RydWN0b3IsIC8qIGV4Y2VwdGlvbiAqLyAwKSB8fCBKU1ZhbHVlSXNTdHJp
Y3RFcXVhbChtX2NvbnRleHQsIHZhbHVlLCBtX2FycmF5UHJvdG90eXBlKTsKIH0KIAorYm9vbCBR
U2NyaXB0RW5naW5lUHJpdmF0ZTo6aXNEYXRlKEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0Cit7Cisg
ICAgLy8gSlNDIEFQSSBkb2Vzbid0IGV4cG9ydCB0aGUgW1tDbGFzc11dIGluZm9ybWF0aW9uIGZv
ciB0aGUgYnVpbHRpbnMuIEJ1dCB3ZSBrbm93IHRoYXQgYSB2YWx1ZQorICAgIC8vIGlzIGFuIGRh
dGUgaWYgaXQgd2FzIGNyZWF0ZWQgd2l0aCB0aGUgRGF0ZSBjb25zdHJ1Y3RvciBvciBpZiBpdCBp
cyB0aGUgRGF0ZS5wcm90b3R5cGUuCisgICAgcmV0dXJuIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25z
dHJ1Y3RvcihtX2NvbnRleHQsIHZhbHVlLCBtX2RhdGVDb25zdHJ1Y3RvciwgLyogZXhjZXB0aW9u
ICovIDApIHx8IEpTVmFsdWVJc1N0cmljdEVxdWFsKG1fY29udGV4dCwgdmFsdWUsIG1fZGF0ZVBy
b3RvdHlwZSk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNw
cAppbmRleCBhN2QwYjdiNWFjYTNlODFmYTA5ZDNlZTc1MTZhNDIxNGZkMzE4MmE4Li5jNGI2YzFm
YzAyNDU4NzAxMGM2ZjljMmE1ZjNkMWZhODc0YzE2Y2E5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdHZhbHVlLmNwcApAQCAtMzI0LDYgKzMyNCwxNyBAQCBib29sIFFTY3JpcHRWYWx1ZTo6
aXNBcnJheSgpIGNvbnN0CiB9CiAKIC8qIQorICBSZXR1cm5zIHRydWUgaWYgdGhpcyBRU2NyaXB0
VmFsdWUgaXMgYW4gb2JqZWN0IG9mIHRoZSBEYXRlIGNsYXNzOworICBvdGhlcndpc2UgcmV0dXJu
cyBmYWxzZS4KKworICBcc2EgUVNjcmlwdEVuZ2luZTo6bmV3RGF0ZSgpCisqLworYm9vbCBRU2Ny
aXB0VmFsdWU6OmlzRGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRfcHRyLT5pc0RhdGUoKTsK
K30KKworLyohCiAgIFJldHVybnMgdHJ1ZSBpZiB0aGlzIFFTY3JpcHRWYWx1ZSBpcyBvZiB0aGUg
T2JqZWN0IHR5cGU7IG90aGVyd2lzZQogICByZXR1cm5zIGZhbHNlLgogCkBAIC00ODgsNiArNDk5
LDE4IEBAIFFTY3JpcHRWYWx1ZSBRU2NyaXB0VmFsdWU6OnRvT2JqZWN0KCkgY29uc3QKIH0KIAog
LyohCisgIFJldHVybnMgYSBRRGF0ZVRpbWUgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB2YWx1ZSwg
aW4gbG9jYWwgdGltZS4KKyAgSWYgdGhpcyBRU2NyaXB0VmFsdWUgaXMgbm90IGEgZGF0ZSwgb3Ig
dGhlIHZhbHVlIG9mIHRoZSBkYXRlIGlzIE5hTgorICAoTm90LWEtTnVtYmVyKSwgYW4gaW52YWxp
ZCBRRGF0ZVRpbWUgaXMgcmV0dXJuZWQuCisKKyAgXHNhIGlzRGF0ZSgpCisqLworUURhdGVUaW1l
IFFTY3JpcHRWYWx1ZTo6dG9EYXRlVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRfcHRyLT50
b0RhdGVUaW1lKCk7Cit9CisKKy8qIQogICBDYWxscyB0aGlzIFFTY3JpcHRWYWx1ZSBhcyBhIGZ1
bmN0aW9uLCB1c2luZyBcYSB0aGlzT2JqZWN0IGFzCiAgIHRoZSBgdGhpcycgb2JqZWN0IGluIHRo
ZSBmdW5jdGlvbiBjYWxsLCBhbmQgcGFzc2luZyBcYSBhcmdzCiAgIGFzIGFyZ3VtZW50cyB0byB0
aGUgZnVuY3Rpb24uIFJldHVybnMgdGhlIHZhbHVlIHJldHVybmVkIGZyb20KZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuaCBiL0phdmFTY3JpcHRDb3JlL3F0
L2FwaS9xc2NyaXB0dmFsdWUuaAppbmRleCA5OTFhNmEwMTRlN2RiODgxOTQxNjIwNWY0NTA0MjVh
YmU2MTNmODQ5Li5iZDMzODQ5YmU2NGE5MTJmM2ZmODkxZjZlNDA3OWFjZGVjYjM1ZWE3IDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAKIGNsYXNz
IFFTY3JpcHRFbmdpbmU7CiBjbGFzcyBRU2NyaXB0VmFsdWVQcml2YXRlOworY2xhc3MgUURhdGVU
aW1lOwogCiBjbGFzcyBRU2NyaXB0VmFsdWU7CiB0eXBlZGVmIFFMaXN0PFFTY3JpcHRWYWx1ZT4g
UVNjcmlwdFZhbHVlTGlzdDsKQEAgLTExMiw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c09iamVjdCgpIGNvbnN0OwogICAgIGJvb2wgaXNFcnJvcigpIGNvbnN0OwogICAgIGJvb2wgaXNB
cnJheSgpIGNvbnN0OworICAgIGJvb2wgaXNEYXRlKCkgY29uc3Q7CiAKICAgICBRU3RyaW5nIHRv
U3RyaW5nKCkgY29uc3Q7CiAgICAgcXNyZWFsIHRvTnVtYmVyKCkgY29uc3Q7CkBAIC0xMjIsNiAr
MTI0LDcgQEAgcHVibGljOgogICAgIHF1aW50MzIgdG9VSW50MzIoKSBjb25zdDsKICAgICBxdWlu
dDE2IHRvVUludDE2KCkgY29uc3Q7CiAgICAgUVNjcmlwdFZhbHVlIHRvT2JqZWN0KCkgY29uc3Q7
CisgICAgUURhdGVUaW1lIHRvRGF0ZVRpbWUoKSBjb25zdDsKIAogICAgIFFTY3JpcHRWYWx1ZSBj
YWxsKGNvbnN0IFFTY3JpcHRWYWx1ZSYgdGhpc09iamVjdCA9IFFTY3JpcHRWYWx1ZSgpLAogICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTY3JpcHRWYWx1ZUxpc3QmIGFyZ3MgPSBRU2NyaXB0
VmFsdWVMaXN0KCkpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2
YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCAx
ZDMxOWJhZjUzNDRhNTA5YzczMzExNzVlMjkyMzY1MmM4ODg4OTk2Li4zOTdhMGQ1OGU4MzU1YzYw
MmUyZTdjZjY0ZDQ0OGQyYzQ3NzI2MjZkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZh
bHVlX3AuaApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHQuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPEpTT2JqZWN0UmVmUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFF0Q29yZS9xZGF0ZXRpbWUuaD4K
ICNpbmNsdWRlIDxRdENvcmUvcW1hdGguaD4KICNpbmNsdWRlIDxRdENvcmUvcW51bWVyaWMuaD4K
ICNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KQEAgLTEwMiw2ICsxMDMsNyBAQCBwdWJs
aWM6CiAgICAgaW5saW5lIGJvb2wgaXNPYmplY3QoKTsKICAgICBpbmxpbmUgYm9vbCBpc0Z1bmN0
aW9uKCk7CiAgICAgaW5saW5lIGJvb2wgaXNBcnJheSgpOworICAgIGlubGluZSBib29sIGlzRGF0
ZSgpOwogCiAgICAgaW5saW5lIFFTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKICAgICBpbmxpbmUg
cXNyZWFsIHRvTnVtYmVyKCkgY29uc3Q7CkBAIC0xMTMsNiArMTE1LDcgQEAgcHVibGljOgogCiAg
ICAgaW5saW5lIFFTY3JpcHRWYWx1ZVByaXZhdGUqIHRvT2JqZWN0KFFTY3JpcHRFbmdpbmVQcml2
YXRlKiBlbmdpbmUpOwogICAgIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiB0b09iamVjdCgp
OworICAgIGlubGluZSBRRGF0ZVRpbWUgdG9EYXRlVGltZSgpOwogICAgIGlubGluZSBRU2NyaXB0
VmFsdWVQcml2YXRlKiBwcm90b3R5cGUoKTsKICAgICBpbmxpbmUgdm9pZCBzZXRQcm90b3R5cGUo
UVNjcmlwdFZhbHVlUHJpdmF0ZSogcHJvdG90eXBlKTsKIApAQCAtNDYzLDYgKzQ2NiwyMCBAQCBi
b29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzQXJyYXkoKQogICAgIH0KIH0KIAorYm9vbCBRU2Ny
aXB0VmFsdWVQcml2YXRlOjppc0RhdGUoKQoreworICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAg
IGNhc2UgSlNWYWx1ZToKKyAgICAgICAgaWYgKHJlZmluZWRKU1ZhbHVlKCkgIT0gSlNPYmplY3Qp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIEZhbGwtdGhyb3VnaC4KKyAg
ICBjYXNlIEpTT2JqZWN0OgorICAgICAgICByZXR1cm4gbV9lbmdpbmUtPmlzRGF0ZSgqdGhpcyk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogUVN0cmlu
ZyBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b1N0cmluZygpIGNvbnN0CiB7CiAgICAgc3dpdGNoICht
X3N0YXRlKSB7CkBAIC02NjMsNiArNjgwLDI0IEBAIFFTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OnRvT2JqZWN0KCkKICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVBy
aXZhdGU7CiB9CiAKK1FEYXRlVGltZSBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b0RhdGVUaW1lKCkK
K3sKKyAgICBpZiAoIWlzRGF0ZSgpKQorICAgICAgICByZXR1cm4gUURhdGVUaW1lKCk7CisKKyAg
ICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgcXNyZWFsIHQgPSBKU1ZhbHVlVG9OdW1i
ZXIoKm1fZW5naW5lLCAqdGhpcywgJmV4Y2VwdGlvbik7CisKKyAgICBpZiAoZXhjZXB0aW9uKSB7
CisgICAgICAgIG1fZW5naW5lLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKKyAgICAgICAgcmV0
dXJuIFFEYXRlVGltZSgpOworICAgIH0KKworICAgIFFEYXRlVGltZSByZXN1bHQ7CisgICAgcmVz
dWx0LnNldE1TZWNzU2luY2VFcG9jaChxaW50NjQodCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRlOjpwcm90
b3R5cGUoKQogewogICAgIGlmIChpc09iamVjdCgpKSB7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCmlu
ZGV4IDcyY2E5YjE1ZDdjMzVlYmU0NDdlNDU5MGIyNGQzMDMzMjU2OThiNDEuLjI1OTViZWU3YTdl
NGFjNDgxMzg2OTk3ZGY4MTgzYjBiNThiNDljNGMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCkBA
IC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAicXNjcmlwdHByb2dyYW0uaCIKICNpbmNsdWRlICJx
c2NyaXB0c3ludGF4Y2hlY2tyZXN1bHQuaCIKICNpbmNsdWRlICJxc2NyaXB0dmFsdWUuaCIKKyNp
bmNsdWRlIDxRdENvcmUvcW51bWVyaWMuaD4KICNpbmNsdWRlIDxRdFRlc3QvcXRlc3QuaD4KIAog
Y2xhc3MgdHN0X1FTY3JpcHRFbmdpbmUgOiBwdWJsaWMgUU9iamVjdCB7CkBAIC00OSw2ICs1MCw3
IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCB0b09iamVjdFR3b0VuZ2luZXMoKTsKICAgICB2
b2lkIG5ld0FycmF5KCk7CiAgICAgdm9pZCB1bmNhdWdodEV4Y2VwdGlvbigpOworICAgIHZvaWQg
bmV3RGF0ZSgpOwogfTsKIAogLyogRXZhbHVhdGluZyBhIHNjcmlwdCB0aGF0IHRocm93IGFuIHVu
aGFuZGxlZCBleGNlcHRpb24gc2hvdWxkIHJldHVybiBhbiBpbnZhbGlkIHZhbHVlLiAqLwpAQCAt
NTQwLDUgKzU0Miw1OSBAQCB2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjp1bmNhdWdodEV4Y2VwdGlv
bigpCiAgICAgfQogfQogCit2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjpuZXdEYXRlKCkKK3sKKyAg
ICBRU2NyaXB0RW5naW5lIGVuZzsKKworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIGRhdGUg
PSBlbmcubmV3RGF0ZSgwKTsKKyAgICAgICAgUUNPTVBBUkUoZGF0ZS5pc1ZhbGlkKCksIHRydWUp
OworICAgICAgICBRQ09NUEFSRShkYXRlLmlzRGF0ZSgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBB
UkUoZGF0ZS5pc09iamVjdCgpLCB0cnVlKTsKKyAgICAgICAgUVZFUklGWSghZGF0ZS5pc0Z1bmN0
aW9uKCkpOworICAgICAgICAvLyBwcm90b3R5cGUgc2hvdWxkIGJlIERhdGUucHJvdG90eXBlCisg
ICAgICAgIFFDT01QQVJFKGRhdGUucHJvdG90eXBlKCkuaXNWYWxpZCgpLCB0cnVlKTsKKyAgICAg
ICAgUUNPTVBBUkUoZGF0ZS5wcm90b3R5cGUoKS5pc0RhdGUoKSwgdHJ1ZSk7CisgICAgICAgIFFD
T01QQVJFKGRhdGUucHJvdG90eXBlKCkuc3RyaWN0bHlFcXVhbHMoZW5nLmV2YWx1YXRlKCJEYXRl
LnByb3RvdHlwZSIpKSwgdHJ1ZSk7CisgICAgfQorCisgICAgeworICAgICAgICBRRGF0ZVRpbWUg
ZHQgPSBRRGF0ZVRpbWUoUURhdGUoMSwgMiwgMyksIFFUaW1lKDQsIDUsIDYsIDcpLCBRdDo6TG9j
YWxUaW1lKTsKKyAgICAgICAgUVNjcmlwdFZhbHVlIGRhdGUgPSBlbmcubmV3RGF0ZShkdCk7Cisg
ICAgICAgIFFDT01QQVJFKGRhdGUuaXNWYWxpZCgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUo
ZGF0ZS5pc0RhdGUoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKGRhdGUuaXNPYmplY3QoKSwg
dHJ1ZSk7CisgICAgICAgIC8vIHByb3RvdHlwZSBzaG91bGQgYmUgRGF0ZS5wcm90b3R5cGUKKyAg
ICAgICAgUUNPTVBBUkUoZGF0ZS5wcm90b3R5cGUoKS5pc1ZhbGlkKCksIHRydWUpOworICAgICAg
ICBRQ09NUEFSRShkYXRlLnByb3RvdHlwZSgpLmlzRGF0ZSgpLCB0cnVlKTsKKyAgICAgICAgUUNP
TVBBUkUoZGF0ZS5wcm90b3R5cGUoKS5zdHJpY3RseUVxdWFscyhlbmcuZXZhbHVhdGUoIkRhdGUu
cHJvdG90eXBlIikpLCB0cnVlKTsKKworICAgICAgICBRQ09NUEFSRShkYXRlLnRvRGF0ZVRpbWUo
KSwgZHQpOworICAgIH0KKworICAgIHsKKyAgICAgICAgUURhdGVUaW1lIGR0ID0gUURhdGVUaW1l
KFFEYXRlKDEsIDIsIDMpLCBRVGltZSg0LCA1LCA2LCA3KSwgUXQ6OlVUQyk7CisgICAgICAgIFFT
Y3JpcHRWYWx1ZSBkYXRlID0gZW5nLm5ld0RhdGUoZHQpOworICAgICAgICAvLyB0b0RhdGVUaW1l
KCkgcmVzdWx0IHNob3VsZCBiZSBpbiBsb2NhbCB0aW1lCisgICAgICAgIFFDT01QQVJFKGRhdGUu
dG9EYXRlVGltZSgpLCBkdC50b0xvY2FsVGltZSgpKTsKKyAgICB9CisKKyAgICAvLyBEYXRlLnBh
cnNlKCkgc2hvdWxkIHJldHVybiBOYU4gd2hlbiBpdCBmYWlscworICAgIHsKKyAgICAgICAgUVNj
cmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZSgiRGF0ZS5wYXJzZSgpIik7CisgICAgICAgIFFW
RVJJRlkocmV0LmlzTnVtYmVyKCkpOworICAgICAgICBRVkVSSUZZKHFJc05hTihyZXQudG9OdW1i
ZXIoKSkpOworICAgIH0KKworICAgIC8vIERhdGUucGFyc2UoKSBzaG91bGQgYmUgYWJsZSB0byBw
YXJzZSB0aGUgb3V0cHV0IG9mIERhdGUoKS50b1N0cmluZygpCisjaWZuZGVmIFFfV1NfV0lOIC8v
IFRPRE86IFRlc3QgYW5kIHJlbW92ZSB0aGlzIHNpbmNlIDE2OTcwMSBoYXMgYmVlbiBmaXhlZAor
ICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZSgidmFyIHggPSBu
ZXcgRGF0ZSgpOyB2YXIgcyA9IHgudG9TdHJpbmcoKTsgcyA9PSBuZXcgRGF0ZShEYXRlLnBhcnNl
KHMpKS50b1N0cmluZygpIik7CisgICAgICAgIFFWRVJJRlkocmV0LmlzQm9vbGVhbigpKTsKKyAg
ICAgICAgUUNPTVBBUkUocmV0LnRvQm9vbGVhbigpLCB0cnVlKTsKKyAgICB9CisjZW5kaWYKK30K
KwogUVRFU1RfTUFJTih0c3RfUVNjcmlwdEVuZ2luZSkKICNpbmNsdWRlICJ0c3RfcXNjcmlwdGVu
Z2luZS5tb2MiCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZh
bHVlL3RzdF9xc2NyaXB0dmFsdWUuaAppbmRleCA2MTA4NDIzZjJmOTM2NjFiZmE0NWQ1OTU3MDJm
ZmQ5YThhNWViNzZmLi4xYzc4ZWFjOGY1NGIzZjE1ZWQyOTBlZmFkN2U2YWYyN2M3MGUzZDBhIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3Jp
cHR2YWx1ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3Rf
cXNjcmlwdHZhbHVlLmgKQEAgLTgwLDYgKzgwLDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lk
IGlzT2JqZWN0X2RhdGEoKTsKICAgICB2b2lkIGlzT2JqZWN0KCk7CiAKKyAgICB2b2lkIGlzRGF0
ZV9kYXRhKCk7CisgICAgdm9pZCBpc0RhdGUoKTsKKwogICAgIHZvaWQgaXNTdHJpbmdfZGF0YSgp
OwogICAgIHZvaWQgaXNTdHJpbmcoKTsKIApAQCAtMTU5LDYgKzE2MiwxMCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaXNPYmplY3RfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcik7CiAgICAgdm9pZCBp
c09iamVjdF90ZXN0KGNvbnN0IGNoYXIqIGV4cHIsIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUp
OwogCisgICAgdm9pZCBpc0RhdGVfaW5pdERhdGEoKTsKKyAgICB2b2lkIGlzRGF0ZV9tYWtlRGF0
YShjb25zdCBjaGFyKiBleHByKTsKKyAgICB2b2lkIGlzRGF0ZV90ZXN0KGNvbnN0IGNoYXIqIGV4
cHIsIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpOworCiAgICAgdm9pZCBpc1N0cmluZ19pbml0
RGF0YSgpOwogICAgIHZvaWQgaXNTdHJpbmdfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcik7CiAg
ICAgdm9pZCBpc1N0cmluZ190ZXN0KGNvbnN0IGNoYXIqIGV4cHIsIGNvbnN0IFFTY3JpcHRWYWx1
ZSYgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZh
bHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2lzdHlwZS5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfaXN0eXBl
LmNwcAppbmRleCBmMWRlNzdkMzExODk1Y2UxNjc1N2Y3MDA2ODEzMTczZDIzODU1NzNmLi44ZTc5
ZWE2ZGE3MzdiYjg2Mzc4OTIyMzE4MTIwNjA1ZmNlZjE2NDhlIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRf
aXN0eXBlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0
X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfaXN0eXBlLmNwcApAQCAtNTY1LDMgKzU2NSwzMyBAQCB2
b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzT2JqZWN0X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFT
Y3JpcHRWYWx1ZSYgdmFsdWUpCiB9CiAKIERFRklORV9URVNUX0ZVTkNUSU9OKGlzT2JqZWN0KQor
Cit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzRGF0ZV9pbml0RGF0YSgpCit7CisgICAgUVRlc3Q6
OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKKyAgICBpbml0U2NyaXB0VmFsdWVzKCk7Cit9
CisKK3N0YXRpYyBRU3RyaW5nIGlzRGF0ZV9hcnJheVtdID0geworICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwiRGF0ZS5wcm90b3R5cGVcIikiLAorICAgICJlbmdpbmUtPm5ld0RhdGUoUURhdGVUaW1l
KCkpIn07CisKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNEYXRlX21ha2VEYXRhKGNvbnN0IGNo
YXIqIGV4cHIpCit7CisgICAgc3RhdGljIFFTZXQ8UVN0cmluZz4gaXNEYXRlOworICAgIGlmIChp
c0RhdGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlzRGF0ZS5yZXNlcnZlKDIpOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjsgKytpKQorICAgICAgICAgICAgaXNEYXRlLmluc2Vy
dChpc0RhdGVfYXJyYXlbaV0pOworICAgIH0KKyAgICBuZXdSb3coZXhwcikgPDwgaXNEYXRlLmNv
bnRhaW5zKGV4cHIpOworfQorCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzRGF0ZV90ZXN0KGNv
bnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQoreworICAgIFFGRVRDSChib29s
LCBleHBlY3RlZCk7CisgICAgUUNPTVBBUkUodmFsdWUuaXNEYXRlKCksIGV4cGVjdGVkKTsKKyAg
ICBRQ09NUEFSRSh2YWx1ZS5pc0RhdGUoKSwgZXhwZWN0ZWQpOworfQorCitERUZJTkVfVEVTVF9G
VU5DVElPTihpc0RhdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62146</attachid>
            <date>2010-07-20 22:46:05 -0700</date>
            <delta_ts>2010-09-29 07:28:18 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-Qt-QScriptEngine-should-have-an-API-for-creating-Dat.patch</filename>
            <type>text/plain</type>
            <size>36529</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSBhNDUyNzIyNWJmOTZlZDVlZDIzNGMxNDRlY2Y1ZTg3ZDFjNDJhZjkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCAxNCBKdWwgMjAxMCAxMDozMTowOSAt
MDMwMApTdWJqZWN0OiBbUEFUQ0hdIFtRdF0gUVNjcmlwdEVuZ2luZSBzaG91bGQgaGF2ZSBhbiBB
UEkgZm9yIGNyZWF0aW5nIERhdGUgb2JqZWN0cwoKLS0tCiBKYXZhU2NyaXB0Q29yZS9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKysrKysrKysrKysrKysrKwogSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwICAgICAgICAgICAgfCAgIDIzICsr
KysrKwogSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaCAgICAgICAgICAgICAg
fCAgICA1ICstCiBKYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcCAgICAg
ICAgICB8ICAgMTQgKysrKwogSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5o
ICAgICAgICAgICAgfCAgICA4ICsrCiAuLi4vcXQvYXBpL3FzY3JpcHRvcmlnaW5hbGdsb2JhbG9i
amVjdF9wLmggICAgICAgICB8ICAgMTEgKysrCiBKYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dHZhbHVlLmNwcCAgICAgICAgICAgICB8ICAgMjMgKysrKysrCiBKYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHZhbHVlLmggICAgICAgICAgICAgICB8ICAgIDMgKwogSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmggICAgICAgICAgICAgfCAgIDM1ICsrKysrKysrKwogLi4u
L3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwICAgfCAgIDQ5ICsr
KysrKysrKysrKwogLi4uL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgg
ICAgICAgfCAgICA3ICsrCiAuLi4vdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfY29tcGFyaXNv
bi5jcHAgICAgICB8ICAgMjkgKysrKy0tLQogLi4uL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVk
X2luaXQuY3BwICAgICAgICAgICAgfCAgICAxICsKIC4uLi90c3RfcXNjcmlwdHZhbHVlX2dlbmVy
YXRlZF9pc3R5cGUuY3BwICAgICAgICAgIHwgICA2MCArKysrKysrKysrKystLS0tCiAuLi4vdHN0
X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfdG90eXBlLmNwcCAgICAgICAgICB8ICAgNzggKysrKysr
KysrKysrLS0tLS0tLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDM1MSBpbnNlcnRpb25zKCspLCA2MCBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9DaGFuZ2VMb2cgYi9K
YXZhU2NyaXB0Q29yZS9xdC9DaGFuZ2VMb2cKaW5kZXggNDQ4YTU5ZS4uMWIyMjMwNyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEwLTA3LTIwICBDYWlvIE1hcmNlbG8gZGUg
T2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBRU2NyaXB0RW5naW5l
IHNob3VsZCBoYXZlIGFuIEFQSSBmb3IgY3JlYXRpbmcgRGF0ZSBvYmplY3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTY2NworCisgICAgICAgIElt
cGxlbWVudCBuZXdEYXRlKCksIGlzRGF0ZSgpIGFuZCB0b0RhdGVUaW1lKCkgZnVuY3Rpb25zLiBV
c2UgdGhlCisgICAgICAgIFFEYXRlVGltZTo6e3RvLHNldH1NU2Vjc1NpbmNlRXBvY2goKSBmdW5j
dGlvbnMgdG8gZG8gdGhlCisgICAgICAgIGNhbGN1bGF0aW9ucy4KKworICAgICAgICBUaGlzIGNv
bW1pdCBhbHNvIGFkZCB0aGUgcmVsYXRlZCB0ZXN0cyB0aGF0IHdlcmUgaW4gUXQKKyAgICAgICAg
dXBzdHJlYW0uIFBhcnQgb2YgdGhlIHRlc3RzIHdlcmUgZ2VuZXJhdGVkIHVzaW5nIHRvb2xzIGF2
YWlsYWJsZQorICAgICAgICBpbiBRdCB1cHN0cmVhbS4KKworICAgICAgICAqIGFwaS9xc2NyaXB0
ZW5naW5lLmNwcDoKKyAgICAgICAgKFFTY3JpcHRFbmdpbmU6Om5ld0RhdGUpOgorICAgICAgICAq
IGFwaS9xc2NyaXB0ZW5naW5lLmg6CisgICAgICAgICogYXBpL3FzY3JpcHRlbmdpbmVfcC5jcHA6
CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6bmV3RGF0ZSk6CisgICAgICAgICogYXBp
L3FzY3JpcHRlbmdpbmVfcC5oOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6OmlzRGF0
ZSk6CisKKyAgICAgICAgKiBhcGkvcXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3AuaDoKKyAg
ICAgICAgKFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6UVNjcmlwdE9yaWdpbmFsR2xvYmFs
T2JqZWN0KTogbmVlZAorICAgICAgICB0byBrZWVwIHRyYWNrIG9mIERhdGUgQ29uc3RydWN0b3Ig
YW5kIFByb3RvdHlwZS4KKyAgICAgICAgKFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6flFT
Y3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdCk6IGRpdHRvLgorICAgICAgICAoUVNjcmlwdE9yaWdp
bmFsR2xvYmFsT2JqZWN0Ojppc0RhdGUpOiB1c2UgdGhlIERhdGUgQ29uc3RydWN0b3IKKyAgICAg
ICAgYW5kIFByb3RvdHlwZSB0byBpZGVudGlmeSBEYXRlIHZhbHVlcy4KKworICAgICAgICAqIGFw
aS9xc2NyaXB0dmFsdWUuY3BwOgorICAgICAgICAoUVNjcmlwdFZhbHVlOjppc0RhdGUpOgorICAg
ICAgICAoUVNjcmlwdFZhbHVlOjp0b0RhdGVUaW1lKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZh
bHVlLmg6CisgICAgICAgICogYXBpL3FzY3JpcHR2YWx1ZV9wLmg6CisgICAgICAgIChRU2NyaXB0
VmFsdWVQcml2YXRlOjppc0RhdGUpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9E
YXRlVGltZSk6CisKKyAgICAgICAgKiB0ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5n
aW5lLmNwcDoKKyAgICAgICAgKHRzdF9RU2NyaXB0RW5naW5lOjpuZXdEYXRlKToKKyAgICAgICAg
KiB0ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oOgorICAgICAgICAqIHRlc3Rz
L3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF9jb21wYXJpc29uLmNwcDoK
KyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OmVxdWFsc19tYWtlRGF0YSk6CisgICAgICAgICh0
c3RfUVNjcmlwdFZhbHVlOjplcXVhbHNfdGVzdCk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVl
OjpzdHJpY3RseUVxdWFsc19tYWtlRGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjpp
bnN0YW5jZU9mX21ha2VEYXRhKToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6Omluc3RhbmNl
T2ZfdGVzdCk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVf
Z2VuZXJhdGVkX2luaXQuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aW5pdFNjcmlw
dFZhbHVlcyk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVf
Z2VuZXJhdGVkX2lzdHlwZS5jcHA6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjppc1ZhbGlk
X21ha2VEYXRhKToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OmlzT2JqZWN0X21ha2VEYXRh
KToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OmlzRGF0ZV9pbml0RGF0YSk6CisgICAgICAg
ICh0c3RfUVNjcmlwdFZhbHVlOjppc0RhdGVfbWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3Jp
cHRWYWx1ZTo6aXNEYXRlX3Rlc3QpOgorICAgICAgICAqIHRlc3RzL3FzY3JpcHR2YWx1ZS90c3Rf
cXNjcmlwdHZhbHVlX2dlbmVyYXRlZF90b3R5cGUuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRW
YWx1ZTo6dG9TdHJpbmdfbWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9O
dW1iZXJfbWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9Cb29sX21ha2VE
YXRhKToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OnRvQm9vbGVhbl9tYWtlRGF0YSk6Cisg
ICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0b0ludGVnZXJfbWFrZURhdGEpOgorICAgICAgICAo
dHN0X1FTY3JpcHRWYWx1ZTo6dG9JbnQzMl9tYWtlRGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlw
dFZhbHVlOjp0b1VJbnQzMl9tYWtlRGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0
b1VJbnQxNl9tYWtlRGF0YSk6CisKIDIwMTAtMDctMTQgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6
ZWoubm93YWNraUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dGVuZ2luZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHAKaW5k
ZXggNGIyMzE5Yi4uZWU1MDVhNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3Fz
Y3JpcHRlbmdpbmUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5l
LmNwcApAQCAtMjUsNiArMjUsOCBAQAogI2luY2x1ZGUgInFzY3JpcHRwcm9ncmFtX3AuaCIKICNp
bmNsdWRlICJxc2NyaXB0c3ludGF4Y2hlY2tyZXN1bHRfcC5oIgogI2luY2x1ZGUgInFzY3JpcHR2
YWx1ZV9wLmgiCisjaW5jbHVkZSA8UXRDb3JlL3FkYXRldGltZS5oPgorI2luY2x1ZGUgPFF0Q29y
ZS9xbnVtZXJpYy5oPgogCiAvKiEKICAgICBDb25zdHJ1Y3RzIGEgUVNjcmlwdEVuZ2luZSBvYmpl
Y3QuCkBAIC0yODEsNiArMjgzLDI3IEBAIFFTY3JpcHRWYWx1ZSBRU2NyaXB0RW5naW5lOjpuZXdB
cnJheSh1aW50IGxlbmd0aCkKIH0KIAogLyohCisgICAgQ3JlYXRlcyBhIFF0U2NyaXB0IG9iamVj
dCBvZiBjbGFzcyBEYXRlIHdpdGggdGhlIGdpdmVuIFxhIHZhbHVlCisgICAgKHRoZSBudW1iZXIg
b2YgbWlsbGlzZWNvbmRzIHNpbmNlIDAxIEphbnVhcnkgMTk3MCwgVVRDKS4KKyovCitRU2NyaXB0
VmFsdWUgUVNjcmlwdEVuZ2luZTo6bmV3RGF0ZShxc3JlYWwgdmFsdWUpCit7CisgICAgcmV0dXJu
IFFTY3JpcHRWYWx1ZVByaXZhdGU6OmdldChkX3B0ci0+bmV3RGF0ZSh2YWx1ZSkpOworfQorCisv
KiEKKyAgICBDcmVhdGVzIGEgUXRTY3JpcHQgb2JqZWN0IG9mIGNsYXNzIERhdGUgZnJvbSB0aGUg
Z2l2ZW4gXGEgdmFsdWUuCisKKyAgICBcc2EgUVNjcmlwdFZhbHVlOjp0b0RhdGVUaW1lKCkKKyov
CitRU2NyaXB0VmFsdWUgUVNjcmlwdEVuZ2luZTo6bmV3RGF0ZShjb25zdCBRRGF0ZVRpbWUmIHZh
bHVlKQoreworICAgIGlmICh2YWx1ZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBRU2NyaXB0
VmFsdWVQcml2YXRlOjpnZXQoZF9wdHItPm5ld0RhdGUocXNyZWFsKHZhbHVlLnRvTVNlY3NTaW5j
ZUVwb2NoKCkpKSk7CisgICAgcmV0dXJuIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmdldChkX3B0ci0+
bmV3RGF0ZShxU05hTigpKSk7Cit9CisKKy8qIQogICBSZXR1cm5zIHRoaXMgZW5naW5lJ3MgR2xv
YmFsIE9iamVjdC4KIAogICBCeSBkZWZhdWx0LCB0aGUgR2xvYmFsIE9iamVjdCBjb250YWlucyB0
aGUgYnVpbHQtaW4gb2JqZWN0cyB0aGF0IGFyZQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHRlbmdpbmUuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5n
aW5lLmgKaW5kZXggMWE4N2EzNy4uNTcwNjczYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHRlbmdpbmUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dGVuZ2luZS5oCkBAIC0yMywxMSArMjMsMTIgQEAKICNpbmNsdWRlICJxc2NyaXB0cHJvZ3JhbS5o
IgogI2luY2x1ZGUgInFzY3JpcHRzdHJpbmcuaCIKICNpbmNsdWRlICJxc2NyaXB0c3ludGF4Y2hl
Y2tyZXN1bHQuaCIKKyNpbmNsdWRlICJxc2NyaXB0dmFsdWUuaCIKICNpbmNsdWRlIDxRdENvcmUv
cW9iamVjdC5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgogI2luY2x1ZGUgPFF0
Q29yZS9xc3RyaW5nLmg+CiAKLWNsYXNzIFFTY3JpcHRWYWx1ZTsKK2NsYXNzIFFEYXRlVGltZTsK
IGNsYXNzIFFTY3JpcHRFbmdpbmVQcml2YXRlOwogCiAvLyBJbnRlcm5hbCB0eXBlZGVmCkBAIC01
OCw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICBRU2NyaXB0VmFsdWUgdW5kZWZpbmVkVmFsdWUoKTsK
ICAgICBRU2NyaXB0VmFsdWUgbmV3T2JqZWN0KCk7CiAgICAgUVNjcmlwdFZhbHVlIG5ld0FycmF5
KHVpbnQgbGVuZ3RoID0gMCk7CisgICAgUVNjcmlwdFZhbHVlIG5ld0RhdGUocXNyZWFsIHZhbHVl
KTsKKyAgICBRU2NyaXB0VmFsdWUgbmV3RGF0ZShjb25zdCBRRGF0ZVRpbWUmIHZhbHVlKTsKICAg
ICBRU2NyaXB0VmFsdWUgZ2xvYmFsT2JqZWN0KCkgY29uc3Q7CiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBRU2NyaXB0RW5naW5lUHJpdmF0ZTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3Jp
cHRlbmdpbmVfcC5jcHAKaW5kZXggZTMzMTFlZC4uOWRjY2Y3MCAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5jcHAKQEAgLTExMCw2ICsxMTAsMjAgQEAgUVNjcmlwdFZh
bHVlUHJpdmF0ZSogUVNjcmlwdEVuZ2luZVByaXZhdGU6Om5ld0FycmF5KHVpbnQgbGVuZ3RoKQog
ICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBhcnJheSk7CiB9CiAKK1FT
Y3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpuZXdEYXRlKHFzcmVhbCB2
YWx1ZSkKK3sKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgSlNWYWx1ZVJlZiBh
cmd1bWVudCA9IEpTVmFsdWVNYWtlTnVtYmVyKG1fY29udGV4dCwgdmFsdWUpOworICAgIEpTT2Jq
ZWN0UmVmIHJlc3VsdCA9IEpTT2JqZWN0TWFrZURhdGUobV9jb250ZXh0LCAvKiBhcmd1bWVudENv
dW50ICovIDEsICZhcmd1bWVudCwgJmV4Y2VwdGlvbik7CisKKyAgICBpZiAoZXhjZXB0aW9uKSB7
CisgICAgICAgIHNldEV4Y2VwdGlvbihleGNlcHRpb24sIE5vdE51bGxFeGNlcHRpb24pOworICAg
ICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUoKTsKKyAgICB9CisKKyAgICByZXR1
cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUodGhpcywgcmVzdWx0KTsKK30KKwogUVNjcmlwdFZh
bHVlUHJpdmF0ZSogUVNjcmlwdEVuZ2luZVByaXZhdGU6Omdsb2JhbE9iamVjdCgpIGNvbnN0CiB7
CiAgICAgSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0
KG1fY29udGV4dCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVu
Z2luZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmgKaW5kZXgg
ZDU0Y2RjYy4uNDZiZTMyOCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3Jp
cHRlbmdpbmVfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3Au
aApAQCAtNzMsMTYgKzczLDE5IEBAIHB1YmxpYzoKIAogICAgIFFTY3JpcHRWYWx1ZVByaXZhdGUq
IG5ld09iamVjdCgpIGNvbnN0OwogICAgIFFTY3JpcHRWYWx1ZVByaXZhdGUqIG5ld0FycmF5KHVp
bnQgbGVuZ3RoKTsKKyAgICBRU2NyaXB0VmFsdWVQcml2YXRlKiBuZXdEYXRlKHFzcmVhbCB2YWx1
ZSk7CiAgICAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogZ2xvYmFsT2JqZWN0KCkgY29uc3Q7CiAKICAg
ICBpbmxpbmUgUVNjcmlwdFN0cmluZ1ByaXZhdGUqIHRvU3RyaW5nSGFuZGxlKGNvbnN0IFFTdHJp
bmcmIHN0cikgY29uc3Q7CiAKICAgICBpbmxpbmUgb3BlcmF0b3IgSlNHbG9iYWxDb250ZXh0UmVm
KCkgY29uc3Q7CiAKKyAgICBpbmxpbmUgYm9vbCBpc0RhdGUoSlNWYWx1ZVJlZiB2YWx1ZSkgY29u
c3Q7CiAgICAgaW5saW5lIGJvb2wgaXNBcnJheShKU1ZhbHVlUmVmIHZhbHVlKSBjb25zdDsKICAg
ICBpbmxpbmUgYm9vbCBpc0Vycm9yKEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0OwogICAgIGlubGlu
ZSBib29sIG9iamVjdEhhc093blByb3BlcnR5KEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdS
ZWYgcHJvcGVydHkpIGNvbnN0OwogICAgIGlubGluZSBRVmVjdG9yPEpTU3RyaW5nUmVmPiBvYmpl
Y3RHZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0UmVmIG9iamVjdCkgY29uc3Q7CisKIHByaXZh
dGU6CiAgICAgUVNjcmlwdEVuZ2luZSogcV9wdHI7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIG1f
Y29udGV4dDsKQEAgLTIxOSw2ICsyMjIsMTEgQEAgUVNjcmlwdEVuZ2luZVByaXZhdGU6Om9wZXJh
dG9yIEpTR2xvYmFsQ29udGV4dFJlZigpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0K
IAorYm9vbCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6aXNEYXRlKEpTVmFsdWVSZWYgdmFsdWUpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fb3JpZ2luYWxHbG9iYWxPYmplY3QuaXNEYXRlKHZhbHVlKTsK
K30KKwogYm9vbCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6aXNBcnJheShKU1ZhbHVlUmVmIHZhbHVl
KSBjb25zdAogewogICAgIHJldHVybiBtX29yaWdpbmFsR2xvYmFsT2JqZWN0LmlzQXJyYXkodmFs
dWUpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRvcmlnaW5hbGds
b2JhbG9iamVjdF9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdG9yaWdpbmFsZ2xv
YmFsb2JqZWN0X3AuaAppbmRleCA4ZDA4MGZiLi41NmFiMTcxIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9hcGkvcXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3AuaAorKysgYi9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdG9yaWdpbmFsZ2xvYmFsb2JqZWN0X3AuaApAQCAtNDMs
NiArNDMsNyBAQCBwdWJsaWM6CiAgICAgaW5saW5lIGJvb2wgb2JqZWN0SGFzT3duUHJvcGVydHko
SlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eSkgY29uc3Q7CiAgICAgaW5s
aW5lIFFWZWN0b3I8SlNTdHJpbmdSZWY+IG9iamVjdEdldE93blByb3BlcnR5TmFtZXMoSlNPYmpl
Y3RSZWYgb2JqZWN0KSBjb25zdDsKIAorICAgIGlubGluZSBib29sIGlzRGF0ZShKU1ZhbHVlUmVm
IHZhbHVlKSBjb25zdDsKICAgICBpbmxpbmUgYm9vbCBpc0FycmF5KEpTVmFsdWVSZWYgdmFsdWUp
IGNvbnN0OwogICAgIGlubGluZSBib29sIGlzRXJyb3IoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3Q7
CiBwcml2YXRlOgpAQCAtNTcsNiArNTgsOCBAQCBwcml2YXRlOgogICAgIEpTVmFsdWVSZWYgbV9h
cnJheVByb3RvdHlwZTsKICAgICBKU09iamVjdFJlZiBtX2Vycm9yQ29uc3RydWN0b3I7CiAgICAg
SlNWYWx1ZVJlZiBtX2Vycm9yUHJvdG90eXBlOworICAgIEpTT2JqZWN0UmVmIG1fZGF0ZUNvbnN0
cnVjdG9yOworICAgIEpTVmFsdWVSZWYgbV9kYXRlUHJvdG90eXBlOwogCiAgICAgLy8gUmVmZXJl
bmNlIHRvIHN0YW5kYXJkIEpTIGZ1bmN0aW9ucyB0aGF0IGFyZSBub3QgZXhwb3NlZCBieSBKU0Mg
QyBBUEkuCiAgICAgSlNPYmplY3RSZWYgbV9oYXNPd25Qcm9wZXJ0eUZ1bmN0aW9uOwpAQCAtNzMs
NiArNzYsNyBAQCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OlFTY3JpcHRPcmlnaW5hbEds
b2JhbE9iamVjdChKU0dsb2JhbENvbnRleHRSZWYgY29udAogICAgIHByb3BlcnR5TmFtZS5hZG9w
dChKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygicHJvdG90eXBlIikpOwogICAgIGluaXRp
YWxpemVNZW1iZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUuZ2V0KCksICJBcnJheSIsIG1f
YXJyYXlDb25zdHJ1Y3RvciwgbV9hcnJheVByb3RvdHlwZSk7CiAgICAgaW5pdGlhbGl6ZU1lbWJl
cihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZS5nZXQoKSwgIkVycm9yIiwgbV9lcnJvckNvbnN0
cnVjdG9yLCBtX2Vycm9yUHJvdG90eXBlKTsKKyAgICBpbml0aWFsaXplTWVtYmVyKGdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lLmdldCgpLCAiRGF0ZSIsIG1fZGF0ZUNvbnN0cnVjdG9yLCBtX2Rh
dGVQcm90b3R5cGUpOwogCiAgICAgcHJvcGVydHlOYW1lLmFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJoYXNPd25Qcm9wZXJ0eSIpKTsKICAgICBtX2hhc093blByb3BlcnR5RnVu
Y3Rpb24gPSBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihKU09iamVjdEdldFByb3BlcnR5KG1fY29u
dGV4dCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUuZ2V0KCksICZleGNlcHRpb24pKTsKQEAg
LTExOSw2ICsxMjMsOCBAQCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6On5RU2NyaXB0T3Jp
Z2luYWxHbG9iYWxPYmplY3QoKQogICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2Fy
cmF5UHJvdG90eXBlKTsKICAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9lcnJvckNv
bnN0cnVjdG9yKTsKICAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9lcnJvclByb3Rv
dHlwZSk7CisgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1fZGF0ZUNvbnN0cnVjdG9y
KTsKKyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9kYXRlUHJvdG90eXBlKTsKICAg
ICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9oYXNPd25Qcm9wZXJ0eUZ1bmN0aW9uKTsK
ICAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9nZXRPd25Qcm9wZXJ0eU5hbWVzRnVu
Y3Rpb24pOwogICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UobV9jb250ZXh0KTsKQEAgLTE2Myw2
ICsxNjksMTEgQEAgaW5saW5lIFFWZWN0b3I8SlNTdHJpbmdSZWY+IFFTY3JpcHRPcmlnaW5hbEds
b2JhbE9iamVjdDo6b2JqZWN0R2V0T3duUHJvcGVydHlOYW0KICAgICByZXR1cm4gbmFtZXM7CiB9
CiAKK2lubGluZSBib29sIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6aXNEYXRlKEpTVmFs
dWVSZWYgdmFsdWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzVHlwZSh2YWx1ZSwgbV9kYXRlQ29u
c3RydWN0b3IsIG1fZGF0ZVByb3RvdHlwZSk7Cit9CisKIGlubGluZSBib29sIFFTY3JpcHRPcmln
aW5hbEdsb2JhbE9iamVjdDo6aXNBcnJheShKU1ZhbHVlUmVmIHZhbHVlKSBjb25zdAogewogICAg
IHJldHVybiBpc1R5cGUodmFsdWUsIG1fYXJyYXlDb25zdHJ1Y3RvciwgbV9hcnJheVByb3RvdHlw
ZSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcCBi
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwCmluZGV4IGE3ZDBiN2IuLjhh
N2E2YzQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3Bw
CisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwCkBAIC0zMjQsNiAr
MzI0LDE3IEBAIGJvb2wgUVNjcmlwdFZhbHVlOjppc0FycmF5KCkgY29uc3QKIH0KIAogLyohCisg
ICAgUmV0dXJucyB0cnVlIGlmIHRoaXMgUVNjcmlwdFZhbHVlIGlzIGFuIG9iamVjdCBvZiB0aGUg
RGF0ZSBjbGFzczsKKyAgICBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS4KKworICAgIFxzYSBRU2Ny
aXB0RW5naW5lOjpuZXdEYXRlKCkKKyovCitib29sIFFTY3JpcHRWYWx1ZTo6aXNEYXRlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZF9wdHItPmlzRGF0ZSgpOworfQorCisvKiEKICAgUmV0dXJucyB0
cnVlIGlmIHRoaXMgUVNjcmlwdFZhbHVlIGlzIG9mIHRoZSBPYmplY3QgdHlwZTsgb3RoZXJ3aXNl
CiAgIHJldHVybnMgZmFsc2UuCiAKQEAgLTQ4OCw2ICs0OTksMTggQEAgUVNjcmlwdFZhbHVlIFFT
Y3JpcHRWYWx1ZTo6dG9PYmplY3QoKSBjb25zdAogfQogCiAvKiEKKyAgICBSZXR1cm5zIGEgUURh
dGVUaW1lIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdmFsdWUsIGluIGxvY2FsIHRpbWUuCisgICAg
SWYgdGhpcyBRU2NyaXB0VmFsdWUgaXMgbm90IGEgZGF0ZSwgb3IgdGhlIHZhbHVlIG9mIHRoZSBk
YXRlIGlzCisgICAgTmFOIChOb3QtYS1OdW1iZXIpLCBhbiBpbnZhbGlkIFFEYXRlVGltZSBpcyBy
ZXR1cm5lZC4KKworICAgIFxzYSBpc0RhdGUoKQorKi8KK1FEYXRlVGltZSBRU2NyaXB0VmFsdWU6
OnRvRGF0ZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ci0+dG9EYXRlVGltZSgpOwor
fQorCisvKiEKICAgQ2FsbHMgdGhpcyBRU2NyaXB0VmFsdWUgYXMgYSBmdW5jdGlvbiwgdXNpbmcg
XGEgdGhpc09iamVjdCBhcwogICB0aGUgYHRoaXMnIG9iamVjdCBpbiB0aGUgZnVuY3Rpb24gY2Fs
bCwgYW5kIHBhc3NpbmcgXGEgYXJncwogICBhcyBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9uLiBS
ZXR1cm5zIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZh
bHVlLmgKaW5kZXggOTkxYTZhMC4uYmQzMzg0OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHR2YWx1ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0
dmFsdWUuaApAQCAtMjYsNiArMjYsNyBAQAogCiBjbGFzcyBRU2NyaXB0RW5naW5lOwogY2xhc3Mg
UVNjcmlwdFZhbHVlUHJpdmF0ZTsKK2NsYXNzIFFEYXRlVGltZTsKIAogY2xhc3MgUVNjcmlwdFZh
bHVlOwogdHlwZWRlZiBRTGlzdDxRU2NyaXB0VmFsdWU+IFFTY3JpcHRWYWx1ZUxpc3Q7CkBAIC0x
MTIsNiArMTEzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKICAgICBi
b29sIGlzRXJyb3IoKSBjb25zdDsKICAgICBib29sIGlzQXJyYXkoKSBjb25zdDsKKyAgICBib29s
IGlzRGF0ZSgpIGNvbnN0OwogCiAgICAgUVN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogICAgIHFz
cmVhbCB0b051bWJlcigpIGNvbnN0OwpAQCAtMTIyLDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBx
dWludDMyIHRvVUludDMyKCkgY29uc3Q7CiAgICAgcXVpbnQxNiB0b1VJbnQxNigpIGNvbnN0Owog
ICAgIFFTY3JpcHRWYWx1ZSB0b09iamVjdCgpIGNvbnN0OworICAgIFFEYXRlVGltZSB0b0RhdGVU
aW1lKCkgY29uc3Q7CiAKICAgICBRU2NyaXB0VmFsdWUgY2FsbChjb25zdCBRU2NyaXB0VmFsdWUm
IHRoaXNPYmplY3QgPSBRU2NyaXB0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBRU2NyaXB0VmFsdWVMaXN0JiBhcmdzID0gUVNjcmlwdFZhbHVlTGlzdCgpKTsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oIGIvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKaW5kZXggNmU5M2EwNy4uY2QwMWFhMCAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxKU09iamVjdFJlZlByaXZhdGUuaD4KKyNpbmNs
dWRlIDxRdENvcmUvcWRhdGV0aW1lLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FtYXRoLmg+CiAjaW5j
bHVkZSA8UXRDb3JlL3FudW1lcmljLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+
CkBAIC0xMDIsNiArMTAzLDcgQEAgcHVibGljOgogICAgIGlubGluZSBib29sIGlzT2JqZWN0KCk7
CiAgICAgaW5saW5lIGJvb2wgaXNGdW5jdGlvbigpOwogICAgIGlubGluZSBib29sIGlzQXJyYXko
KTsKKyAgICBpbmxpbmUgYm9vbCBpc0RhdGUoKTsKIAogICAgIGlubGluZSBRU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3Q7CiAgICAgaW5saW5lIHFzcmVhbCB0b051bWJlcigpIGNvbnN0OwpAQCAtMTEz
LDYgKzExNSw3IEBAIHB1YmxpYzoKIAogICAgIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiB0
b09iamVjdChRU2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKTsKICAgICBpbmxpbmUgUVNjcmlw
dFZhbHVlUHJpdmF0ZSogdG9PYmplY3QoKTsKKyAgICBpbmxpbmUgUURhdGVUaW1lIHRvRGF0ZVRp
bWUoKTsKICAgICBpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogcHJvdG90eXBlKCk7CiAgICAg
aW5saW5lIHZvaWQgc2V0UHJvdG90eXBlKFFTY3JpcHRWYWx1ZVByaXZhdGUqIHByb3RvdHlwZSk7
CiAKQEAgLTQ2Miw2ICs0NjUsMjAgQEAgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppc0FycmF5
KCkKICAgICB9CiB9CiAKK2Jvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aXNEYXRlKCkKK3sKKyAg
ICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNlIEpTVmFsdWU6CisgICAgICAgIGlmIChyZWZp
bmVkSlNWYWx1ZSgpICE9IEpTT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAvLyBGYWxsLXRocm91Z2guCisgICAgY2FzZSBKU09iamVjdDoKKyAgICAgICAgcmV0dXJu
IG1fZW5naW5lLT5pc0RhdGUoKnRoaXMpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9Cit9CisKIFFTdHJpbmcgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9TdHJpbmco
KSBjb25zdAogewogICAgIHN3aXRjaCAobV9zdGF0ZSkgewpAQCAtNjYyLDYgKzY3OSwyNCBAQCBR
U2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b09iamVjdCgpCiAgICAg
cmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlOwogfQogCitRRGF0ZVRpbWUgUVNjcmlwdFZh
bHVlUHJpdmF0ZTo6dG9EYXRlVGltZSgpCit7CisgICAgaWYgKCFpc0RhdGUoKSkKKyAgICAgICAg
cmV0dXJuIFFEYXRlVGltZSgpOworCisgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAg
IHFzcmVhbCB0ID0gSlNWYWx1ZVRvTnVtYmVyKCptX2VuZ2luZSwgKnRoaXMsICZleGNlcHRpb24p
OworCisgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICBtX2VuZ2luZS0+c2V0RXhjZXB0aW9u
KGV4Y2VwdGlvbiwgUVNjcmlwdEVuZ2luZVByaXZhdGU6Ok5vdE51bGxFeGNlcHRpb24pOworICAg
ICAgICByZXR1cm4gUURhdGVUaW1lKCk7CisgICAgfQorCisgICAgUURhdGVUaW1lIHJlc3VsdDsK
KyAgICByZXN1bHQuc2V0TVNlY3NTaW5jZUVwb2NoKHFpbnQ2NCh0KSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwogaW5saW5lIFFTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZh
dGU6OnByb3RvdHlwZSgpCiB7CiAgICAgaWYgKGlzT2JqZWN0KCkpIHsKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3Bw
IGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2lu
ZS5jcHAKaW5kZXggNzJjYTliMS4uMjUyYjU0NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHAKQEAg
LTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJxc2NyaXB0cHJvZ3JhbS5oIgogI2luY2x1ZGUgInFz
Y3JpcHRzeW50YXhjaGVja3Jlc3VsdC5oIgogI2luY2x1ZGUgInFzY3JpcHR2YWx1ZS5oIgorI2lu
Y2x1ZGUgPFF0Q29yZS9xbnVtZXJpYy5oPgogI2luY2x1ZGUgPFF0VGVzdC9xdGVzdC5oPgogCiBj
bGFzcyB0c3RfUVNjcmlwdEVuZ2luZSA6IHB1YmxpYyBRT2JqZWN0IHsKQEAgLTQ5LDYgKzUwLDcg
QEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHRvT2JqZWN0VHdvRW5naW5lcygpOwogICAgIHZv
aWQgbmV3QXJyYXkoKTsKICAgICB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uKCk7CisgICAgdm9pZCBu
ZXdEYXRlKCk7CiB9OwogCiAvKiBFdmFsdWF0aW5nIGEgc2NyaXB0IHRoYXQgdGhyb3cgYW4gdW5o
YW5kbGVkIGV4Y2VwdGlvbiBzaG91bGQgcmV0dXJuIGFuIGludmFsaWQgdmFsdWUuICovCkBAIC01
NDAsNSArNTQyLDUyIEBAIHZvaWQgdHN0X1FTY3JpcHRFbmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9u
KCkKICAgICB9CiB9CiAKK3ZvaWQgdHN0X1FTY3JpcHRFbmdpbmU6Om5ld0RhdGUoKQoreworICAg
IFFTY3JpcHRFbmdpbmUgZW5nOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIGRhdGUgPSBl
bmcubmV3RGF0ZSgwKTsKKyAgICAgICAgUUNPTVBBUkUoZGF0ZS5pc1ZhbGlkKCksIHRydWUpOwor
ICAgICAgICBRQ09NUEFSRShkYXRlLmlzRGF0ZSgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUo
ZGF0ZS5pc09iamVjdCgpLCB0cnVlKTsKKyAgICAgICAgUVZFUklGWSghZGF0ZS5pc0Z1bmN0aW9u
KCkpOworICAgICAgICAvLyBwcm90b3R5cGUgc2hvdWxkIGJlIERhdGUucHJvdG90eXBlCisgICAg
ICAgIFFDT01QQVJFKGRhdGUucHJvdG90eXBlKCkuaXNWYWxpZCgpLCB0cnVlKTsKKyAgICAgICAg
UUNPTVBBUkUoZGF0ZS5wcm90b3R5cGUoKS5pc0RhdGUoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01Q
QVJFKGRhdGUucHJvdG90eXBlKCkuc3RyaWN0bHlFcXVhbHMoZW5nLmV2YWx1YXRlKCJEYXRlLnBy
b3RvdHlwZSIpKSwgdHJ1ZSk7CisgICAgfQorICAgIHsKKyAgICAgICAgUURhdGVUaW1lIGR0ID0g
UURhdGVUaW1lKFFEYXRlKDEsIDIsIDMpLCBRVGltZSg0LCA1LCA2LCA3KSwgUXQ6OkxvY2FsVGlt
ZSk7CisgICAgICAgIFFTY3JpcHRWYWx1ZSBkYXRlID0gZW5nLm5ld0RhdGUoZHQpOworICAgICAg
ICBRQ09NUEFSRShkYXRlLmlzVmFsaWQoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKGRhdGUu
aXNEYXRlKCksIHRydWUpOworICAgICAgICBRQ09NUEFSRShkYXRlLmlzT2JqZWN0KCksIHRydWUp
OworICAgICAgICAvLyBwcm90b3R5cGUgc2hvdWxkIGJlIERhdGUucHJvdG90eXBlCisgICAgICAg
IFFDT01QQVJFKGRhdGUucHJvdG90eXBlKCkuaXNWYWxpZCgpLCB0cnVlKTsKKyAgICAgICAgUUNP
TVBBUkUoZGF0ZS5wcm90b3R5cGUoKS5pc0RhdGUoKSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJF
KGRhdGUucHJvdG90eXBlKCkuc3RyaWN0bHlFcXVhbHMoZW5nLmV2YWx1YXRlKCJEYXRlLnByb3Rv
dHlwZSIpKSwgdHJ1ZSk7CisKKyAgICAgICAgUUNPTVBBUkUoZGF0ZS50b0RhdGVUaW1lKCksIGR0
KTsKKyAgICB9CisgICAgeworICAgICAgICBRRGF0ZVRpbWUgZHQgPSBRRGF0ZVRpbWUoUURhdGUo
MSwgMiwgMyksIFFUaW1lKDQsIDUsIDYsIDcpLCBRdDo6VVRDKTsKKyAgICAgICAgUVNjcmlwdFZh
bHVlIGRhdGUgPSBlbmcubmV3RGF0ZShkdCk7CisgICAgICAgIC8vIHRvRGF0ZVRpbWUoKSByZXN1
bHQgc2hvdWxkIGJlIGluIGxvY2FsIHRpbWUKKyAgICAgICAgUUNPTVBBUkUoZGF0ZS50b0RhdGVU
aW1lKCksIGR0LnRvTG9jYWxUaW1lKCkpOworICAgIH0KKyAgICAvLyBEYXRlLnBhcnNlKCkgc2hv
dWxkIHJldHVybiBOYU4gd2hlbiBpdCBmYWlscworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVl
IHJldCA9IGVuZy5ldmFsdWF0ZSgiRGF0ZS5wYXJzZSgpIik7CisgICAgICAgIFFWRVJJRlkocmV0
LmlzTnVtYmVyKCkpOworICAgICAgICBRVkVSSUZZKHFJc05hTihyZXQudG9OdW1iZXIoKSkpOwor
ICAgIH0KKyAgICAvLyBEYXRlLnBhcnNlKCkgc2hvdWxkIGJlIGFibGUgdG8gcGFyc2UgdGhlIG91
dHB1dCBvZiBEYXRlKCkudG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJl
dCA9IGVuZy5ldmFsdWF0ZSgidmFyIHggPSBuZXcgRGF0ZSgpOyB2YXIgcyA9IHgudG9TdHJpbmco
KTsgcyA9PSBuZXcgRGF0ZShEYXRlLnBhcnNlKHMpKS50b1N0cmluZygpIik7CisgICAgICAgIFFW
RVJJRlkocmV0LmlzQm9vbGVhbigpKTsKKyAgICAgICAgUUNPTVBBUkUocmV0LnRvQm9vbGVhbigp
LCB0cnVlKTsKKyAgICB9Cit9CisKIFFURVNUX01BSU4odHN0X1FTY3JpcHRFbmdpbmUpCiAjaW5j
bHVkZSAidHN0X3FzY3JpcHRlbmdpbmUubW9jIgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaCBiL0phdmFTY3JpcHRDb3Jl
L3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKaW5kZXggNDFiOTljZC4u
MzMxZGMzMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVl
L3RzdF9xc2NyaXB0dmFsdWUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCkBAIC04MSw2ICs4MSw5IEBAIHByaXZhdGUgc2xvdHM6
CiAgICAgdm9pZCBpc09iamVjdF9kYXRhKCk7CiAgICAgdm9pZCBpc09iamVjdCgpOwogCisgICAg
dm9pZCBpc0RhdGVfZGF0YSgpOworICAgIHZvaWQgaXNEYXRlKCk7CisKICAgICB2b2lkIGlzU3Ry
aW5nX2RhdGEoKTsKICAgICB2b2lkIGlzU3RyaW5nKCk7CiAKQEAgLTE2MCw2ICsxNjMsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGlzT2JqZWN0X21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpOwog
ICAgIHZvaWQgaXNPYmplY3RfdGVzdChjb25zdCBjaGFyKiBleHByLCBjb25zdCBRU2NyaXB0VmFs
dWUmIHZhbHVlKTsKIAorICAgIHZvaWQgaXNEYXRlX2luaXREYXRhKCk7CisgICAgdm9pZCBpc0Rh
dGVfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcik7CisgICAgdm9pZCBpc0RhdGVfdGVzdChjb25z
dCBjaGFyKiBleHByLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKTsKKwogICAgIHZvaWQgaXNT
dHJpbmdfaW5pdERhdGEoKTsKICAgICB2b2lkIGlzU3RyaW5nX21ha2VEYXRhKGNvbnN0IGNoYXIq
IGV4cHIpOwogICAgIHZvaWQgaXNTdHJpbmdfdGVzdChjb25zdCBjaGFyKiBleHByLCBjb25zdCBR
U2NyaXB0VmFsdWUmIHZhbHVlKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3Rz
L3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF9jb21wYXJpc29uLmNwcCBi
L0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dl
bmVyYXRlZF9jb21wYXJpc29uLmNwcAppbmRleCA3NTg2YjE1Li5jN2JmZmY1IDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9n
ZW5lcmF0ZWRfY29tcGFyaXNvbi5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNj
cmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2NvbXBhcmlzb24uY3BwCkBAIC0x
MTE1LDE0ICsxMTE1LDE1IEBAIHN0YXRpYyBRU3RyaW5nIGVxdWFsc19hcnJheVtdID0gewogICAg
ICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJ1bmRlZmlu
ZWRcIikiLAogICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkgPD0+IGVuZ2luZS0+ZXZhbHVh
dGUoXCJudWxsXCIpIiwKICAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBlbmdpbmUt
Pm51bGxWYWx1ZSgpIiwKLSAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBlbmdpbmUt
PnVuZGVmaW5lZFZhbHVlKCkifTsKKyAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBl
bmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkiLAorICAgICJlbmdpbmUtPm5ld0RhdGUoUURhdGVUaW1l
KCkpIDw9PiBlbmdpbmUtPm5ld0RhdGUoUURhdGVUaW1lKCkpIiwgfTsKIAotdm9pZCB0c3RfUVNj
cmlwdFZhbHVlOjplcXVhbHNfbWFrZURhdGEoY29uc3QgY2hhciAqZXhwcikKK3ZvaWQgdHN0X1FT
Y3JpcHRWYWx1ZTo6ZXF1YWxzX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CiAgICAgc3Rh
dGljIFFTZXQ8UVN0cmluZz4gZXF1YWxzOwogICAgIGlmIChlcXVhbHMuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIGVxdWFscy5yZXNlcnZlKDEwODUpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMTA4NTsgKytpKQorICAgICAgICBlcXVhbHMucmVzZXJ2ZSgxMDg2KTsKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwODY7ICsraSkKICAgICAgICAgICAgIGVxdWFscy5p
bnNlcnQoZXF1YWxzX2FycmF5W2ldKTsKICAgICB9CiAgICAgUUhhc2g8UVN0cmluZywgUVNjcmlw
dFZhbHVlPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CkBAIC0xMTMyLDcgKzExMzMsNyBAQCB2b2lkIHRz
dF9RU2NyaXB0VmFsdWU6OmVxdWFsc19tYWtlRGF0YShjb25zdCBjaGFyICpleHByKQogICAgIH0K
IH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjplcXVhbHNfdGVzdChjb25zdCBjaGFyICosIGNv
bnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmVxdWFsc190
ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQogewogICAgIFFGRVRD
SChRU2NyaXB0VmFsdWUsIG90aGVyKTsKICAgICBRRkVUQ0goYm9vbCwgZXhwZWN0ZWQpOwpAQCAt
MTY1MiwxNCArMTY1MywxNSBAQCBzdGF0aWMgUVN0cmluZyBzdHJpY3RseUVxdWFsc19hcnJheVtd
ID0gewogICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkgPD0+IFFTY3JpcHRWYWx1ZShlbmdp
bmUsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiZW5naW5lLT51bmRlZmlu
ZWRWYWx1ZSgpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwie31cIikiLAogICAgICJlbmdpbmUtPnVu
ZGVmaW5lZFZhbHVlKCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJ1bmRlZmluZWRcIikiLAotICAg
ICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkgPD0+IGVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSJ9
OworICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkgPD0+IGVuZ2luZS0+dW5kZWZpbmVkVmFs
dWUoKSIsCisgICAgImVuZ2luZS0+bmV3RGF0ZShRRGF0ZVRpbWUoKSkgPD0+IGVuZ2luZS0+bmV3
RGF0ZShRRGF0ZVRpbWUoKSkiLCB9OwogCiB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnN0cmljdGx5
RXF1YWxzX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CiAgICAgc3RhdGljIFFTZXQ8UVN0
cmluZz4gZXF1YWxzOwogICAgIGlmIChlcXVhbHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGVxdWFs
cy5yZXNlcnZlKDUwMyk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA1MDM7ICsr
aSkKKyAgICAgICAgZXF1YWxzLnJlc2VydmUoNTA0KTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IDUwNDsgKytpKQogICAgICAgICAgICAgZXF1YWxzLmluc2VydChzdHJpY3RseUVx
dWFsc19hcnJheVtpXSk7CiAgICAgfQogICAgIFFIYXNoPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT46
OmNvbnN0X2l0ZXJhdG9yIGl0OwpAQCAtMTcxNSwxNCArMTcxNywxNSBAQCBzdGF0aWMgUVN0cmlu
ZyBpbnN0YW5jZU9mX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRlZmlu
ZWRcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3RcIikiLAogICAgICJlbmdpbmUtPmV2
YWx1YXRlKFwiTnVsbFwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsCiAgICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0
XCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIkZhbHNlXCIpIDw9PiBlbmdpbmUtPmV2YWx1
YXRlKFwiT2JqZWN0XCIpIn07CisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJGYWxzZVwiKSA8PT4g
ZW5naW5lLT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsCisgICAgImVuZ2luZS0+bmV3RGF0ZShRRGF0
ZVRpbWUoKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3RcIikiLCB9OwogCi12b2lkIHRz
dF9RU2NyaXB0VmFsdWU6Omluc3RhbmNlT2ZfbWFrZURhdGEoY29uc3QgY2hhciAqZXhwcikKK3Zv
aWQgdHN0X1FTY3JpcHRWYWx1ZTo6aW5zdGFuY2VPZl9tYWtlRGF0YShjb25zdCBjaGFyKiBleHBy
KQogewogICAgIHN0YXRpYyBRU2V0PFFTdHJpbmc+IGVxdWFsczsKICAgICBpZiAoZXF1YWxzLmlz
RW1wdHkoKSkgewotICAgICAgICBlcXVhbHMucmVzZXJ2ZSgyOSk7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCAyOTsgKytpKQorICAgICAgICBlcXVhbHMucmVzZXJ2ZSgzMCk7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAzMDsgKytpKQogICAgICAgICAgICAgZXF1
YWxzLmluc2VydChpbnN0YW5jZU9mX2FycmF5W2ldKTsKICAgICB9CiAgICAgUUhhc2g8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CkBAIC0xNzMyLDcgKzE3MzUsNyBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6Omluc3RhbmNlT2ZfbWFrZURhdGEoY29uc3QgY2hhciAq
ZXhwcikKICAgICB9CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aW5zdGFuY2VPZl90ZXN0
KGNvbnN0IGNoYXIgKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkKK3ZvaWQgdHN0X1FTY3Jp
cHRWYWx1ZTo6aW5zdGFuY2VPZl90ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUm
IHZhbHVlKQogewogICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIG90aGVyKTsKICAgICBRRkVUQ0go
Ym9vbCwgZXhwZWN0ZWQpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNj
cmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2luaXQuY3BwIGIvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2lu
aXQuY3BwCmluZGV4IGI2OGFhZjIuLjdjNTQzN2EgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF9pbml0LmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2
YWx1ZV9nZW5lcmF0ZWRfaW5pdC5jcHAKQEAgLTE2Miw0ICsxNjIsNSBAQCB2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OmluaXRTY3JpcHRWYWx1ZXMoKQogICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2lu
ZS0+ZXZhbHVhdGUoIicxMi40JyIpKTsKICAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPm51
bGxWYWx1ZSgpKTsKICAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPnVuZGVmaW5lZFZhbHVl
KCkpOworICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+bmV3RGF0ZShRRGF0ZVRpbWUoKSkp
OwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3Rz
dF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2lzdHlwZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC90
ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfaXN0eXBlLmNwcApp
bmRleCBmMWRlNzdkLi5lYzU1NjUzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0
cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfaXN0eXBlLmNwcAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9n
ZW5lcmF0ZWRfaXN0eXBlLmNwcApAQCAtMTcsNyArMTcsNiBAQAogICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgogKi8KIAotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKioqKioqKioqKioq
KioqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQuIERPIE5PVCBNT0RJRlkhICoqKioqKioq
KioqKioqKioKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xNjIsMTQgKzE2MSwxNSBAQCBzdGF0
aWMgUVN0cmluZyBpc1ZhbGlkX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIn
MTIzJ1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIuNCdcIikiLAogICAgICJlbmdp
bmUtPm51bGxWYWx1ZSgpIiwKLSAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIn07CisgICAg
ImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSIsCisgICAgImVuZ2luZS0+bmV3RGF0ZShRRGF0ZVRp
bWUoKSkiLCB9OwogCiB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzVmFsaWRfbWFrZURhdGEoY29u
c3QgY2hhciogZXhwcikKIHsKICAgICBzdGF0aWMgUVNldDxRU3RyaW5nPiBpc1ZhbGlkOwogICAg
IGlmIChpc1ZhbGlkLmlzRW1wdHkoKSkgewotICAgICAgICBpc1ZhbGlkLnJlc2VydmUoMTMxKTsK
LSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMTsgKytpKQorICAgICAgICBpc1Zh
bGlkLnJlc2VydmUoMTMyKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsg
KytpKQogICAgICAgICAgICAgaXNWYWxpZC5pbnNlcnQoaXNWYWxpZF9hcnJheVtpXSk7CiAgICAg
fQogICAgIG5ld1JvdyhleHByKSA8PCBpc1ZhbGlkLmNvbnRhaW5zKGV4cHIpOwpAQCAtMTk5LDcg
KzE5OSw3IEBAIHN0YXRpYyBRU3RyaW5nIGlzQm9vbF9hcnJheVtdID0gewogICAgICJRU2NyaXB0
VmFsdWUoZW5naW5lLCB0cnVlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIGZhbHNlKSIs
CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJ0cnVlXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0
ZShcImZhbHNlXCIpIn07CisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJmYWxzZVwiKSIsIH07CiAK
IHZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNCb29sX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIp
CiB7CkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIFFTdHJpbmcgaXNCb29sZWFuX2FycmF5W10g
PSB7CiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHRydWUpIiwKICAgICAiUVNjcmlwdFZhbHVl
KGVuZ2luZSwgZmFsc2UpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcInRydWVcIikiLAotICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiZmFsc2VcIikifTsKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShc
ImZhbHNlXCIpIiwgfTsKIAogdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc0Jvb2xlYW5fbWFrZURh
dGEoY29uc3QgY2hhciogZXhwcikKIHsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgUVN0cmlu
ZyBpc051bWJlcl9hcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiMHgxMDAwMVwi
KSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJOYU5cIikiLAogICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwiSW5maW5pdHlcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiLUluZmluaXR5XCIp
In07CisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCItSW5maW5pdHlcIikiLCB9OwogCiB2b2lkIHRz
dF9RU2NyaXB0VmFsdWU6OmlzTnVtYmVyX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CkBA
IC0zNTcsNyArMzU3LDcgQEAgc3RhdGljIFFTdHJpbmcgaXNGdW5jdGlvbl9hcnJheVtdID0gewog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rpb25cIikiLAogICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KVwiKSIsCi0gICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCIvZm9vL1wiKSJ9OworICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIiki
LCB9OwogCiB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzRnVuY3Rpb25fbWFrZURhdGEoY29uc3Qg
Y2hhciogZXhwcikKIHsKQEAgLTM5MSw3ICszOTEsNyBAQCBzdGF0aWMgUVN0cmluZyBpc051bGxf
YXJyYXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVl
KSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIs
CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJudWxsXCIpIiwKLSAgICAiZW5naW5lLT5udWxsVmFs
dWUoKSJ9OworICAgICJlbmdpbmUtPm51bGxWYWx1ZSgpIiwgfTsKIAogdm9pZCB0c3RfUVNjcmlw
dFZhbHVlOjppc051bGxfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcikKIHsKQEAgLTQ1NSw3ICs0
NTUsNyBAQCBzdGF0aWMgUVN0cmluZyBpc1N0cmluZ19hcnJheVtdID0gewogICAgICJlbmdpbmUt
PmV2YWx1YXRlKFwiJydcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzAnXCIpIiwKICAg
ICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMjMnXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShc
IicxMi40J1wiKSJ9OworICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEyLjQnXCIpIiwgfTsKIAog
dm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc1N0cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKiBleHBy
KQogewpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRpYyBRU3RyaW5nIGlzVW5kZWZpbmVkX2FycmF5
W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVk
VmFsdWUpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcInt9XCIpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcInVuZGVmaW5lZFwiKSIsCi0gICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSJ9
OworICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkiLCB9OwogCiB2b2lkIHRzdF9RU2NyaXB0
VmFsdWU6OmlzVW5kZWZpbmVkX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CkBAIC01NDQs
MTQgKzU0NCwxNSBAQCBzdGF0aWMgUVN0cmluZyBpc09iamVjdF9hcnJheVtdID0gewogICAgICJl
bmdpbmUtPmV2YWx1YXRlKFwiVW5kZWZpbmVkXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShc
Ik51bGxcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiVHJ1ZVwiKSIsCi0gICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJGYWxzZVwiKSJ9OworICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiRmFsc2Vc
IikiLAorICAgICJlbmdpbmUtPm5ld0RhdGUoUURhdGVUaW1lKCkpIiwgfTsKIAogdm9pZCB0c3Rf
UVNjcmlwdFZhbHVlOjppc09iamVjdF9tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQogewogICAg
IHN0YXRpYyBRU2V0PFFTdHJpbmc+IGlzT2JqZWN0OwogICAgIGlmIChpc09iamVjdC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgaXNPYmplY3QucmVzZXJ2ZSgyMik7Ci0gICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCAyMjsgKytpKQorICAgICAgICBpc09iamVjdC5yZXNlcnZlKDIzKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDIzOyArK2kpCiAgICAgICAgICAgICBpc09i
amVjdC5pbnNlcnQoaXNPYmplY3RfYXJyYXlbaV0pOwogICAgIH0KICAgICBuZXdSb3coZXhwcikg
PDwgaXNPYmplY3QuY29udGFpbnMoZXhwcik7CkBAIC01NjUsMyArNTY2LDM0IEBAIHZvaWQgdHN0
X1FTY3JpcHRWYWx1ZTo6aXNPYmplY3RfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZh
bHVlJiB2YWx1ZSkKIH0KIAogREVGSU5FX1RFU1RfRlVOQ1RJT04oaXNPYmplY3QpCisKKwordm9p
ZCB0c3RfUVNjcmlwdFZhbHVlOjppc0RhdGVfaW5pdERhdGEoKQoreworICAgIFFUZXN0OjphZGRD
b2x1bW48Ym9vbD4oImV4cGVjdGVkIik7CisgICAgaW5pdFNjcmlwdFZhbHVlcygpOworfQorCitz
dGF0aWMgUVN0cmluZyBpc0RhdGVfYXJyYXlbXSA9IHsKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShc
IkRhdGUucHJvdG90eXBlXCIpIiwKKyAgICAiZW5naW5lLT5uZXdEYXRlKFFEYXRlVGltZSgpKSIs
IH07CisKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNEYXRlX21ha2VEYXRhKGNvbnN0IGNoYXIq
IGV4cHIpCit7CisgICAgc3RhdGljIFFTZXQ8UVN0cmluZz4gaXNEYXRlOworICAgIGlmIChpc0Rh
dGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlzRGF0ZS5yZXNlcnZlKDIpOworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMjsgKytpKQorICAgICAgICAgICAgaXNEYXRlLmluc2VydChp
c0RhdGVfYXJyYXlbaV0pOworICAgIH0KKyAgICBuZXdSb3coZXhwcikgPDwgaXNEYXRlLmNvbnRh
aW5zKGV4cHIpOworfQorCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzRGF0ZV90ZXN0KGNvbnN0
IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQoreworICAgIFFGRVRDSChib29sLCBl
eHBlY3RlZCk7CisgICAgUUNPTVBBUkUodmFsdWUuaXNEYXRlKCksIGV4cGVjdGVkKTsKKyAgICBR
Q09NUEFSRSh2YWx1ZS5pc0RhdGUoKSwgZXhwZWN0ZWQpOworfQorCitERUZJTkVfVEVTVF9GVU5D
VElPTihpc0RhdGUpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfdG90eXBlLmNwcCBiL0phdmFTY3JpcHRD
b3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF90b3R5
cGUuY3BwCmluZGV4IGE5NDZhZWYuLjRjOTYxZTAgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF90b3R5cGUu
Y3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlw
dHZhbHVlX2dlbmVyYXRlZF90b3R5cGUuY3BwCkBAIC0xNjMsNyArMTYzLDggQEAgc3RhdGljIFFT
dHJpbmcgdG9TdHJpbmdfdGFnQXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicx
MjMnXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMi40J1wiKSIsCiAgICAgImVuZ2lu
ZS0+bnVsbFZhbHVlKCkiLAotICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkifTsKKyAgICAi
ZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIiwKKyAgICAiZW5naW5lLT5uZXdEYXRlKFFEYXRlVGlt
ZSgpKSIsIH07CiAKIHN0YXRpYyBRU3RyaW5nIHRvU3RyaW5nX3ZhbHVlQXJyYXlbXSA9IHsKICAg
ICAiIiwgInVuZGVmaW5lZCIsCkBAIC0yMzEsMTQgKzIzMiwxNSBAQCBzdGF0aWMgUVN0cmluZyB0
b1N0cmluZ192YWx1ZUFycmF5W10gPSB7CiAgICAgIi1JbmZpbml0eSIsICJjaWFvIiwKICAgICAi
IiwgIjAiLAogICAgICIxMjMiLCAiMTIuNCIsCi0gICAgIm51bGwiLCAidW5kZWZpbmVkIn07Cisg
ICAgIm51bGwiLCAidW5kZWZpbmVkIiwKKyAgICAiSW52YWxpZCBEYXRlIiwgfTsKIAogdm9pZCB0
c3RfUVNjcmlwdFZhbHVlOjp0b1N0cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQogewog
ICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBRU3RyaW5nPiB0b1N0cmluZzsKICAgICBpZiAodG9T
dHJpbmcuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRvU3RyaW5nLnJlc2VydmUoMTMyKTsKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsgKytpKQorICAgICAgICB0b1N0cmluZy5y
ZXNlcnZlKDEzMyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMzM7ICsraSkK
ICAgICAgICAgICAgIHRvU3RyaW5nLmluc2VydCh0b1N0cmluZ190YWdBcnJheVtpXSwgdG9TdHJp
bmdfdmFsdWVBcnJheVtpXSk7CiAgICAgfQogICAgIG5ld1JvdyhleHByKSA8PCB0b1N0cmluZy52
YWx1ZShleHByKTsKQEAgLTM5Miw3ICszOTQsOCBAQCBzdGF0aWMgUVN0cmluZyB0b051bWJlcl90
YWdBcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEyMydcIikiLAogICAgICJl
bmdpbmUtPmV2YWx1YXRlKFwiJzEyLjQnXCIpIiwKICAgICAiZW5naW5lLT5udWxsVmFsdWUoKSIs
Ci0gICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSJ9OworICAgICJlbmdpbmUtPnVuZGVmaW5l
ZFZhbHVlKCkiLAorICAgICJlbmdpbmUtPm5ld0RhdGUoUURhdGVUaW1lKCkpIiwgfTsKIHN0YXRp
YyBxc3JlYWwgdG9OdW1iZXJfdmFsdWVBcnJheVtdID0gewogICAgIDAsIHFRTmFOKCksIDAsIDEs
IDAsIDEyMiwgMTI0LCAwLCAwLCAxMjMsCiAgICAgNi4zNjk5OTk5OTk5OTk5OTllLTA4LCAtNi4z
Njk5OTk5OTk5OTk5OTllLTA4LCAxMTI2MjQwODIwLCA2NTUzNiwgNjU1MzcsIHFRTmFOKCksIHFR
TmFOKCksIHFJbmYoKSwgcUluZigpLCBxUU5hTigpLApAQCAtNDA3LDEzICs0MTAsMTMgQEAgc3Rh
dGljIHFzcmVhbCB0b051bWJlcl92YWx1ZUFycmF5W10gPSB7CiAgICAgcVFOYU4oKSwgMCwgcVFO
YU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4o
KSwgMCwKICAgICAxLCAwLCAxMjIsIDEyNCwgMCwgMCwgMTIzLCA2LjM2OTk5OTk5OTk5OTk5OWUt
MDgsIC02LjM2OTk5OTk5OTk5OTk5OWUtMDgsIDExMjYyNDA4MjAsCiAgICAgNjU1MzYsIDY1NTM3
LCBxUU5hTigpLCBxSW5mKCksIHFJbmYoKSwgcVFOYU4oKSwgMCwgMCwgMTIzLCAxMi40LAotICAg
IDAsIHFRTmFOKCl9OworICAgIDAsIHFRTmFOKCksIHFRTmFOKCksIH07CiB2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OnRvTnVtYmVyX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CiAgICAgc3Rh
dGljIFFIYXNoPFFTdHJpbmcsIHFzcmVhbD4gdG9OdW1iZXI7CiAgICAgaWYgKHRvTnVtYmVyLmlz
RW1wdHkoKSkgewotICAgICAgICB0b051bWJlci5yZXNlcnZlKDEzMik7Ci0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCAxMzI7ICsraSkKKyAgICAgICAgdG9OdW1iZXIucmVzZXJ2ZSgx
MzMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTMzOyArK2kpCiAgICAgICAg
ICAgICB0b051bWJlci5pbnNlcnQodG9OdW1iZXJfdGFnQXJyYXlbaV0sIHRvTnVtYmVyX3ZhbHVl
QXJyYXlbaV0pOwogICAgIH0KICAgICBuZXdSb3coZXhwcikgPDwgdG9OdW1iZXIudmFsdWUoZXhw
cik7CkBAIC01NzYsNyArNTc5LDggQEAgc3RhdGljIFFTdHJpbmcgdG9Cb29sX3RhZ0FycmF5W10g
PSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIzJ1wiKSIsCiAgICAgImVuZ2luZS0+ZXZh
bHVhdGUoXCInMTIuNCdcIikiLAogICAgICJlbmdpbmUtPm51bGxWYWx1ZSgpIiwKLSAgICAiZW5n
aW5lLT51bmRlZmluZWRWYWx1ZSgpIn07CisgICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSIs
CisgICAgImVuZ2luZS0+bmV3RGF0ZShRRGF0ZVRpbWUoKSkiLCB9OwogCiBzdGF0aWMgYm9vbCB0
b0Jvb2xfdmFsdWVBcnJheVtdID0gewogICAgIGZhbHNlLCBmYWxzZSwKQEAgLTY0NCwxNCArNjQ4
LDE1IEBAIHN0YXRpYyBib29sIHRvQm9vbF92YWx1ZUFycmF5W10gPSB7CiAgICAgdHJ1ZSwgdHJ1
ZSwKICAgICBmYWxzZSwgdHJ1ZSwKICAgICB0cnVlLCB0cnVlLAotICAgIGZhbHNlLCBmYWxzZX07
CisgICAgZmFsc2UsIGZhbHNlLAorICAgIHRydWUsIH07CiAKIHZvaWQgdHN0X1FTY3JpcHRWYWx1
ZTo6dG9Cb29sX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CiAgICAgc3RhdGljIFFIYXNo
PFFTdHJpbmcsIGJvb2w+IHRvQm9vbDsKICAgICBpZiAodG9Cb29sLmlzRW1wdHkoKSkgewotICAg
ICAgICB0b0Jvb2wucmVzZXJ2ZSgxMzIpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgMTMyOyArK2kpCisgICAgICAgIHRvQm9vbC5yZXNlcnZlKDEzMyk7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCAxMzM7ICsraSkKICAgICAgICAgICAgIHRvQm9vbC5pbnNlcnQo
dG9Cb29sX3RhZ0FycmF5W2ldLCB0b0Jvb2xfdmFsdWVBcnJheVtpXSk7CiAgICAgfQogICAgIG5l
d1JvdyhleHByKSA8PCB0b0Jvb2wudmFsdWUoZXhwcik7CkBAIC04MDUsNyArODEwLDggQEAgc3Rh
dGljIFFTdHJpbmcgdG9Cb29sZWFuX3RhZ0FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVh
dGUoXCInMTIzJ1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIuNCdcIikiLAogICAg
ICJlbmdpbmUtPm51bGxWYWx1ZSgpIiwKLSAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIn07
CisgICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSIsCisgICAgImVuZ2luZS0+bmV3RGF0ZShR
RGF0ZVRpbWUoKSkiLCB9OwogCiBzdGF0aWMgYm9vbCB0b0Jvb2xlYW5fdmFsdWVBcnJheVtdID0g
ewogICAgIGZhbHNlLCBmYWxzZSwKQEAgLTg3MywxNCArODc5LDE1IEBAIHN0YXRpYyBib29sIHRv
Qm9vbGVhbl92YWx1ZUFycmF5W10gPSB7CiAgICAgdHJ1ZSwgdHJ1ZSwKICAgICBmYWxzZSwgdHJ1
ZSwKICAgICB0cnVlLCB0cnVlLAotICAgIGZhbHNlLCBmYWxzZX07CisgICAgZmFsc2UsIGZhbHNl
LAorICAgIHRydWUsIH07CiAKIHZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9Cb29sZWFuX21ha2VE
YXRhKGNvbnN0IGNoYXIqIGV4cHIpCiB7CiAgICAgc3RhdGljIFFIYXNoPFFTdHJpbmcsIGJvb2w+
IHRvQm9vbGVhbjsKICAgICBpZiAodG9Cb29sZWFuLmlzRW1wdHkoKSkgewotICAgICAgICB0b0Jv
b2xlYW4ucmVzZXJ2ZSgxMzIpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTMy
OyArK2kpCisgICAgICAgIHRvQm9vbGVhbi5yZXNlcnZlKDEzMyk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCAxMzM7ICsraSkKICAgICAgICAgICAgIHRvQm9vbGVhbi5pbnNlcnQo
dG9Cb29sZWFuX3RhZ0FycmF5W2ldLCB0b0Jvb2xlYW5fdmFsdWVBcnJheVtpXSk7CiAgICAgfQog
ICAgIG5ld1JvdyhleHByKSA8PCB0b0Jvb2xlYW4udmFsdWUoZXhwcik7CkBAIC0xMDM0LDcgKzEw
NDEsOCBAQCBzdGF0aWMgUVN0cmluZyB0b0ludGVnZXJfdGFnQXJyYXlbXSA9IHsKICAgICAiZW5n
aW5lLT5ldmFsdWF0ZShcIicxMjMnXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMi40
J1wiKSIsCiAgICAgImVuZ2luZS0+bnVsbFZhbHVlKCkiLAotICAgICJlbmdpbmUtPnVuZGVmaW5l
ZFZhbHVlKCkifTsKKyAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIiwKKyAgICAiZW5naW5l
LT5uZXdEYXRlKFFEYXRlVGltZSgpKSIsIH07CiBzdGF0aWMgcXNyZWFsIHRvSW50ZWdlcl92YWx1
ZUFycmF5W10gPSB7CiAgICAgMCwgMCwgMCwgMSwgMCwgMTIyLCAxMjQsIDAsIDAsIDEyMywKICAg
ICAwLCAwLCAxMTI2MjQwODIwLCA2NTUzNiwgNjU1MzcsIDAsIDAsIHFJbmYoKSwgcUluZigpLCAw
LApAQCAtMTA0OSwxMyArMTA1NywxMyBAQCBzdGF0aWMgcXNyZWFsIHRvSW50ZWdlcl92YWx1ZUFy
cmF5W10gPSB7CiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAxLCAwLCAx
MjIsIDEyNCwgMCwgMCwgMTIzLCAwLCAwLCAxMTI2MjQwODIwLAogICAgIDY1NTM2LCA2NTUzNywg
MCwgcUluZigpLCBxSW5mKCksIDAsIDAsIDAsIDEyMywgMTIsCi0gICAgMCwgMH07CisgICAgMCwg
MCwgMCwgfTsKIHZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9JbnRlZ2VyX21ha2VEYXRhKGNvbnN0
IGNoYXIqIGV4cHIpCiB7CiAgICAgc3RhdGljIFFIYXNoPFFTdHJpbmcsIHFzcmVhbD4gdG9JbnRl
Z2VyOwogICAgIGlmICh0b0ludGVnZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRvSW50ZWdlci5y
ZXNlcnZlKDEzMik7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMzI7ICsraSkK
KyAgICAgICAgdG9JbnRlZ2VyLnJlc2VydmUoMTMzKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IDEzMzsgKytpKQogICAgICAgICAgICAgdG9JbnRlZ2VyLmluc2VydCh0b0ludGVn
ZXJfdGFnQXJyYXlbaV0sIHRvSW50ZWdlcl92YWx1ZUFycmF5W2ldKTsKICAgICB9CiAgICAgbmV3
Um93KGV4cHIpIDw8IHRvSW50ZWdlci52YWx1ZShleHByKTsKQEAgLTEyMTQsNyArMTIyMiw4IEBA
IHN0YXRpYyBRU3RyaW5nIHRvSW50MzJfdGFnQXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIicxMjMnXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMi40J1wiKSIsCiAg
ICAgImVuZ2luZS0+bnVsbFZhbHVlKCkiLAotICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCki
fTsKKyAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIiwKKyAgICAiZW5naW5lLT5uZXdEYXRl
KFFEYXRlVGltZSgpKSIsIH07CiAKIHN0YXRpYyBxaW50MzIgdG9JbnQzMl92YWx1ZUFycmF5W10g
PSB7CiAgICAgMCwgMCwKQEAgLTEyODIsMTQgKzEyOTEsMTUgQEAgc3RhdGljIHFpbnQzMiB0b0lu
dDMyX3ZhbHVlQXJyYXlbXSA9IHsKICAgICAwLCAwLAogICAgIDAsIDAsCiAgICAgMTIzLCAxMiwK
LSAgICAwLCAwfTsKKyAgICAwLCAwLAorICAgIDAsIH07CiAKIHZvaWQgdHN0X1FTY3JpcHRWYWx1
ZTo6dG9JbnQzMl9tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQogewogICAgIHN0YXRpYyBRSGFz
aDxRU3RyaW5nLCBxaW50MzI+IHRvSW50MzI7CiAgICAgaWYgKHRvSW50MzIuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIHRvSW50MzIucmVzZXJ2ZSgxMzIpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgMTMyOyArK2kpCisgICAgICAgIHRvSW50MzIucmVzZXJ2ZSgxMzMpOworICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTMzOyArK2kpCiAgICAgICAgICAgICB0b0ludDMy
Lmluc2VydCh0b0ludDMyX3RhZ0FycmF5W2ldLCB0b0ludDMyX3ZhbHVlQXJyYXlbaV0pOwogICAg
IH0KICAgICBuZXdSb3coZXhwcikgPDwgdG9JbnQzMi52YWx1ZShleHByKTsKQEAgLTE0NDMsNyAr
MTQ1Myw4IEBAIHN0YXRpYyBRU3RyaW5nIHRvVUludDMyX3RhZ0FycmF5W10gPSB7CiAgICAgImVu
Z2luZS0+ZXZhbHVhdGUoXCInMTIzJ1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIu
NCdcIikiLAogICAgICJlbmdpbmUtPm51bGxWYWx1ZSgpIiwKLSAgICAiZW5naW5lLT51bmRlZmlu
ZWRWYWx1ZSgpIn07CisgICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSIsCisgICAgImVuZ2lu
ZS0+bmV3RGF0ZShRRGF0ZVRpbWUoKSkiLCB9OwogCiBzdGF0aWMgcXVpbnQzMiB0b1VJbnQzMl92
YWx1ZUFycmF5W10gPSB7CiAgICAgMCwgMCwKQEAgLTE1MTEsMTQgKzE1MjIsMTUgQEAgc3RhdGlj
IHF1aW50MzIgdG9VSW50MzJfdmFsdWVBcnJheVtdID0gewogICAgIDAsIDAsCiAgICAgMCwgMCwK
ICAgICAxMjMsIDEyLAotICAgIDAsIDB9OworICAgIDAsIDAsCisgICAgMCwgfTsKIAogdm9pZCB0
c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQzMl9tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQogewog
ICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBxdWludDMyPiB0b1VJbnQzMjsKICAgICBpZiAodG9V
SW50MzIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRvVUludDMyLnJlc2VydmUoMTMyKTsKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsgKytpKQorICAgICAgICB0b1VJbnQzMi5y
ZXNlcnZlKDEzMyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMzM7ICsraSkK
ICAgICAgICAgICAgIHRvVUludDMyLmluc2VydCh0b1VJbnQzMl90YWdBcnJheVtpXSwgdG9VSW50
MzJfdmFsdWVBcnJheVtpXSk7CiAgICAgfQogICAgIG5ld1JvdyhleHByKSA8PCB0b1VJbnQzMi52
YWx1ZShleHByKTsKQEAgLTE2NzIsNyArMTY4NCw4IEBAIHN0YXRpYyBRU3RyaW5nIHRvVUludDE2
X3RhZ0FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIzJ1wiKSIsCiAgICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIuNCdcIikiLAogICAgICJlbmdpbmUtPm51bGxWYWx1ZSgp
IiwKLSAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIn07CisgICAgImVuZ2luZS0+dW5kZWZp
bmVkVmFsdWUoKSIsCisgICAgImVuZ2luZS0+bmV3RGF0ZShRRGF0ZVRpbWUoKSkiLCB9OwogCiBz
dGF0aWMgcXVpbnQxNiB0b1VJbnQxNl92YWx1ZUFycmF5W10gPSB7CiAgICAgMCwgMCwKQEAgLTE3
NDAsMTQgKzE3NTMsMTUgQEAgc3RhdGljIHF1aW50MTYgdG9VSW50MTZfdmFsdWVBcnJheVtdID0g
ewogICAgIDAsIDAsCiAgICAgMCwgMCwKICAgICAxMjMsIDEyLAotICAgIDAsIDB9OworICAgIDAs
IDAsCisgICAgMCwgfTsKIAogdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQxNl9tYWtlRGF0
YShjb25zdCBjaGFyKiBleHByKQogewogICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBxdWludDE2
PiB0b1VJbnQxNjsKICAgICBpZiAodG9VSW50MTYuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRvVUlu
dDE2LnJlc2VydmUoMTMyKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsg
KytpKQorICAgICAgICB0b1VJbnQxNi5yZXNlcnZlKDEzMyk7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCAxMzM7ICsraSkKICAgICAgICAgICAgIHRvVUludDE2Lmluc2VydCh0b1VJ
bnQxNl90YWdBcnJheVtpXSwgdG9VSW50MTZfdmFsdWVBcnJheVtpXSk7CiAgICAgfQogICAgIG5l
d1JvdyhleHByKSA8PCB0b1VJbnQxNi52YWx1ZShleHByKTsKLS0gCjEuNy4xLjEKCg==
</data>
<flag name="review"
          id="50283"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="58679"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69193</attachid>
            <date>2010-09-29 07:28:18 -0700</date>
            <delta_ts>2010-09-29 09:31:30 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>0001-Qt-QScriptEngine-should-have-an-API-for-creating-Dat.patch</filename>
            <type>text/plain</type>
            <size>16508</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSBkNzI5N2JkNzBmNDljZjNkYTIzMmIwYzJlOTRhYmY2ZTA0NzJlNWUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCAxNCBKdWwgMjAxMCAxMDozMTowOSAt
MDMwMApTdWJqZWN0OiBbUEFUQ0hdIFtRdF0gUVNjcmlwdEVuZ2luZSBzaG91bGQgaGF2ZSBhbiBB
UEkgZm9yIGNyZWF0aW5nIERhdGUgb2JqZWN0cwoKLS0tCiBKYXZhU2NyaXB0Q29yZS9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKysrKysrKysKIEphdmFT
Y3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNwcCAgICAgICAgICAgIHwgICAyMyArKysr
KysrKysKIEphdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmggICAgICAgICAgICAg
IHwgICAgNSArKy0KIEphdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuY3BwICAg
ICAgICAgIHwgICAxNCArKysrKysKIEphdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5l
X3AuaCAgICAgICAgICAgIHwgICAgOCArKysKIC4uLi9xdC9hcGkvcXNjcmlwdG9yaWdpbmFsZ2xv
YmFsb2JqZWN0X3AuaCAgICAgICAgIHwgICAxMSArKysrCiBKYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdHZhbHVlLmNwcCAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrCiBKYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmggICAgICAgICAgICAgICB8ICAgIDMgKwogSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmggICAgICAgICAgICAgfCAgIDM1ICsrKysr
KysrKysrKysrCiAuLi4vcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5j
cHAgICB8ICAgNDkgKysrKysrKysrKysrKysrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDIwNiBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZwppbmRleCBlODA0OTNi
Li5lMmU2ZGQzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIv
SmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTAtMDktMjkg
IENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
UXRdIFFTY3JpcHRFbmdpbmUgc2hvdWxkIGhhdmUgYW4gQVBJIGZvciBjcmVhdGluZyBEYXRlIG9i
amVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NjY3CisKKyAgICAgICAgSW1wbGVtZW50IG5ld0RhdGUoKSwgaXNEYXRlKCkgYW5kIHRvRGF0ZVRp
bWUoKSBmdW5jdGlvbnMuIFVzZSB0aGUKKyAgICAgICAgUURhdGVUaW1lOjp7dG8sc2V0fU1TZWNz
U2luY2VFcG9jaCgpIGZ1bmN0aW9ucyB0byBkbyB0aGUKKyAgICAgICAgY2FsY3VsYXRpb25zLgor
CisgICAgICAgICogYXBpL3FzY3JpcHRlbmdpbmUuY3BwOgorICAgICAgICAoUVNjcmlwdEVuZ2lu
ZTo6bmV3RGF0ZSk6CisgICAgICAgICogYXBpL3FzY3JpcHRlbmdpbmUuaDoKKyAgICAgICAgKiBh
cGkvcXNjcmlwdGVuZ2luZV9wLmNwcDoKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjpu
ZXdEYXRlKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdGVuZ2luZV9wLmg6CisgICAgICAgIChRU2Ny
aXB0RW5naW5lUHJpdmF0ZTo6aXNEYXRlKToKKworICAgICAgICAqIGFwaS9xc2NyaXB0b3JpZ2lu
YWxnbG9iYWxvYmplY3RfcC5oOgorICAgICAgICAoUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0
OjpRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3QpOiBuZWVkCisgICAgICAgIHRvIGtlZXAgdHJh
Y2sgb2YgRGF0ZSBDb25zdHJ1Y3RvciBhbmQgUHJvdG90eXBlLgorICAgICAgICAoUVNjcmlwdE9y
aWdpbmFsR2xvYmFsT2JqZWN0Ojp+UVNjcmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0KTogZGl0dG8u
CisgICAgICAgIChRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OmlzRGF0ZSk6IHVzZSB0aGUg
RGF0ZSBDb25zdHJ1Y3RvcgorICAgICAgICBhbmQgUHJvdG90eXBlIHRvIGlkZW50aWZ5IERhdGUg
dmFsdWVzLgorCisgICAgICAgICogYXBpL3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgIChRU2Ny
aXB0VmFsdWU6OmlzRGF0ZSk6CisgICAgICAgIChRU2NyaXB0VmFsdWU6OnRvRGF0ZVRpbWUpOgor
ICAgICAgICAqIGFwaS9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVl
X3AuaDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzRGF0ZSk6CisgICAgICAgIChR
U2NyaXB0VmFsdWVQcml2YXRlOjp0b0RhdGVUaW1lKToKKyAgICAgICAgKiB0ZXN0cy9xc2NyaXB0
ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcDoKKyAgICAgICAgKHRzdF9RU2NyaXB0RW5naW5l
OjpuZXdEYXRlKToKKwogMjAxMC0wNy0yNyAgSmVkcnplaiBOb3dhY2tpICA8amVkcnplai5ub3dh
Y2tpQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbi4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5l
LmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNwcAppbmRleCA3ZWY3
YzhlLi42MDdiMGI5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVu
Z2luZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwCkBA
IC0yNSw2ICsyNSw4IEBACiAjaW5jbHVkZSAicXNjcmlwdHByb2dyYW1fcC5oIgogI2luY2x1ZGUg
InFzY3JpcHRzeW50YXhjaGVja3Jlc3VsdF9wLmgiCiAjaW5jbHVkZSAicXNjcmlwdHZhbHVlX3Au
aCIKKyNpbmNsdWRlIDxRdENvcmUvcWRhdGV0aW1lLmg+CisjaW5jbHVkZSA8UXRDb3JlL3FudW1l
cmljLmg+CiAKIC8qIQogICAgIENvbnN0cnVjdHMgYSBRU2NyaXB0RW5naW5lIG9iamVjdC4KQEAg
LTM2OCw2ICszNzAsMjcgQEAgUVNjcmlwdFZhbHVlIFFTY3JpcHRFbmdpbmU6Om5ld0FycmF5KHVp
bnQgbGVuZ3RoKQogfQogCiAvKiEKKyAgICBDcmVhdGVzIGEgUXRTY3JpcHQgb2JqZWN0IG9mIGNs
YXNzIERhdGUgd2l0aCB0aGUgZ2l2ZW4gXGEgdmFsdWUKKyAgICAodGhlIG51bWJlciBvZiBtaWxs
aXNlY29uZHMgc2luY2UgMDEgSmFudWFyeSAxOTcwLCBVVEMpLgorKi8KK1FTY3JpcHRWYWx1ZSBR
U2NyaXB0RW5naW5lOjpuZXdEYXRlKHFzcmVhbCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gUVNjcmlw
dFZhbHVlUHJpdmF0ZTo6Z2V0KGRfcHRyLT5uZXdEYXRlKHZhbHVlKSk7Cit9CisKKy8qIQorICAg
IENyZWF0ZXMgYSBRdFNjcmlwdCBvYmplY3Qgb2YgY2xhc3MgRGF0ZSBmcm9tIHRoZSBnaXZlbiBc
YSB2YWx1ZS4KKworICAgIFxzYSBRU2NyaXB0VmFsdWU6OnRvRGF0ZVRpbWUoKQorKi8KK1FTY3Jp
cHRWYWx1ZSBRU2NyaXB0RW5naW5lOjpuZXdEYXRlKGNvbnN0IFFEYXRlVGltZSYgdmFsdWUpCit7
CisgICAgaWYgKHZhbHVlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OmdldChkX3B0ci0+bmV3RGF0ZShxc3JlYWwodmFsdWUudG9NU2Vjc1NpbmNlRXBvY2go
KSkpKTsKKyAgICByZXR1cm4gUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0KGRfcHRyLT5uZXdEYXRl
KHFTTmFOKCkpKTsKK30KKworLyohCiAgIFJldHVybnMgdGhpcyBlbmdpbmUncyBHbG9iYWwgT2Jq
ZWN0LgogCiAgIEJ5IGRlZmF1bHQsIHRoZSBHbG9iYWwgT2JqZWN0IGNvbnRhaW5zIHRoZSBidWls
dC1pbiBvYmplY3RzIHRoYXQgYXJlCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdGVuZ2luZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaApp
bmRleCBiODVkYzUyLi4yODE3MDdmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdGVuZ2luZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5l
LmgKQEAgLTIzLDExICsyMywxMiBAQAogI2luY2x1ZGUgInFzY3JpcHRwcm9ncmFtLmgiCiAjaW5j
bHVkZSAicXNjcmlwdHN0cmluZy5oIgogI2luY2x1ZGUgInFzY3JpcHRzeW50YXhjaGVja3Jlc3Vs
dC5oIgorI2luY2x1ZGUgInFzY3JpcHR2YWx1ZS5oIgogI2luY2x1ZGUgPFF0Q29yZS9xb2JqZWN0
Lmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3Fz
dHJpbmcuaD4KIAotY2xhc3MgUVNjcmlwdFZhbHVlOworY2xhc3MgUURhdGVUaW1lOwogY2xhc3Mg
UVNjcmlwdEVuZ2luZVByaXZhdGU7CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIFFTY3Jp
cHRDb250ZXh0IGlzIHByb3Blcmx5IGRlZmluZWQuCkBAIC02OSw2ICs3MCw4IEBAIHB1YmxpYzoK
IAogICAgIFFTY3JpcHRWYWx1ZSBuZXdPYmplY3QoKTsKICAgICBRU2NyaXB0VmFsdWUgbmV3QXJy
YXkodWludCBsZW5ndGggPSAwKTsKKyAgICBRU2NyaXB0VmFsdWUgbmV3RGF0ZShxc3JlYWwgdmFs
dWUpOworICAgIFFTY3JpcHRWYWx1ZSBuZXdEYXRlKGNvbnN0IFFEYXRlVGltZSYgdmFsdWUpOwog
ICAgIFFTY3JpcHRWYWx1ZSBnbG9iYWxPYmplY3QoKSBjb25zdDsKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFFTY3JpcHRFbmdpbmVQcml2YXRlOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNj
cmlwdGVuZ2luZV9wLmNwcAppbmRleCBhNzA4YTM0Li44OTA1NGMwIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcApAQCAtMTQ2LDYgKzE0NiwyMCBAQCBRU2NyaXB0
VmFsdWVQcml2YXRlKiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6bmV3QXJyYXkodWludCBsZW5ndGgp
CiAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKHRoaXMsIGFycmF5KTsKIH0KIAor
UVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdEVuZ2luZVByaXZhdGU6Om5ld0RhdGUocXNyZWFs
IHZhbHVlKQoreworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU1ZhbHVlUmVm
IGFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VOdW1iZXIobV9jb250ZXh0LCB2YWx1ZSk7CisgICAgSlNP
YmplY3RSZWYgcmVzdWx0ID0gSlNPYmplY3RNYWtlRGF0ZShtX2NvbnRleHQsIC8qIGFyZ3VtZW50
Q291bnQgKi8gMSwgJmFyZ3VtZW50LCAmZXhjZXB0aW9uKTsKKworICAgIGlmIChleGNlcHRpb24p
IHsKKyAgICAgICAgc2V0RXhjZXB0aW9uKGV4Y2VwdGlvbiwgTm90TnVsbEV4Y2VwdGlvbik7Cisg
ICAgICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSgpOworICAgIH0KKworICAgIHJl
dHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCByZXN1bHQpOworfQorCiBRU2NyaXB0
VmFsdWVQcml2YXRlKiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6Z2xvYmFsT2JqZWN0KCkgY29uc3QK
IHsKICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmpl
Y3QobV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0
ZW5naW5lX3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaAppbmRl
eCBlZWMxOTI5Li40NjAzYjkxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNj
cmlwdGVuZ2luZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVf
cC5oCkBAIC03NywxNiArNzcsMTkgQEAgcHVibGljOgogCiAgICAgUVNjcmlwdFZhbHVlUHJpdmF0
ZSogbmV3T2JqZWN0KCkgY29uc3Q7CiAgICAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogbmV3QXJyYXko
dWludCBsZW5ndGgpOworICAgIFFTY3JpcHRWYWx1ZVByaXZhdGUqIG5ld0RhdGUocXNyZWFsIHZh
bHVlKTsKICAgICBRU2NyaXB0VmFsdWVQcml2YXRlKiBnbG9iYWxPYmplY3QoKSBjb25zdDsKIAog
ICAgIGlubGluZSBRU2NyaXB0U3RyaW5nUHJpdmF0ZSogdG9TdHJpbmdIYW5kbGUoY29uc3QgUVN0
cmluZyYgc3RyKSBjb25zdDsKIAogICAgIGlubGluZSBvcGVyYXRvciBKU0dsb2JhbENvbnRleHRS
ZWYoKSBjb25zdDsKIAorICAgIGlubGluZSBib29sIGlzRGF0ZShKU1ZhbHVlUmVmIHZhbHVlKSBj
b25zdDsKICAgICBpbmxpbmUgYm9vbCBpc0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0Owog
ICAgIGlubGluZSBib29sIGlzRXJyb3IoSlNWYWx1ZVJlZiB2YWx1ZSkgY29uc3Q7CiAgICAgaW5s
aW5lIGJvb2wgb2JqZWN0SGFzT3duUHJvcGVydHkoSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmlu
Z1JlZiBwcm9wZXJ0eSkgY29uc3Q7CiAgICAgaW5saW5lIFFWZWN0b3I8SlNTdHJpbmdSZWY+IG9i
amVjdEdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3RSZWYgb2JqZWN0KSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICBRU2NyaXB0RW5naW5lKiBxX3B0cjsKICAgICBKU0dsb2JhbENvbnRleHRSZWYg
bV9jb250ZXh0OwpAQCAtMjI2LDYgKzIyOSwxMSBAQCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6b3Bl
cmF0b3IgSlNHbG9iYWxDb250ZXh0UmVmKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0Owog
fQogCitib29sIFFTY3JpcHRFbmdpbmVQcml2YXRlOjppc0RhdGUoSlNWYWx1ZVJlZiB2YWx1ZSkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9vcmlnaW5hbEdsb2JhbE9iamVjdC5pc0RhdGUodmFsdWUp
OworfQorCiBib29sIFFTY3JpcHRFbmdpbmVQcml2YXRlOjppc0FycmF5KEpTVmFsdWVSZWYgdmFs
dWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fb3JpZ2luYWxHbG9iYWxPYmplY3QuaXNBcnJheSh2
YWx1ZSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdG9yaWdpbmFs
Z2xvYmFsb2JqZWN0X3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0b3JpZ2luYWxn
bG9iYWxvYmplY3RfcC5oCmluZGV4IDMxZTk0ZjcuLjJiZDk0NWYgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0b3JpZ2luYWxnbG9iYWxvYmplY3RfcC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0b3JpZ2luYWxnbG9iYWxvYmplY3RfcC5oCkBAIC00
Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgYm9vbCBvYmplY3RIYXNPd25Qcm9wZXJ0
eShKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5KSBjb25zdDsKICAgICBp
bmxpbmUgUVZlY3RvcjxKU1N0cmluZ1JlZj4gb2JqZWN0R2V0T3duUHJvcGVydHlOYW1lcyhKU09i
amVjdFJlZiBvYmplY3QpIGNvbnN0OwogCisgICAgaW5saW5lIGJvb2wgaXNEYXRlKEpTVmFsdWVS
ZWYgdmFsdWUpIGNvbnN0OwogICAgIGlubGluZSBib29sIGlzQXJyYXkoSlNWYWx1ZVJlZiB2YWx1
ZSkgY29uc3Q7CiAgICAgaW5saW5lIGJvb2wgaXNFcnJvcihKU1ZhbHVlUmVmIHZhbHVlKSBjb25z
dDsKIApAQCAtNjEsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIEpTVmFsdWVSZWYgbV9lcnJvclBy
b3RvdHlwZTsKICAgICBKU09iamVjdFJlZiBtX2Z1bmN0aW9uQ29uc3RydWN0b3I7CiAgICAgSlNW
YWx1ZVJlZiBtX2Z1bmN0aW9uUHJvdG90eXBlOworICAgIEpTT2JqZWN0UmVmIG1fZGF0ZUNvbnN0
cnVjdG9yOworICAgIEpTVmFsdWVSZWYgbV9kYXRlUHJvdG90eXBlOwogCiAgICAgLy8gUmVmZXJl
bmNlIHRvIHN0YW5kYXJkIEpTIGZ1bmN0aW9ucyB0aGF0IGFyZSBub3QgZXhwb3NlZCBieSBKU0Mg
QyBBUEkuCiAgICAgSlNPYmplY3RSZWYgbV9oYXNPd25Qcm9wZXJ0eUZ1bmN0aW9uOwpAQCAtNzgs
NiArODEsNyBAQCBRU2NyaXB0T3JpZ2luYWxHbG9iYWxPYmplY3Q6OlFTY3JpcHRPcmlnaW5hbEds
b2JhbE9iamVjdChKU0dsb2JhbENvbnRleHRSZWYgY29udAogICAgIGluaXRpYWxpemVNZW1iZXIo
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUuZ2V0KCksICJBcnJheSIsIG1fYXJyYXlDb25zdHJ1
Y3RvciwgbV9hcnJheVByb3RvdHlwZSk7CiAgICAgaW5pdGlhbGl6ZU1lbWJlcihnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZS5nZXQoKSwgIkVycm9yIiwgbV9lcnJvckNvbnN0cnVjdG9yLCBtX2Vy
cm9yUHJvdG90eXBlKTsKICAgICBpbml0aWFsaXplTWVtYmVyKGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lLmdldCgpLCAiRnVuY3Rpb24iLCBtX2Z1bmN0aW9uQ29uc3RydWN0b3IsIG1fZnVuY3Rp
b25Qcm90b3R5cGUpOworICAgIGluaXRpYWxpemVNZW1iZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUuZ2V0KCksICJEYXRlIiwgbV9kYXRlQ29uc3RydWN0b3IsIG1fZGF0ZVByb3RvdHlwZSk7
CiAKICAgICBwcm9wZXJ0eU5hbWUuYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
Imhhc093blByb3BlcnR5IikpOwogICAgIG1faGFzT3duUHJvcGVydHlGdW5jdGlvbiA9IGNvbnN0
X2Nhc3Q8SlNPYmplY3RSZWY+KEpTT2JqZWN0R2V0UHJvcGVydHkobV9jb250ZXh0LCBnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZS5nZXQoKSwgJmV4Y2VwdGlvbikpOwpAQCAtMTI2LDYgKzEzMCw4
IEBAIFFTY3JpcHRPcmlnaW5hbEdsb2JhbE9iamVjdDo6flFTY3JpcHRPcmlnaW5hbEdsb2JhbE9i
amVjdCgpCiAgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRleHQsIG1fZXJyb3JQcm90b3R5cGUp
OwogICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2Z1bmN0aW9uQ29uc3RydWN0b3Ip
OwogICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2Z1bmN0aW9uUHJvdG90eXBlKTsK
KyAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9kYXRlQ29uc3RydWN0b3IpOworICAg
IEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2RhdGVQcm90b3R5cGUpOwogICAgIEpTVmFs
dWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2hhc093blByb3BlcnR5RnVuY3Rpb24pOwogICAgIEpT
VmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2dldE93blByb3BlcnR5TmFtZXNGdW5jdGlvbik7
CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShtX2NvbnRleHQpOwpAQCAtMTcwLDYgKzE3Niwx
MSBAQCBpbmxpbmUgUVZlY3RvcjxKU1N0cmluZ1JlZj4gUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2Jq
ZWN0OjpvYmplY3RHZXRPd25Qcm9wZXJ0eU5hbQogICAgIHJldHVybiBuYW1lczsKIH0KIAoraW5s
aW5lIGJvb2wgUVNjcmlwdE9yaWdpbmFsR2xvYmFsT2JqZWN0Ojppc0RhdGUoSlNWYWx1ZVJlZiB2
YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNUeXBlKHZhbHVlLCBtX2RhdGVDb25zdHJ1Y3Rv
ciwgbV9kYXRlUHJvdG90eXBlKTsKK30KKwogaW5saW5lIGJvb2wgUVNjcmlwdE9yaWdpbmFsR2xv
YmFsT2JqZWN0Ojppc0FycmF5KEpTVmFsdWVSZWYgdmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGlzVHlwZSh2YWx1ZSwgbV9hcnJheUNvbnN0cnVjdG9yLCBtX2FycmF5UHJvdG90eXBlKTsKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHAKaW5kZXggYTdkMGI3Yi4uOGE3YTZjNCAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHAKQEAgLTMyNCw2ICszMjQsMTcg
QEAgYm9vbCBRU2NyaXB0VmFsdWU6OmlzQXJyYXkoKSBjb25zdAogfQogCiAvKiEKKyAgICBSZXR1
cm5zIHRydWUgaWYgdGhpcyBRU2NyaXB0VmFsdWUgaXMgYW4gb2JqZWN0IG9mIHRoZSBEYXRlIGNs
YXNzOworICAgIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgorCisgICAgXHNhIFFTY3JpcHRFbmdp
bmU6Om5ld0RhdGUoKQorKi8KK2Jvb2wgUVNjcmlwdFZhbHVlOjppc0RhdGUoKSBjb25zdAorewor
ICAgIHJldHVybiBkX3B0ci0+aXNEYXRlKCk7Cit9CisKKy8qIQogICBSZXR1cm5zIHRydWUgaWYg
dGhpcyBRU2NyaXB0VmFsdWUgaXMgb2YgdGhlIE9iamVjdCB0eXBlOyBvdGhlcndpc2UKICAgcmV0
dXJucyBmYWxzZS4KIApAQCAtNDg4LDYgKzQ5OSwxOCBAQCBRU2NyaXB0VmFsdWUgUVNjcmlwdFZh
bHVlOjp0b09iamVjdCgpIGNvbnN0CiB9CiAKIC8qIQorICAgIFJldHVybnMgYSBRRGF0ZVRpbWUg
cmVwcmVzZW50YXRpb24gb2YgdGhpcyB2YWx1ZSwgaW4gbG9jYWwgdGltZS4KKyAgICBJZiB0aGlz
IFFTY3JpcHRWYWx1ZSBpcyBub3QgYSBkYXRlLCBvciB0aGUgdmFsdWUgb2YgdGhlIGRhdGUgaXMK
KyAgICBOYU4gKE5vdC1hLU51bWJlciksIGFuIGludmFsaWQgUURhdGVUaW1lIGlzIHJldHVybmVk
LgorCisgICAgXHNhIGlzRGF0ZSgpCisqLworUURhdGVUaW1lIFFTY3JpcHRWYWx1ZTo6dG9EYXRl
VGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRfcHRyLT50b0RhdGVUaW1lKCk7Cit9CisKKy8q
IQogICBDYWxscyB0aGlzIFFTY3JpcHRWYWx1ZSBhcyBhIGZ1bmN0aW9uLCB1c2luZyBcYSB0aGlz
T2JqZWN0IGFzCiAgIHRoZSBgdGhpcycgb2JqZWN0IGluIHRoZSBmdW5jdGlvbiBjYWxsLCBhbmQg
cGFzc2luZyBcYSBhcmdzCiAgIGFzIGFyZ3VtZW50cyB0byB0aGUgZnVuY3Rpb24uIFJldHVybnMg
dGhlIHZhbHVlIHJldHVybmVkIGZyb20KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2Fw
aS9xc2NyaXB0dmFsdWUuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuaApp
bmRleCA5OTFhNmEwLi5iZDMzODQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdHZhbHVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAKIGNsYXNzIFFTY3JpcHRFbmdpbmU7CiBjbGFzcyBRU2NyaXB0
VmFsdWVQcml2YXRlOworY2xhc3MgUURhdGVUaW1lOwogCiBjbGFzcyBRU2NyaXB0VmFsdWU7CiB0
eXBlZGVmIFFMaXN0PFFTY3JpcHRWYWx1ZT4gUVNjcmlwdFZhbHVlTGlzdDsKQEAgLTExMiw2ICsx
MTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0OwogICAgIGJvb2wgaXNF
cnJvcigpIGNvbnN0OwogICAgIGJvb2wgaXNBcnJheSgpIGNvbnN0OworICAgIGJvb2wgaXNEYXRl
KCkgY29uc3Q7CiAKICAgICBRU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAgICAgcXNyZWFsIHRv
TnVtYmVyKCkgY29uc3Q7CkBAIC0xMjIsNiArMTI0LDcgQEAgcHVibGljOgogICAgIHF1aW50MzIg
dG9VSW50MzIoKSBjb25zdDsKICAgICBxdWludDE2IHRvVUludDE2KCkgY29uc3Q7CiAgICAgUVNj
cmlwdFZhbHVlIHRvT2JqZWN0KCkgY29uc3Q7CisgICAgUURhdGVUaW1lIHRvRGF0ZVRpbWUoKSBj
b25zdDsKIAogICAgIFFTY3JpcHRWYWx1ZSBjYWxsKGNvbnN0IFFTY3JpcHRWYWx1ZSYgdGhpc09i
amVjdCA9IFFTY3JpcHRWYWx1ZSgpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTY3Jp
cHRWYWx1ZUxpc3QmIGFyZ3MgPSBRU2NyaXB0VmFsdWVMaXN0KCkpOwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCA2ZmJmOThiLi5mOThhMDZhIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1Jl
dGFpblB0ci5oPgogI2luY2x1ZGUgPEpTT2JqZWN0UmVmUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFF0
Q29yZS9xZGF0ZXRpbWUuaD4KICNpbmNsdWRlIDxRdENvcmUvcW1hdGguaD4KICNpbmNsdWRlIDxR
dENvcmUvcW51bWVyaWMuaD4KICNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KQEAgLTEw
Miw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgaW5saW5lIGJvb2wgaXNPYmplY3QoKTsKICAgICBp
bmxpbmUgYm9vbCBpc0Z1bmN0aW9uKCk7CiAgICAgaW5saW5lIGJvb2wgaXNBcnJheSgpOworICAg
IGlubGluZSBib29sIGlzRGF0ZSgpOwogCiAgICAgaW5saW5lIFFTdHJpbmcgdG9TdHJpbmcoKSBj
b25zdDsKICAgICBpbmxpbmUgcXNyZWFsIHRvTnVtYmVyKCkgY29uc3Q7CkBAIC0xMTMsNiArMTE1
LDcgQEAgcHVibGljOgogCiAgICAgaW5saW5lIFFTY3JpcHRWYWx1ZVByaXZhdGUqIHRvT2JqZWN0
KFFTY3JpcHRFbmdpbmVQcml2YXRlKiBlbmdpbmUpOwogICAgIGlubGluZSBRU2NyaXB0VmFsdWVQ
cml2YXRlKiB0b09iamVjdCgpOworICAgIGlubGluZSBRRGF0ZVRpbWUgdG9EYXRlVGltZSgpOwog
ICAgIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBwcm90b3R5cGUoKTsKICAgICBpbmxpbmUg
dm9pZCBzZXRQcm90b3R5cGUoUVNjcmlwdFZhbHVlUHJpdmF0ZSogcHJvdG90eXBlKTsKIApAQCAt
NDYyLDYgKzQ2NSwyMCBAQCBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzQXJyYXkoKQogICAg
IH0KIH0KIAorYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppc0RhdGUoKQoreworICAgIHN3aXRj
aCAobV9zdGF0ZSkgeworICAgIGNhc2UgSlNWYWx1ZToKKyAgICAgICAgaWYgKHJlZmluZWRKU1Zh
bHVlKCkgIT0gSlNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8v
IEZhbGwtdGhyb3VnaC4KKyAgICBjYXNlIEpTT2JqZWN0OgorICAgICAgICByZXR1cm4gbV9lbmdp
bmUtPmlzRGF0ZSgqdGhpcyk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KK30KKwogUVN0cmluZyBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b1N0cmluZygpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChtX3N0YXRlKSB7CkBAIC02NjIsNiArNjc5LDI0IEBAIFFTY3JpcHRW
YWx1ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvT2JqZWN0KCkKICAgICByZXR1cm4g
bmV3IFFTY3JpcHRWYWx1ZVByaXZhdGU7CiB9CiAKK1FEYXRlVGltZSBRU2NyaXB0VmFsdWVQcml2
YXRlOjp0b0RhdGVUaW1lKCkKK3sKKyAgICBpZiAoIWlzRGF0ZSgpKQorICAgICAgICByZXR1cm4g
UURhdGVUaW1lKCk7CisKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgcXNyZWFs
IHQgPSBKU1ZhbHVlVG9OdW1iZXIoKm1fZW5naW5lLCAqdGhpcywgJmV4Y2VwdGlvbik7CisKKyAg
ICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgIG1fZW5naW5lLT5zZXRFeGNlcHRpb24oZXhjZXB0
aW9uLCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6Tm90TnVsbEV4Y2VwdGlvbik7CisgICAgICAgIHJl
dHVybiBRRGF0ZVRpbWUoKTsKKyAgICB9CisKKyAgICBRRGF0ZVRpbWUgcmVzdWx0OworICAgIHJl
c3VsdC5zZXRNU2Vjc1NpbmNlRXBvY2gocWludDY0KHQpKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiBpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6cHJv
dG90eXBlKCkKIHsKICAgICBpZiAoaXNPYmplY3QoKSkgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5jcHAgYi9KYXZh
U2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcApp
bmRleCA1OGExNTg3Li5kYWJjZmIyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0
cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcApAQCAtMjEsNiAr
MjEsNyBAQAogI2luY2x1ZGUgInFzY3JpcHRwcm9ncmFtLmgiCiAjaW5jbHVkZSAicXNjcmlwdHN5
bnRheGNoZWNrcmVzdWx0LmgiCiAjaW5jbHVkZSAicXNjcmlwdHZhbHVlLmgiCisjaW5jbHVkZSA8
UXRDb3JlL3FudW1lcmljLmg+CiAjaW5jbHVkZSA8UXRUZXN0L3F0ZXN0Lmg+CiAKIGNsYXNzIHRz
dF9RU2NyaXB0RW5naW5lIDogcHVibGljIFFPYmplY3QgewpAQCAtNTAsNiArNTEsNyBAQCBwcml2
YXRlIHNsb3RzOgogICAgIHZvaWQgdG9PYmplY3RUd29FbmdpbmVzKCk7CiAgICAgdm9pZCBuZXdB
cnJheSgpOwogICAgIHZvaWQgdW5jYXVnaHRFeGNlcHRpb24oKTsKKyAgICB2b2lkIG5ld0RhdGUo
KTsKIH07CiAKIC8qIEV2YWx1YXRpbmcgYSBzY3JpcHQgdGhhdCB0aHJvdyBhbiB1bmhhbmRsZWQg
ZXhjZXB0aW9uIHNob3VsZCByZXR1cm4gYW4gaW52YWxpZCB2YWx1ZS4gKi8KQEAgLTY4MSw1ICs2
ODMsNTIgQEAgdm9pZCB0c3RfUVNjcmlwdEVuZ2luZTo6dW5jYXVnaHRFeGNlcHRpb24oKQogICAg
IH0KIH0KIAordm9pZCB0c3RfUVNjcmlwdEVuZ2luZTo6bmV3RGF0ZSgpCit7CisgICAgUVNjcmlw
dEVuZ2luZSBlbmc7CisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgZGF0ZSA9IGVuZy5uZXdE
YXRlKDApOworICAgICAgICBRQ09NUEFSRShkYXRlLmlzVmFsaWQoKSwgdHJ1ZSk7CisgICAgICAg
IFFDT01QQVJFKGRhdGUuaXNEYXRlKCksIHRydWUpOworICAgICAgICBRQ09NUEFSRShkYXRlLmlz
T2JqZWN0KCksIHRydWUpOworICAgICAgICBRVkVSSUZZKCFkYXRlLmlzRnVuY3Rpb24oKSk7Cisg
ICAgICAgIC8vIHByb3RvdHlwZSBzaG91bGQgYmUgRGF0ZS5wcm90b3R5cGUKKyAgICAgICAgUUNP
TVBBUkUoZGF0ZS5wcm90b3R5cGUoKS5pc1ZhbGlkKCksIHRydWUpOworICAgICAgICBRQ09NUEFS
RShkYXRlLnByb3RvdHlwZSgpLmlzRGF0ZSgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUoZGF0
ZS5wcm90b3R5cGUoKS5zdHJpY3RseUVxdWFscyhlbmcuZXZhbHVhdGUoIkRhdGUucHJvdG90eXBl
IikpLCB0cnVlKTsKKyAgICB9CisgICAgeworICAgICAgICBRRGF0ZVRpbWUgZHQgPSBRRGF0ZVRp
bWUoUURhdGUoMSwgMiwgMyksIFFUaW1lKDQsIDUsIDYsIDcpLCBRdDo6TG9jYWxUaW1lKTsKKyAg
ICAgICAgUVNjcmlwdFZhbHVlIGRhdGUgPSBlbmcubmV3RGF0ZShkdCk7CisgICAgICAgIFFDT01Q
QVJFKGRhdGUuaXNWYWxpZCgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUoZGF0ZS5pc0RhdGUo
KSwgdHJ1ZSk7CisgICAgICAgIFFDT01QQVJFKGRhdGUuaXNPYmplY3QoKSwgdHJ1ZSk7CisgICAg
ICAgIC8vIHByb3RvdHlwZSBzaG91bGQgYmUgRGF0ZS5wcm90b3R5cGUKKyAgICAgICAgUUNPTVBB
UkUoZGF0ZS5wcm90b3R5cGUoKS5pc1ZhbGlkKCksIHRydWUpOworICAgICAgICBRQ09NUEFSRShk
YXRlLnByb3RvdHlwZSgpLmlzRGF0ZSgpLCB0cnVlKTsKKyAgICAgICAgUUNPTVBBUkUoZGF0ZS5w
cm90b3R5cGUoKS5zdHJpY3RseUVxdWFscyhlbmcuZXZhbHVhdGUoIkRhdGUucHJvdG90eXBlIikp
LCB0cnVlKTsKKworICAgICAgICBRQ09NUEFSRShkYXRlLnRvRGF0ZVRpbWUoKSwgZHQpOworICAg
IH0KKyAgICB7CisgICAgICAgIFFEYXRlVGltZSBkdCA9IFFEYXRlVGltZShRRGF0ZSgxLCAyLCAz
KSwgUVRpbWUoNCwgNSwgNiwgNyksIFF0OjpVVEMpOworICAgICAgICBRU2NyaXB0VmFsdWUgZGF0
ZSA9IGVuZy5uZXdEYXRlKGR0KTsKKyAgICAgICAgLy8gdG9EYXRlVGltZSgpIHJlc3VsdCBzaG91
bGQgYmUgaW4gbG9jYWwgdGltZQorICAgICAgICBRQ09NUEFSRShkYXRlLnRvRGF0ZVRpbWUoKSwg
ZHQudG9Mb2NhbFRpbWUoKSk7CisgICAgfQorICAgIC8vIERhdGUucGFyc2UoKSBzaG91bGQgcmV0
dXJuIE5hTiB3aGVuIGl0IGZhaWxzCisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgcmV0ID0g
ZW5nLmV2YWx1YXRlKCJEYXRlLnBhcnNlKCkiKTsKKyAgICAgICAgUVZFUklGWShyZXQuaXNOdW1i
ZXIoKSk7CisgICAgICAgIFFWRVJJRlkocUlzTmFOKHJldC50b051bWJlcigpKSk7CisgICAgfQor
ICAgIC8vIERhdGUucGFyc2UoKSBzaG91bGQgYmUgYWJsZSB0byBwYXJzZSB0aGUgb3V0cHV0IG9m
IERhdGUoKS50b1N0cmluZygpCisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgcmV0ID0gZW5n
LmV2YWx1YXRlKCJ2YXIgeCA9IG5ldyBEYXRlKCk7IHZhciBzID0geC50b1N0cmluZygpOyBzID09
IG5ldyBEYXRlKERhdGUucGFyc2UocykpLnRvU3RyaW5nKCkiKTsKKyAgICAgICAgUVZFUklGWShy
ZXQuaXNCb29sZWFuKCkpOworICAgICAgICBRQ09NUEFSRShyZXQudG9Cb29sZWFuKCksIHRydWUp
OworICAgIH0KK30KKwogUVRFU1RfTUFJTih0c3RfUVNjcmlwdEVuZ2luZSkKICNpbmNsdWRlICJ0
c3RfcXNjcmlwdGVuZ2luZS5tb2MiCi0tIAoxLjcuMi4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>