<?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>83095</bug_id>
          
          <creation_ts>2012-04-03 16:55:51 -0700</creation_ts>
          <short_desc>apple.com top navigation bar appears inside video during full screen exit animation</short_desc>
          <delta_ts>2012-04-20 15:34:30 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.apple.com/education/#video-textbooks</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>595034</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-03 16:55:51 -0700</bug_when>
    <thetext>When exiting full-screen playback of the video at &lt;http://www.apple.com/education/#video-textbooks&gt;, the shrinking video has the site’s top navigation bar superimposed on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595035</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-03 16:56:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/11106087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595835</commentid>
    <comment_count>2</comment_count>
      <attachid>135657</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-04 13:13:27 -0700</bug_when>
    <thetext>Created attachment 135657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595850</commentid>
    <comment_count>3</comment_count>
      <attachid>135661</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-04 13:23:21 -0700</bug_when>
    <thetext>Created attachment 135661
Patch

Rebaselined patch against ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595896</commentid>
    <comment_count>4</comment_count>
      <attachid>135669</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-04 13:52:34 -0700</bug_when>
    <thetext>Created attachment 135669
Patch

Rebaselined again; this time it&apos;ll stick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595939</commentid>
    <comment_count>5</comment_count>
      <attachid>135669</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-04 14:24:13 -0700</bug_when>
    <thetext>Comment on attachment 135669
Patch

Attachment 135669 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12329072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595959</commentid>
    <comment_count>6</comment_count>
      <attachid>135669</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 14:41:17 -0700</bug_when>
    <thetext>Comment on attachment 135669
Patch

Attachment 135669 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12328096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597788</commentid>
    <comment_count>7</comment_count>
      <attachid>136088</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-06 16:14:22 -0700</bug_when>
    <thetext>Created attachment 136088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597793</commentid>
    <comment_count>8</comment_count>
      <attachid>136092</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-06 16:22:32 -0700</bug_when>
    <thetext>Created attachment 136092
Patch

Added hasCustomFullScreenBehavior accessor to the Chromium version of LayoutTestController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597857</commentid>
    <comment_count>9</comment_count>
      <attachid>136092</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-04-06 17:48:16 -0700</bug_when>
    <thetext>Comment on attachment 136092
Patch

Attachment 136092 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12360155</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597876</commentid>
    <comment_count>10</comment_count>
      <attachid>136113</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-06 18:13:34 -0700</bug_when>
    <thetext>Created attachment 136113
Patch

Fix the GTK build by re-exporting the necessary symbols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597904</commentid>
    <comment_count>11</comment_count>
      <attachid>136113</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-04-06 19:14:24 -0700</bug_when>
    <thetext>Comment on attachment 136113
Patch

Attachment 136113 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12363183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597926</commentid>
    <comment_count>12</comment_count>
      <attachid>136113</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-06 22:47:48 -0700</bug_when>
    <thetext>Comment on attachment 136113
Patch

Attachment 136113 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12363263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598358</commentid>
    <comment_count>13</comment_count>
      <attachid>136245</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-09 09:57:09 -0700</bug_when>
    <thetext>Created attachment 136245
Patch

Fixed up the GTK and Chromium port parts of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605646</commentid>
    <comment_count>14</comment_count>
      <attachid>136245</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-04-19 09:58:01 -0700</bug_when>
    <thetext>Comment on attachment 136245
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        * dom/Document.cpp:
&gt; +        (WebCore::Document::webkitWillExitFullScreenForElement):
&gt; +        (WebCore::Document::webkitDidExitFullScreenForElement):
&gt; +
&gt; +        To facilitate writing reproducible LayoutTests, expose webkitWill/Did/Enter/ExitFullScreen
&gt; +        from the Internals object, so scripts can call them explicitly:
&gt; +        * testing/Internals.cpp:
&gt; +        (WebCore::Internals::webkitWillEnterFullScreenForElement):
&gt; +        (WebCore::Internals::webkitDidEnterFullScreenForElement):
&gt; +        (WebCore::Internals::webkitWillExitFullScreenForElement):
&gt; +        (WebCore::Internals::webkitDidExitFullScreenForElement):

Nit: having comments about what changed in each function would have made this much easier for someone that doesn&apos;t know so much about fullscreen (me) review this.

&gt; Source/WebCore/dom/Document.cpp:-5448
&gt; -    if (!attached() || inPageCache())
&gt; -        return;

Nit: please add a comment about why this is no longer necessary to the ChangLog.

&gt; Source/WebCore/dom/Document.cpp:-5457
&gt; -    if (!attached() || inPageCache())

Ditto.

&gt; LayoutTests/fullscreen/full-screen-exit-animation-stacking-context.html:7
&gt; +            function init() {

Nit: Function opening brace on its own line please. Here and throughout the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606967</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-20 15:34:30 -0700</bug_when>
    <thetext>Committed r114790: &lt;http://trac.webkit.org/changeset/114790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135657</attachid>
            <date>2012-04-04 13:13:27 -0700</date>
            <delta_ts>2012-04-04 13:23:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120404131326.patch</filename>
            <type>text/plain</type>
            <size>23120</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkyMWU5ZGYwMzM1N2E3
MWE1ZjVjN2U2ODY4MjMyYTExNzMzNzU1Yi4uZGNkODk2ZGM2M2QxM2VjNmUwMjVjOWY2ZjJlZWJh
MGNiZjcxODA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFnZSB2aXNpYmxlIGR1
cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5
ZDEwMDkwZDA5NmUzYzA5MzBkMzA4NWI4ZTUxMjE5YTgyYzkyY2VmLi4wZjMxYWU0ODVmMjIxY2Zk
OGFiOGZhYmRiNGNhNTY5YzkyODIzMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU0
MTgsMTYgKzU0MTgsMTkgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KikKICAgICBpZiAoIWF0dGFjaGVkKCkgfHwgaW5QYWdlQ2FjaGUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+c2V0Q29udGFp
bnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFs
c2UpOwotICAgIAogICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPndpbGxTdG9wQmVpbmdGdWxsc2Ny
ZWVuRWxlbWVudCgpOwogfQogCiB2b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCopCiB7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5FbGVtZW50KQor
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoIWF0dGFjaGVkKCkgfHwgaW5QYWdlQ2FjaGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+c2V0Q29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2Up
OworCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIAogICAg
IGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA3YjIxYjU0Mzg5MjkwMDQwMjA4M2QxYTZkODkxZTVmNjM5MjFhOTdlLi5kNmE5OWM3
OTYyMjczMzBlOWNlOTljM2U5OWI0Nzc0YWEyN2I0OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC05MzEsNCArOTMxLDMzIEBAIGJvb2wgSW50ZXJuYWxzOjpoYXNHcmFt
bWFyTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBsZW5ndGgsIEV4Y2Vw
CiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+c2VsZWN0aW9uU3RhcnRI
YXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGZyb20sIGxlbmd0aCk7CiB9CiAK
KyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIEludGVybmFsczo6d2Via2l0V2lsbEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvYywgRWxlbWVudCogZWxlbWVudCkK
K3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuOworICAgIGRvYy0+d2Via2l0V2lsbEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3
ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2MsIEVsZW1lbnQq
IGVsZW1lbnQpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICBkb2MtPndl
YmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50
ZXJuYWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2Ms
IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAg
ICBkb2MtPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisK
K3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqIGRvYywgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0
dXJuOworICAgIGRvYy0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQp
OworfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAzMzBkNWMw
OGMwNTBjMWUyY2NiYmRkNTkxZDU3ZDkxMzc5NWJlN2ZhLi4xMjJjMWU2NzBiMWM1MGIyMmRhZGYy
MTg4NzcxZjRlYTdkOGEyNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE2
Nyw2ICsxNjcsMTMgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZURvY3VtZW50
cygpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdm9p
ZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCosIEVsZW1lbnQq
KTsKKyAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQq
LCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnRNYXJrZXIqIG1hcmtl
ckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZGQ1NGZh
MmRlNmVmMGUxZmVkMjY3M2IzZDhhN2EyMjhmYzU4YjZhNi4uN2ExZjdkNmMyZGY5ZGM0NGJlZjFm
ODIwYzk0NmNmMWIwNTdmZjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtMTQxLDYgKzE0MSwxMyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBbQ29uZGl0aW9u
YWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgICAg
IFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1l
bnRzKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJCisgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7CisgICAgICAg
IHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1
bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBFbGVtZW50IGVsZW1l
bnQpOworICAgICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyNlbmRpZgogICAgIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1
ZDliNzViZTgzOTM3M2RjZTZlOWNhYjhhNGQxMDExOWRmYjQ4NmQyLi40ODJkMzUyY2FiYzA5OWFi
MDc0MDYyYmRjMGY5ZWMwODg1YmU2NmZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMDQtMDQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgYXBwbGUuY29tIHRvcCBuYXZpZ2F0
aW9uIGJhciBhcHBlYXJzIGluc2lkZSB2aWRlbyBkdXJpbmcgZnVsbCBzY3JlZW4gZXhpdCBhbmlt
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgz
MDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgbmV3IExheW91dFRlc3RDb250cm9sbGVyIGZ1bmN0aW9uLCBzZXRIYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3IoKSwgd2hpY2ggYWxsb3dzIHNjcmlwdHMgdG8KKyAgICAgICAgZGlzYWJsZSB0
aGUgc3RhbmRhcmQgZnVsbCBzY3JlZW4gYmVoYXZpb3IsIGFuZCByZXBsYWNlIGl0IHdpdGggZXhw
bGljaXQgY2FsbGJhY2tzIHRvIHRoZSByZWxldmFudAorICAgICAgICBEb2N1bWVudCBtZXRob2Rz
IGZyb20gd2l0aGluIHRoZSBzY3JpcHQuICBUaGlzIGFsbG93cyBzdWJ0bGUgdGltaW5nIGJ1Z3Mg
dG8gYmUgY29uc2lzdGVudGx5IHJlcHJvZHVjZWQKKyAgICAgICAgZnJvbSB3aXRoaW4gTGF5b3V0
VGVzdHMuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgbWV0aG9kcywgaGFzQ3VzdG9tRnVsbFNjcmVl
bkJlaGF2aW9yKCkgYW5kIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNl
dEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKFdU
Ujo6TGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisK
KyAgICAgICAgUXVlcnkgdGhlIG5ldyBtZXRob2RzIGJlZm9yZSBjYWxsaW5nIHdpbGwvZGlkL0Vu
dGVyL0V4aXRGdWxsU2NyZWVuOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjplbnRlckZ1bGxTY3JlZW5Ob3cp
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OmV4aXRGdWxsU2NyZWVuTm93KToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3
ZWJWaWV3OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6XSk6CisgICAgICAgICgt
W1VJRGVsZWdhdGUgd2ViVmlldzpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6XSk6
CisKIDIwMTItMDQtMDMgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBs
aW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRFJUIHN1cHBvcnQgZm9yIHNldEludGVy
YWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZTUxZDBlZTc0ZTAyYTY4NzI5YTc2NjI3ZGZjMzIy
ZmFkMzFjYWM4OS4uYjdjYTM2ZDQ1ZmE2MTNmMGViODk1YWM2ZGZjMWEwMjVlMDAyN2FlNCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtOTIs
NiArOTIsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29u
c3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbgogICAgICwgbV9zaG91bGRQYWludEJy
b2tlbkltYWdlKHRydWUpCiAgICAgLCBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkKGZhbHNlKQogICAgICwgbV9hcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RzSWdub3JlZChmYWxzZSkKKyAgICAsIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9y
KGZhbHNlKSAKICAgICAsIG1fdGVzdFBhdGhPclVSTCh0ZXN0UGF0aE9yVVJMKQogICAgICwgbV9l
eHBlY3RlZFBpeGVsSGFzaChleHBlY3RlZFBpeGVsSGFzaCkKIHsKQEAgLTIyNDIsNiArMjI0Mywx
OCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRUZXh0RGlyZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bgogICAgIH0KIAogICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRIYXND
dXN0b21GdWxsU2NyZWVuQmVoYXZpb3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkgeworICAgICAgICBib29sIGhhc0N1
c3RvbUJlaGF2aW9yID0gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pOwor
ICAgICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExh
eW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAg
ICAgICAgY29udHJvbGxlci0+c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGhhc0N1c3Rv
bUJlaGF2aW9yKTsKKyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKIHN0YXRpYyB2b2lkIGxheW91dFRlc3RDb250cm9sbGVyT2JqZWN0RmluYWxp
emUoSlNPYmplY3RSZWYgb2JqZWN0KQpAQCAtMjQ2MSw2ICsyNDc0LDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsg
ImZvY3VzV2ViVmlldyIsIGZvY3VzV2ViVmlld0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldEJhY2tpbmdTY2FsZUZhY3RvciIsIHNldEJhY2tpbmdTY2FsZUZhY3RvckNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInByZWNpc2VUaW1lIiwgcHJlY2lzZVRpbWVDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAorICAgICAgICB7ICJzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IiLCBzZXRIYXND
dXN0b21GdWxsU2NyZWVuQmVoYXZpb3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAs
IDAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IGUyZmFlN2VjODJiN2E2ZjE3MTE1YzBiOWM4NTdkNjdiMWNlNjVlNDYuLmY1ZWEy
NDJmNWMwYTE0YWU4ZjIwNTBlZGFkODA0ZWU4YzU1MDkyMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzYxLDYgKzM2MSwxMCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYpOwogCisgICAgLy8gQ3Vz
dG9tIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVl
bkJlaGF2aW9yKGJvb2wgdmFsdWUpIHsgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IgPSB2YWx1
ZTsgfQorICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1
cm4gbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KKwogcHJpdmF0ZToKICAgICBMYXlvdXRU
ZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3Rk
OjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApAQCAtNDEzLDYgKzQxNyw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2U7CiAgICAgYm9vbCBtX3Nob3Vs
ZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkOwogICAgIGJvb2wgbV9hcmVEZXNr
dG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZDsKKyAgICBib29sIG1fY3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yOwogCiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlv
blVzZXJuYW1lOwogICAgIHN0ZDo6c3RyaW5nIG1fYXV0aGVudGljYXRpb25QYXNzd29yZDsgCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggYjNl
OWRkYTAxNjQ5MDBkMGRlYTg5ZTFjNzdhYzc4ZDUzMDlhMWRhYy4uNmU0NTMyMDA3MDE3ZGU1M2Q1
M2UwMjJkYjMxZGFiNjI5ZmZhMDM0OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMTY2MiwxMiArMTY2MiwxOCBAQCB2b2lkIFdlYlZpZXdI
b3N0OjpzZXRBZGRyZXNzQmFyVVJMKGNvbnN0IFdlYlVSTCYpCiAKIHZvaWQgV2ViVmlld0hvc3Q6
OmVudGVyRnVsbFNjcmVlbk5vdygpCiB7CisgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCkt
Pmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAgICByZXR1cm47CisKICAgICB3
ZWJWaWV3KCktPndpbGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB3ZWJWaWV3KCktPmRpZEVudGVy
RnVsbFNjcmVlbigpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbk5vdygp
CiB7CisgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcigpKQorICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3KCktPndpbGxFeGl0RnVs
bFNjcmVlbigpOwogICAgIHdlYlZpZXcoKS0+ZGlkRXhpdEZ1bGxTY3JlZW4oKTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggZTg1NTc5MWRiM2Y3MWJiYWIzY2Zl
ZjIzODEwODE4M2U2YWI2ZTkxMC4uODQ3YTVmYjRlZWJhNjcxYjY0ZTJiOGNiYjU3M2UzMjA2Y2I0
NjU3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTI2MCw3ICsy
NjAsOCBAQCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwog
CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQ6KERPTUVsZW1lbnQqKWVsZW1lbnQgbGlzdGVuZXI6KE5TT2JqZWN0PFdlYktpdEZ1bGxT
Y3JlZW5MaXN0ZW5lcj4qKWxpc3RlbmVyCiB7Ci0gICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBz
ZWxlY3RvcihlbnRlckZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVy
IGFmdGVyRGVsYXk6MF07CisgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNl
bGVjdG9yKGVudGVyRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIg
YWZ0ZXJEZWxheTowXTsKIH0KIAogLSAodm9pZClleGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjoo
TlNPYmplY3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKQEAgLTI3MSw3ICsy
NzIsOCBAQCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwog
CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudDooRE9NRWxlbWVudCopZWxlbWVudCBsaXN0ZW5lcjooTlNPYmplY3Q8V2ViS2l0RnVsbFNj
cmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKIHsKLSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNl
bGVjdG9yKGV4aXRGdWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBh
ZnRlckRlbGF5OjBdOworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5oYXNDdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3IoKSkKKyAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxl
Y3RvcihleGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0
ZXJEZWxheTowXTsKIH0KIAogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRQ
cmVzc01pc3NpbmdQbHVnaW5CdXR0b246KERPTUVsZW1lbnQgKillbGVtZW50CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRl
c3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IDlmZWIxMDAyNWY4NDNkMDFh
YjRkMjkyOTUwYjNmOTM3NzQwNTM0ZGYuLmI2NWU0MTBlZTAxNDkxNDQ5YjhmM2QzOTNlOGYyZWMy
MDI0OGE2MWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRs
CkBAIC0xNDAsNiArMTQwLDkgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgb3ZlcnJpZGVQ
cmVmZXJlbmNlKGluIERPTVN0cmluZyBwcmVmZXJlbmNlLCBpbiBib29sZWFuIHZhbHVlKTsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtTmFtZTsKKworICAg
ICAgICAvLyBDb250cm9sIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgICAgICB2b2lkIHNldEhh
c0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihpbiBib29sZWFuIHZhbHVlKTsKICAgICB9OwogCiB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMzdiMjA2NDk3MDdkYTU5OTAxNTFlYTQwZjMy
ZjA1YjU3OGExMzQzYy4uNmIxZmEyY2EzMmFmNDQ3NzUwZDk1MzczY2VhYTMzOGZhMWM1NDA5YiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTIwOSwxNiArMTIwOSwyMiBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VS
ZWYgcGFnZVJlZiwgV0tCdQogewogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5
b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKICAg
ICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KClcbiIpOwotICAgIFdLQnVuZGxlUGFnZVdpbGxFbnRl
ckZ1bGxTY3JlZW4ocGFnZVJlZik7Ci0gICAgV0tCdW5kbGVQYWdlRGlkRW50ZXJGdWxsU2NyZWVu
KHBhZ2VSZWYpOworCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVz
dENvbnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpIHsKKyAgICAgICAg
V0tCdW5kbGVQYWdlV2lsbEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICAgICAgV0tCdW5k
bGVQYWdlRGlkRW50ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgIH0KIH0KIAogdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYg
cGFnZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnRSZWYpCiB7CiAgICAgaWYgKElu
amVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1w
RnVsbFNjcmVlbkNhbGxiYWNrcygpKQogICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
c3RyaW5nQnVpbGRlcigpLT5hcHBlbmQoImV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpXG4iKTsK
LSAgICBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7Ci0gICAgV0tCdW5k
bGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7CisKKyAgICBpZiAoIUluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5oYXNDdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3IoKSkgeworICAgICAgICBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFn
ZVJlZik7CisgICAgICAgIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOwor
ICAgIH0KIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmJlZ2FuRW50ZXJGdWxsU2NyZWVu
KFdLQnVuZGxlUGFnZVJlZiwgV0tSZWN0LCBXS1JlY3QpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRl
eCBhMzk0N2JkYzRlNjBjYmQyZjEyNTlkNmQ0ZGU4MzJkMWIyN2U5ZmU0Li5iNTM5MmZkZTA2Y2Fk
NTk1NzYzYjI2YTQ3ZGY0Y2NmMzI1YmFkYTJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTEy
MSw2ICsxMjEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAv
LyBGdWxsIFNjcmVlbiBjbGllbnQKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4o
V0tCdW5kbGVQYWdlUmVmLCBXS0Z1bGxTY3JlZW5LZXlib2FyZFJlcXVlc3RUeXBlKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoV0tCdW5kbGVQYWdlUmVm
LCBib29sIHZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnQpOwogICAgIHN0
YXRpYyB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYsIFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50KTsKICAgICBzdGF0aWMgdm9pZCBiZWdhbkVudGVyRnVs
bFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5h
bEZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggY2VjNDM0NGRkMmNmMzQ1
NmY3YjUyZDc3Yjk3ZDMwYzdlZDI1MDBlYy4uYWZlZmY3M2MzYmM1MzI4OTIwN2U1MmU5MzFlYWJi
OTFmNTBkYmM5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw2ICsxMDgs
NyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoKQogICAgICwg
bV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3BvbGljeURlbGVnYXRlUGVy
bWlzc2l2ZShmYWxzZSkKICAgICAsIG1fZ2xvYmFsRmxhZyhmYWxzZSkKKyAgICAsIG1fY3VzdG9t
RnVsbFNjcmVlbkJlaGF2aW9yKGZhbHNlKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDNmOWJkMmNkZGZiZGFhYTk5NTU3ZDJlNWRm
OTM5MGQ5NDFiMmJmZTkuLmMyNWY2ZGFlMDRkYTQ2OWI3NTU1MjIxZDkzYzJkODJkM2I5NDdjMWMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE5Niw2ICsxOTYsMTAgQEAgcHVibGljOgog
CiAgICAgdm9pZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZSwgYm9v
bCB2YWx1ZSk7CiAKKyAgICAvLyBDdXN0b20gZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgdm9p
ZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1
bGxTY3JlZW5CZWhhdmlvciA9IHZhbHVlOyB9CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQor
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOwogICAgIAogcHJp
dmF0ZToKQEAgLTIyOCw2ICsyMzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxl
Z2F0ZVBlcm1pc3NpdmU7CiAgICAgCiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CisgICAgYm9vbCBt
X2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAogICAgIFBsYXRmb3JtVGltZXJSZWYgbV93YWl0
VG9EdW1wV2F0Y2hkb2dUaW1lcjsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGM4MGY2NWU4Zjg5ZWZhOTllZGZmM2Ey
YTMzYmMxNDM3YjAyMDg4My4uMmU2ZTM1ZDY5MTdhYzMwMjdmYTk4ZjNhZGU1NzlhNWQ0YzAwN2Vl
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2aWdhdGlvbiBiYXIgYXBw
ZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQgYW5pbWF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzA5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9m
dWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1z
dGFja2luZy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFn
ZSB2aXNpYmxlIGR1cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNv
bnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1l
eGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZjNhNTNmM2FlMjRlMTA2NTMwMWNlMjRjMGJmNTc5ZTk1YzZkZTVhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFj
a2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhh
dCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2Nr
cyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gQWZ0ZXIgZW50ZXJpbmcg
ZnVsbCBzY3JlZW4gbW9kZSwgb25seSBhIGJsYWNrIGJveCBzaG91bGQgYmUgdmlzaWJsZS4gQ2xp
Y2sgZ28gZnVsbCBzY3JlZW4gdG8gcnVuIHRoZSB0ZXN0LgorRU5EIE9GIFRFU1QKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1z
dGFja2luZy1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGI1YmJh
YmM5M2EyMzJjMmJjNTZmMDllZWQ4YjZhYmZkMDIwMDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1j
b250ZXh0Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBydW5QaXhlbFRlc3Rz
ID0gdHJ1ZTsKKworICAgICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgICAg
ICAvLyBCYWlsIG91dCBlYXJseSBpZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIG5vdCBlbmFibGVk
IG9yIGlzIG1pc3Npbmc6CisgICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQucHJvdG90eXBlLndl
YmtpdFJlcXVlc3RGdWxsU2NyZWVuID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAg
ICBsb2dSZXN1bHQoZmFsc2UsICJFbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNj
cmVlbiA9PSB1bmRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudEFu
ZEVuZChkb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnKTsKKyAgICAgICAgICAgICAg
ICAgICAgcnVuV2l0aEtleURvd24oZ29GdWxsU2NyZWVuKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvRnVsbFNjcmVlbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IodHJ1ZSk7CisgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgdmlkZW8ud2Via2l0UmVxdWVzdEZ1
bGxTY3JlZW4oKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgICAgICAgICBpbnRlcm5hbHMud2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndl
YmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAg
ICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0
eWxlPgorICAgICAgICAgICAgI29uZSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4Owor
ICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICAgICAgICAgIHRvcDogNTBweDsKKyAgICAgICAgICAgICAgICBs
ZWZ0OiA1MHB4OworICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7CisgICAgICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI29uZSwg
I3R3byB7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41OworICAgICAgICAgICAgICAgIC13
ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LW1h
c2s6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIGFscGhhIDAlLCB3aGl0ZSAxMDAlKTsK
KyAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY29udHJhc3QoMTAwJSk7CisgICAgICAg
ICAgICAgICAgY2xpcDpyZWN0KDBweCwxMDBweCwxMDBweCwwcHgpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgI3plcm8geworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
KyAgICAgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
I3ZpZGVvIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkg
b25sb2FkPSJpbml0KCkiPgorICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2Ny
ZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxpbmcg
aW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gIAorICAgICAgICAgICAgIEFmdGVyIGVudGVy
aW5nIGZ1bGwgc2NyZWVuIG1vZGUsIG9ubHkgYSBibGFjayBib3ggc2hvdWxkIGJlIHZpc2libGUu
CisgICAgICAgICAgICAgQ2xpY2sgPGJ1dHRvbiBvbmNsaWNrPSJnb0Z1bGxTY3JlZW4oKSI+Z28g
ZnVsbCBzY3JlZW48L2J1dHRvbj4gdG8gcnVuIHRoZSB0ZXN0LjwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJvbmUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ6ZXJvIj4KKyAgICAgICAgICAgIDx2
aWRlbyBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgICAgIDwvZGl2PgorICAgIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3Rh
Y2tpbmctY29udGV4dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjMTcwOTJiZTY0OGNhZmNi
YTIxNjcxZDFkMWE0ZDZhN2Q3N2NhNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTc0Ngp6Y21l
QVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VG
eGVSN1QKelhAPHMwbUtOc2JtWl8lWjF9U09nIyVaYk0kcmhHck52MzhkTWg1cFpLSSQ/c3M0bnF6
YVNXK29lMHpOKD8qUmlJCno3UT5eei1fS2R7Zm9vUzZUYTNOS2lrPDBjX3hATTJhMG48a0clenFT
MFR+aEU3TyVQNGtPVU04U1hueFA7cW5SJgp6M2M+O2tsM051KWlsTCRgOW56IW4oQ2B9I3BWOU8m
bm08TyVodGN3SncwOzxeQTBlJVooZX1ZO2B2fSYpOUJtKHMKend2Ul5KTjJCZWQoZX19M2ApSVUl
R309QV9qWEk2QzRAY1hGcXdQYjtgMEhyPGMoaT55K0NDbV9BQ0k8PU44ODd2Cno/Yz5xKkBvNCph
dzB8KCNLTnteSGpyTmE1YCR2IV5IPjNUZDtucUwwK2ZjfjVldHE0IUdUPFVGMjJXUSVtdnY0RgpG
TyNwdS1PVDdSOQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135661</attachid>
            <date>2012-04-04 13:23:21 -0700</date>
            <delta_ts>2012-04-04 13:52:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120404132320.patch</filename>
            <type>text/plain</type>
            <size>23108</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVmYTk2ZWFmNzA5Yzk4
ZmZhNWQyZTI3ZWI4MWQ4NmRmMzMzMWVhNy4uMDNmNzFiMmM4NDZlMzQ4Y2VkYzE2ZWU4NzI5Njg4
ODIxN2Y5N2Q4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFnZSB2aXNpYmxlIGR1
cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3
YTczYjgxZjZhOTBiMzIwN2E3YjNiM2MwN2EwNzVlZjU0NGE3YzQ0Li40Y2RjYWJjMzVmZjgxYmI3
ZWJiMmJlZWRmM2M5NWNhMjdiYzllNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU0
MzQsMTYgKzU0MzQsMTkgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KikKICAgICBpZiAoIWF0dGFjaGVkKCkgfHwgaW5QYWdlQ2FjaGUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+c2V0Q29udGFp
bnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFs
c2UpOwotICAgIAogICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPndpbGxTdG9wQmVpbmdGdWxsc2Ny
ZWVuRWxlbWVudCgpOwogfQogCiB2b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCopCiB7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5FbGVtZW50KQor
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoIWF0dGFjaGVkKCkgfHwgaW5QYWdlQ2FjaGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+c2V0Q29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2Up
OworCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIAogICAg
IGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA3YjIxYjU0Mzg5MjkwMDQwMjA4M2QxYTZkODkxZTVmNjM5MjFhOTdlLi5kNmE5OWM3
OTYyMjczMzBlOWNlOTljM2U5OWI0Nzc0YWEyN2I0OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC05MzEsNCArOTMxLDMzIEBAIGJvb2wgSW50ZXJuYWxzOjpoYXNHcmFt
bWFyTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBsZW5ndGgsIEV4Y2Vw
CiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+c2VsZWN0aW9uU3RhcnRI
YXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGZyb20sIGxlbmd0aCk7CiB9CiAK
KyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIEludGVybmFsczo6d2Via2l0V2lsbEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvYywgRWxlbWVudCogZWxlbWVudCkK
K3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuOworICAgIGRvYy0+d2Via2l0V2lsbEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3
ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2MsIEVsZW1lbnQq
IGVsZW1lbnQpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICBkb2MtPndl
YmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50
ZXJuYWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2Ms
IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAg
ICBkb2MtPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisK
K3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqIGRvYywgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0
dXJuOworICAgIGRvYy0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQp
OworfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAzMzBkNWMw
OGMwNTBjMWUyY2NiYmRkNTkxZDU3ZDkxMzc5NWJlN2ZhLi4xMjJjMWU2NzBiMWM1MGIyMmRhZGYy
MTg4NzcxZjRlYTdkOGEyNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE2
Nyw2ICsxNjcsMTMgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZURvY3VtZW50
cygpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdm9p
ZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCosIEVsZW1lbnQq
KTsKKyAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQq
LCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnRNYXJrZXIqIG1hcmtl
ckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZGQ1NGZh
MmRlNmVmMGUxZmVkMjY3M2IzZDhhN2EyMjhmYzU4YjZhNi4uN2ExZjdkNmMyZGY5ZGM0NGJlZjFm
ODIwYzk0NmNmMWIwNTdmZjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtMTQxLDYgKzE0MSwxMyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBbQ29uZGl0aW9u
YWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgICAg
IFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1l
bnRzKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJCisgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7CisgICAgICAg
IHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1
bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBFbGVtZW50IGVsZW1l
bnQpOworICAgICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyNlbmRpZgogICAgIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2
NDAzYmU3ZThlOWM2YjM0YmQwMjhkZWJlYjQ2NWY4YmQzM2EwZTdkLi44NGYwZGM2N2Q3ODJmNDI5
YTdhMmZiMzM1MDJhNmVkNGE5ODk3NWQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMDQtMDQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgYXBwbGUuY29tIHRvcCBuYXZpZ2F0
aW9uIGJhciBhcHBlYXJzIGluc2lkZSB2aWRlbyBkdXJpbmcgZnVsbCBzY3JlZW4gZXhpdCBhbmlt
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgz
MDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgbmV3IExheW91dFRlc3RDb250cm9sbGVyIGZ1bmN0aW9uLCBzZXRIYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3IoKSwgd2hpY2ggYWxsb3dzIHNjcmlwdHMgdG8KKyAgICAgICAgZGlzYWJsZSB0
aGUgc3RhbmRhcmQgZnVsbCBzY3JlZW4gYmVoYXZpb3IsIGFuZCByZXBsYWNlIGl0IHdpdGggZXhw
bGljaXQgY2FsbGJhY2tzIHRvIHRoZSByZWxldmFudAorICAgICAgICBEb2N1bWVudCBtZXRob2Rz
IGZyb20gd2l0aGluIHRoZSBzY3JpcHQuICBUaGlzIGFsbG93cyBzdWJ0bGUgdGltaW5nIGJ1Z3Mg
dG8gYmUgY29uc2lzdGVudGx5IHJlcHJvZHVjZWQKKyAgICAgICAgZnJvbSB3aXRoaW4gTGF5b3V0
VGVzdHMuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgbWV0aG9kcywgaGFzQ3VzdG9tRnVsbFNjcmVl
bkJlaGF2aW9yKCkgYW5kIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNl
dEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKFdU
Ujo6TGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisK
KyAgICAgICAgUXVlcnkgdGhlIG5ldyBtZXRob2RzIGJlZm9yZSBjYWxsaW5nIHdpbGwvZGlkL0Vu
dGVyL0V4aXRGdWxsU2NyZWVuOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjplbnRlckZ1bGxTY3JlZW5Ob3cp
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OmV4aXRGdWxsU2NyZWVuTm93KToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3
ZWJWaWV3OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6XSk6CisgICAgICAgICgt
W1VJRGVsZWdhdGUgd2ViVmlldzpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6XSk6
CisKIDIwMTItMDQtMDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIENhdGNoIHRoZSAicmVzb3VyY2UscmVxdWVzdCx3
aWxsc2VuZCIgc2lnbmFsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZTUxZDBlZTc0ZTAyYTY4NzI5YTc2NjI3ZGZjMzIyZmFkMzFjYWM4OS4u
YjdjYTM2ZDQ1ZmE2MTNmMGViODk1YWM2ZGZjMWEwMjVlMDAyN2FlNCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtOTIsNiArOTIsNyBAQCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3RQYXRoT3JVUkwsIGNvbgogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRy
dWUpCiAgICAgLCBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKGZh
bHNlKQogICAgICwgbV9hcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdu
b3JlZChmYWxzZSkKKyAgICAsIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGZhbHNlKSAKICAg
ICAsIG1fdGVzdFBhdGhPclVSTCh0ZXN0UGF0aE9yVVJMKQogICAgICwgbV9leHBlY3RlZFBpeGVs
SGFzaChleHBlY3RlZFBpeGVsSGFzaCkKIHsKQEAgLTIyNDIsNiArMjI0MywxOCBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRUZXh0RGlyZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bgogICAgIH0KIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKKworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRIYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAg
aWYgKGFyZ3VtZW50Q291bnQgPT0gMSkgeworICAgICAgICBib29sIGhhc0N1c3RvbUJlaGF2aW9y
ID0gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pOworICAgICAgICBMYXlv
dXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250
cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICAgICAgY29udHJv
bGxlci0+c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGhhc0N1c3RvbUJlaGF2aW9yKTsK
KyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAK
IHN0YXRpYyB2b2lkIGxheW91dFRlc3RDb250cm9sbGVyT2JqZWN0RmluYWxpemUoSlNPYmplY3RS
ZWYgb2JqZWN0KQpAQCAtMjQ2MSw2ICsyNDc0LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgImZvY3VzV2ViVmll
dyIsIGZvY3VzV2ViVmlld0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEJhY2tpbmdT
Y2FsZUZhY3RvciIsIHNldEJhY2tpbmdTY2FsZUZhY3RvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInByZWNpc2VUaW1lIiwgcHJlY2lzZVRpbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAg
ICB7ICJzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IiLCBzZXRIYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQogICAgIH07
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGUy
ZmFlN2VjODJiN2E2ZjE3MTE1YzBiOWM4NTdkNjdiMWNlNjVlNDYuLmY1ZWEyNDJmNWMwYTE0YWU4
ZjIwNTBlZGFkODA0ZWU4YzU1MDkyMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtMzYxLDYgKzM2MSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYpOwogCisgICAgLy8gQ3VzdG9tIGZ1bGwgc2Ny
ZWVuIGJlaGF2aW9yLgorICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGJv
b2wgdmFsdWUpIHsgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IgPSB2YWx1ZTsgfQorICAgIGJv
b2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3I7IH0KKwogcHJpdmF0ZToKICAgICBMYXlvdXRUZXN0Q29udHJvbGxl
cihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4
cGVjdGVkUGl4ZWxIYXNoKTsKIApAQCAtNDEzLDYgKzQxNyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0YXlPblBhZ2VB
ZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkOwogICAgIGJvb2wgbV9hcmVEZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZDsKKyAgICBib29sIG1fY3VzdG9tRnVsbFNjcmVl
bkJlaGF2aW9yOwogCiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlvblVzZXJuYW1lOwog
ICAgIHN0ZDo6c3RyaW5nIG1fYXV0aGVudGljYXRpb25QYXNzd29yZDsgCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggYjNlOWRkYTAxNjQ5MDBk
MGRlYTg5ZTFjNzdhYzc4ZDUzMDlhMWRhYy4uNmU0NTMyMDA3MDE3ZGU1M2Q1M2UwMjJkYjMxZGFi
NjI5ZmZhMDM0OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmNwcApAQCAtMTY2MiwxMiArMTY2MiwxOCBAQCB2b2lkIFdlYlZpZXdIb3N0OjpzZXRBZGRy
ZXNzQmFyVVJMKGNvbnN0IFdlYlVSTCYpCiAKIHZvaWQgV2ViVmlld0hvc3Q6OmVudGVyRnVsbFNj
cmVlbk5vdygpCiB7CisgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1
bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3KCktPndp
bGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB3ZWJWaWV3KCktPmRpZEVudGVyRnVsbFNjcmVlbigp
OwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbk5vdygpCiB7CisgICAgaWYg
KGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKQor
ICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3KCktPndpbGxFeGl0RnVsbFNjcmVlbigpOwog
ICAgIHdlYlZpZXcoKS0+ZGlkRXhpdEZ1bGxTY3JlZW4oKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1VJRGVsZWdhdGUubW0KaW5kZXggZTg1NTc5MWRiM2Y3MWJiYWIzY2ZlZjIzODEwODE4M2U2
YWI2ZTkxMC4uODQ3YTVmYjRlZWJhNjcxYjY0ZTJiOGNiYjU3M2UzMjA2Y2I0NjU3ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTI2MCw3ICsyNjAsOCBAQCBEdW1w
UmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogCiAtICh2b2lkKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KERPTUVs
ZW1lbnQqKWVsZW1lbnQgbGlzdGVuZXI6KE5TT2JqZWN0PFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5l
cj4qKWxpc3RlbmVyCiB7Ci0gICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihlbnRl
ckZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVyIGFmdGVyRGVsYXk6
MF07CisgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmhhc0N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcigpKQorICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGVudGVy
RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTow
XTsKIH0KIAogLSAodm9pZClleGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjooTlNPYmplY3Q8V2Vi
S2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKQEAgLTI3MSw3ICsyNzIsOCBAQCBEdW1w
UmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogCiAtICh2b2lkKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDooRE9NRWxl
bWVudCopZWxlbWVudCBsaXN0ZW5lcjooTlNPYmplY3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
PiopbGlzdGVuZXIKIHsKLSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGV4aXRG
dWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRlckRlbGF5OjBd
OworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5oYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoKSkKKyAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihleGl0RnVs
bFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTowXTsK
IH0KIAogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRQcmVzc01pc3NpbmdQ
bHVnaW5CdXR0b246KERPTUVsZW1lbnQgKillbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVy
LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IDlmZWIxMDAyNWY4NDNkMDFhYjRkMjkyOTUwYjNm
OTM3NzQwNTM0ZGYuLmI2NWU0MTBlZTAxNDkxNDQ5YjhmM2QzOTNlOGYyZWMyMDI0OGE2MWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCkBAIC0xNDAsNiAr
MTQwLDkgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJlbmNlKGlu
IERPTVN0cmluZyBwcmVmZXJlbmNlLCBpbiBib29sZWFuIHZhbHVlKTsKIAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtTmFtZTsKKworICAgICAgICAvLyBDb250
cm9sIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgICAgICB2b2lkIHNldEhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcihpbiBib29sZWFuIHZhbHVlKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAKaW5kZXggMzdiMjA2NDk3MDdkYTU5OTAxNTFlYTQwZjMyZjA1YjU3OGExMzQz
Yy4uNmIxZmEyY2EzMmFmNDQ3NzUwZDk1MzczY2VhYTMzOGZhMWM1NDA5YiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcApAQCAtMTIwOSwxNiArMTIwOSwyMiBAQCB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwg
V0tCdQogewogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRy
b2xsZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKICAgICAgICAgSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJlbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KClcbiIpOwotICAgIFdLQnVuZGxlUGFnZVdpbGxFbnRlckZ1bGxTY3JlZW4o
cGFnZVJlZik7Ci0gICAgV0tCdW5kbGVQYWdlRGlkRW50ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOwor
CisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIo
KS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpIHsKKyAgICAgICAgV0tCdW5kbGVQYWdl
V2lsbEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICAgICAgV0tCdW5kbGVQYWdlRGlkRW50
ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgIH0KIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tC
dW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnRSZWYpCiB7CiAgICAgaWYgKEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNh
bGxiYWNrcygpKQogICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRl
cigpLT5hcHBlbmQoImV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpXG4iKTsKLSAgICBXS0J1bmRs
ZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7Ci0gICAgV0tCdW5kbGVQYWdlRGlkRXhp
dEZ1bGxTY3JlZW4ocGFnZVJlZik7CisKKyAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5oYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSkg
eworICAgICAgICBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7CisgICAg
ICAgIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgIH0KIH0KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiwgV0tSZWN0LCBXS1JlY3QpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCBhMzk0N2JkYzRl
NjBjYmQyZjEyNTlkNmQ0ZGU4MzJkMWIyN2U5ZmU0Li5iNTM5MmZkZTA2Y2FkNTk1NzYzYjI2YTQ3
ZGY0Y2NmMzI1YmFkYTJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTEyMSw2ICsxMjEsNyBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBGdWxsIFNjcmVl
biBjbGllbnQKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4oV0tCdW5kbGVQYWdl
UmVmLCBXS0Z1bGxTY3JlZW5LZXlib2FyZFJlcXVlc3RUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoV0tCdW5kbGVQYWdlUmVmLCBib29sIHZhbHVl
KTsKICAgICBzdGF0aWMgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVuZGxlUGFn
ZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnQpOwogICAgIHN0YXRpYyB2b2lkIGV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlTm9kZUhhbmRs
ZVJlZiBlbGVtZW50KTsKICAgICBzdGF0aWMgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihXS0J1
bmRsZVBhZ2VSZWYsIFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5hbEZyYW1lKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggY2VjNDM0NGRkMmNmMzQ1NmY3YjUyZDc3Yjk3
ZDMwYzdlZDI1MDBlYy4uYWZlZmY3M2MzYmM1MzI4OTIwN2U1MmU5MzFlYWJiOTFmNTBkYmM5NiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoKQogICAgICwgbV9wb2xpY3lEZWxl
Z2F0ZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZShmYWxz
ZSkKICAgICAsIG1fZ2xvYmFsRmxhZyhmYWxzZSkKKyAgICAsIG1fY3VzdG9tRnVsbFNjcmVlbkJl
aGF2aW9yKGZhbHNlKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCmluZGV4IDNmOWJkMmNkZGZiZGFhYTk5NTU3ZDJlNWRmOTM5MGQ5NDFiMmJm
ZTkuLmMyNWY2ZGFlMDRkYTQ2OWI3NTU1MjIxZDkzYzJkODJkM2I5NDdjMWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKQEAgLTE5Niw2ICsxOTYsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBv
dmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZSwgYm9vbCB2YWx1ZSk7CiAK
KyAgICAvLyBDdXN0b20gZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgdm9pZCBzZXRIYXNDdXN0
b21GdWxsU2NyZWVuQmVoYXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhh
dmlvciA9IHZhbHVlOyB9CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSBj
b25zdCB7IHJldHVybiBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQorCiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOwogICAgIAogcHJpdmF0ZToKQEAgLTIy
OCw2ICsyMzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3Np
dmU7CiAgICAgCiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CisgICAgYm9vbCBtX2N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcjsKIAogICAgIFBsYXRmb3JtVGltZXJSZWYgbV93YWl0VG9EdW1wV2F0Y2hk
b2dUaW1lcjsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGU4MDMyN2RjNGJhYzk0Mjg5ZDdiM2UxNGY4OTg2ZGZmMjky
ODQ3MC4uMjE1OTE5Y2Y3YjRkMGE2NGQwMDYwNDQyNDQ3NzcwMjgwMjVkMzlhNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTA0LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUg
dmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQgYW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzA5NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1l
eGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250
ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFnZSB2aXNpYmxlIGR1
cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlv
bi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNhNTNmM2FlMjRl
MTA2NTMwMWNlMjRjMGJmNTc5ZTk1YzZkZTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2Ny
ZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxpbmcg
aW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gQWZ0ZXIgZW50ZXJpbmcgZnVsbCBzY3JlZW4g
bW9kZSwgb25seSBhIGJsYWNrIGJveCBzaG91bGQgYmUgdmlzaWJsZS4gQ2xpY2sgZ28gZnVsbCBz
Y3JlZW4gdG8gcnVuIHRoZSB0ZXN0LgorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250
ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0
aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGI1YmJhYmM5M2EyMzJjMmJj
NTZmMDllZWQ4YjZhYmZkMDIwMDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0bWwK
QEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBydW5QaXhlbFRlc3RzID0gdHJ1ZTsKKwor
ICAgICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgICAgICAvLyBCYWlsIG91
dCBlYXJseSBpZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIG5vdCBlbmFibGVkIG9yIGlzIG1pc3Np
bmc6CisgICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQucHJvdG90eXBlLndlYmtpdFJlcXVlc3RG
dWxsU2NyZWVuID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBsb2dSZXN1bHQo
ZmFsc2UsICJFbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiA9PSB1bmRl
ZmluZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudEFuZEVuZChkb2N1bWVu
dCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuV2l0
aEtleURvd24oZ29GdWxsU2NyZWVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvRnVsbFNjcmVlbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Zp
ZGVvJyk7CisgICAgICAgICAgICAgICAgdmlkZW8ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsK
KyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAg
ICAgICBpbnRlcm5hbHMud2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1l
bnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdERpZEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQs
IHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAg
ICAgICAgI29uZSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgICAgICAgICAgICAgIHRvcDogNTBweDsKKyAgICAgICAgICAgICAgICBsZWZ0OiA1MHB4Owor
ICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmVkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI29uZSwgI3R3byB7CisgICAg
ICAgICAgICAgICAgb3BhY2l0eTogMC41OworICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNm
b3JtOiByb3RhdGUoMTgwKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2s6IC13ZWJraXQt
bGluZWFyLWdyYWRpZW50KGxlZnQsIGFscGhhIDAlLCB3aGl0ZSAxMDAlKTsKKyAgICAgICAgICAg
ICAgICAtd2Via2l0LWZpbHRlcjogY29udHJhc3QoMTAwJSk7CisgICAgICAgICAgICAgICAgY2xp
cDpyZWN0KDBweCwxMDBweCwxMDBweCwwcHgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
I3plcm8geworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAg
ICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI3ZpZGVvIHsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBw
eDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJpbml0
KCkiPgorICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQg
aW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIg
c3RhY2tpbmcgY29udGV4dC4gIAorICAgICAgICAgICAgIEFmdGVyIGVudGVyaW5nIGZ1bGwgc2Ny
ZWVuIG1vZGUsIG9ubHkgYSBibGFjayBib3ggc2hvdWxkIGJlIHZpc2libGUuCisgICAgICAgICAg
ICAgQ2xpY2sgPGJ1dHRvbiBvbmNsaWNrPSJnb0Z1bGxTY3JlZW4oKSI+Z28gZnVsbCBzY3JlZW48
L2J1dHRvbj4gdG8gcnVuIHRoZSB0ZXN0LjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJvbmUiPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJ6ZXJvIj4KKyAgICAgICAgICAgIDx2aWRlbyBpZD0idmlk
ZW8iPjwvdmlkZW8+CisgICAgICAgIDwvZGl2PgorICAgIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0
aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29udGV4
dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjMTcwOTJiZTY0OGNhZmNiYTIxNjcxZDFkMWE0
ZDZhN2Q3N2NhNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTc0Ngp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVSN1QKelhAPHMw
bUtOc2JtWl8lWjF9U09nIyVaYk0kcmhHck52MzhkTWg1cFpLSSQ/c3M0bnF6YVNXK29lMHpOKD8q
UmlJCno3UT5eei1fS2R7Zm9vUzZUYTNOS2lrPDBjX3hATTJhMG48a0clenFTMFR+aEU3TyVQNGtP
VU04U1hueFA7cW5SJgp6M2M+O2tsM051KWlsTCRgOW56IW4oQ2B9I3BWOU8mbm08TyVodGN3Sncw
OzxeQTBlJVooZX1ZO2B2fSYpOUJtKHMKend2Ul5KTjJCZWQoZX19M2ApSVUlR309QV9qWEk2QzRA
Y1hGcXdQYjtgMEhyPGMoaT55K0NDbV9BQ0k8PU44ODd2Cno/Yz5xKkBvNCphdzB8KCNLTnteSGpy
TmE1YCR2IV5IPjNUZDtucUwwK2ZjfjVldHE0IUdUPFVGMjJXUSVtdnY0RgpGTyNwdS1PVDdSOQoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135669</attachid>
            <date>2012-04-04 13:52:34 -0700</date>
            <delta_ts>2012-04-06 16:14:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120404135232.patch</filename>
            <type>text/plain</type>
            <size>23072</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI3MjhlYzBjM2E1NWRk
ZDk1MWI4YTVlMDA2M2Q2NWI5OTY1NGYyNy4uOWU5YzlkNzgyN2ZiMTU4MzI2MTIxYmQ3MzFkNWI4
ODNkMmRjNTBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wNCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBicmVhayBvbiBET00gbm9kZSBpbnNlcnRpb24gb25seSBvbmNl
IHBlciBvcGVyYXRpb24sIG5vdCBvbmNlIHBlciBpbnNlcnRlZCBub2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCBlZmJhMTM0YWM5ZDMyZDkyMGY4MDAxZTMxMGVkZmY4OTc2YjA3YjVjLi5k
MTljMDIzNjBmZjRhOTc1Njk0MzkyYzg5MDk1MmU0NjU3YzViMDYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTU0MjUsMTMgKzU0MjUsMTYgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2ls
bEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikKICAgICBpZiAoIW1fZnVsbFNjcmVl
bkVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNl
dENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFy
aWVzKGZhbHNlKTsKLSAgICAKICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT53aWxsU3RvcEJlaW5n
RnVsbHNjcmVlbkVsZW1lbnQoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKQogeworICAgIGlmICghbV9mdWxsU2NyZWVuRWxl
bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+c2V0Q29u
dGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMo
ZmFsc2UpOworCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAg
IAogICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA3YjIxYjU0Mzg5MjkwMDQwMjA4M2QxYTZkODkxZTVmNjM5MjFhOTdlLi5k
NmE5OWM3OTYyMjczMzBlOWNlOTljM2U5OWI0Nzc0YWEyN2I0OWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC05MzEsNCArOTMxLDMzIEBAIGJvb2wgSW50ZXJuYWxzOjpo
YXNHcmFtbWFyTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBsZW5ndGgs
IEV4Y2VwCiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+c2VsZWN0aW9u
U3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGZyb20sIGxlbmd0aCk7
CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIEludGVybmFsczo6d2Via2l0
V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvYywgRWxlbWVudCogZWxl
bWVudCkKK3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuOworICAgIGRvYy0+d2Via2l0
V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50ZXJu
YWxzOjp3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2MsIEVs
ZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICBk
b2MtPndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3Zv
aWQgSW50ZXJuYWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50
KiBkb2MsIEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVy
bjsKKyAgICBkb2MtPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7
Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
RG9jdW1lbnQqIGRvYywgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWRvYykKKyAgICAg
ICAgcmV0dXJuOworICAgIGRvYy0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVs
ZW1lbnQpOworfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAz
MzBkNWMwOGMwNTBjMWUyY2NiYmRkNTkxZDU3ZDkxMzc5NWJlN2ZhLi4xMjJjMWU2NzBiMWM1MGIy
MmRhZGYyMTg4NzcxZjRlYTdkOGEyNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTE2Nyw2ICsxNjcsMTMgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZURv
Y3VtZW50cygpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisg
ICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCosIEVs
ZW1lbnQqKTsKKyAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9j
dW1lbnQqLCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnRNYXJrZXIq
IG1hcmtlckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4
LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXgg
ZGQ1NGZhMmRlNmVmMGUxZmVkMjY3M2IzZDhhN2EyMjhmYzU4YjZhNi4uN2ExZjdkNmMyZGY5ZGM0
NGJlZjFmODIwYzk0NmNmMWIwNTdmZjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbApAQCAtMTQxLDYgKzE0MSwxMyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBbQ29u
ZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5vZGVzKCk7CiAg
ICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZl
RG9jdW1lbnRzKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJiYgRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJCisgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7Cisg
ICAgICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3ZWJraXRXaWxs
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBFbGVtZW50
IGVsZW1lbnQpOworICAgICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyNlbmRpZgogICAg
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA2NDAzYmU3ZThlOWM2YjM0YmQwMjhkZWJlYjQ2NWY4YmQzM2EwZTdkLi44NGYwZGM2N2Q3
ODJmNDI5YTdhMmZiMzM1MDJhNmVkNGE5ODk3NWQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMDQtMDQgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgYXBwbGUuY29tIHRvcCBu
YXZpZ2F0aW9uIGJhciBhcHBlYXJzIGluc2lkZSB2aWRlbyBkdXJpbmcgZnVsbCBzY3JlZW4gZXhp
dCBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgzMDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IExheW91dFRlc3RDb250cm9sbGVyIGZ1bmN0aW9uLCBzZXRIYXNDdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3IoKSwgd2hpY2ggYWxsb3dzIHNjcmlwdHMgdG8KKyAgICAgICAgZGlz
YWJsZSB0aGUgc3RhbmRhcmQgZnVsbCBzY3JlZW4gYmVoYXZpb3IsIGFuZCByZXBsYWNlIGl0IHdp
dGggZXhwbGljaXQgY2FsbGJhY2tzIHRvIHRoZSByZWxldmFudAorICAgICAgICBEb2N1bWVudCBt
ZXRob2RzIGZyb20gd2l0aGluIHRoZSBzY3JpcHQuICBUaGlzIGFsbG93cyBzdWJ0bGUgdGltaW5n
IGJ1Z3MgdG8gYmUgY29uc2lzdGVudGx5IHJlcHJvZHVjZWQKKyAgICAgICAgZnJvbSB3aXRoaW4g
TGF5b3V0VGVzdHMuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgbWV0aG9kcywgaGFzQ3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yKCkgYW5kIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrKToKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAg
ICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlv
cik6CisKKyAgICAgICAgUXVlcnkgdGhlIG5ldyBtZXRob2RzIGJlZm9yZSBjYWxsaW5nIHdpbGwv
ZGlkL0VudGVyL0V4aXRGdWxsU2NyZWVuOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjplbnRlckZ1bGxTY3Jl
ZW5Ob3cpOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmV4aXRGdWxsU2NyZWVuTm93KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxl
Z2F0ZSB3ZWJWaWV3OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6XSk6CisgICAg
ICAgICgtW1VJRGVsZWdhdGUgd2ViVmlldzpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVu
ZXI6XSk6CisKIDIwMTItMDQtMDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIENhdGNoIHRoZSAicmVzb3VyY2UscmVx
dWVzdCx3aWxsc2VuZCIgc2lnbmFsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggZTUxZDBlZTc0ZTAyYTY4NzI5YTc2NjI3ZGZjMzIyZmFkMzFj
YWM4OS4uYjdjYTM2ZDQ1ZmE2MTNmMGViODk1YWM2ZGZjMWEwMjVlMDAyN2FlNCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtOTIsNiArOTIs
NyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbgogICAgICwgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlKHRydWUpCiAgICAgLCBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5s
b2FkKGZhbHNlKQogICAgICwgbV9hcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzSWdub3JlZChmYWxzZSkKKyAgICAsIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGZhbHNl
KSAKICAgICAsIG1fdGVzdFBhdGhPclVSTCh0ZXN0UGF0aE9yVVJMKQogICAgICwgbV9leHBlY3Rl
ZFBpeGVsSGFzaChleHBlY3RlZFBpeGVsSGFzaCkKIHsKQEAgLTIyNDIsNiArMjI0MywxOCBAQCBz
dGF0aWMgSlNWYWx1ZVJlZiBzZXRUZXh0RGlyZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bgogICAgIH0KIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKKworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRIYXNDdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkgeworICAgICAgICBib29sIGhhc0N1c3RvbUJl
aGF2aW9yID0gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pOworICAgICAg
ICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRl
c3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICAgICAg
Y29udHJvbGxlci0+c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGhhc0N1c3RvbUJlaGF2
aW9yKTsKKyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKIHN0YXRpYyB2b2lkIGxheW91dFRlc3RDb250cm9sbGVyT2JqZWN0RmluYWxpemUoSlNP
YmplY3RSZWYgb2JqZWN0KQpAQCAtMjQ2MSw2ICsyNDc0LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiog
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgImZvY3Vz
V2ViVmlldyIsIGZvY3VzV2ViVmlld0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEJh
Y2tpbmdTY2FsZUZhY3RvciIsIHNldEJhY2tpbmdTY2FsZUZhY3RvckNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInByZWNpc2VUaW1lIiwgcHJlY2lzZVRpbWVDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAor
ICAgICAgICB7ICJzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IiLCBzZXRIYXNDdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQog
ICAgIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGUyZmFlN2VjODJiN2E2ZjE3MTE1YzBiOWM4NTdkNjdiMWNlNjVlNDYuLmY1ZWEyNDJmNWMw
YTE0YWU4ZjIwNTBlZGFkODA0ZWU4YzU1MDkyMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzYxLDYgKzM2MSwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYpOwogCisgICAgLy8gQ3VzdG9tIGZ1
bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2
aW9yKGJvb2wgdmFsdWUpIHsgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IgPSB2YWx1ZTsgfQor
ICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9j
dXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KKwogcHJpdmF0ZToKICAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJp
bmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApAQCAtNDEzLDYgKzQxNyw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0YXlP
blBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkOwogICAgIGJvb2wgbV9hcmVEZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZDsKKyAgICBib29sIG1fY3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yOwogCiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlvblVzZXJu
YW1lOwogICAgIHN0ZDo6c3RyaW5nIG1fYXV0aGVudGljYXRpb25QYXNzd29yZDsgCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggYjNlOWRkYTAx
NjQ5MDBkMGRlYTg5ZTFjNzdhYzc4ZDUzMDlhMWRhYy4uNmU0NTMyMDA3MDE3ZGU1M2Q1M2UwMjJk
YjMxZGFiNjI5ZmZhMDM0OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcApAQCAtMTY2MiwxMiArMTY2MiwxOCBAQCB2b2lkIFdlYlZpZXdIb3N0Ojpz
ZXRBZGRyZXNzQmFyVVJMKGNvbnN0IFdlYlVSTCYpCiAKIHZvaWQgV2ViVmlld0hvc3Q6OmVudGVy
RnVsbFNjcmVlbk5vdygpCiB7CisgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1
c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3
KCktPndpbGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB3ZWJWaWV3KCktPmRpZEVudGVyRnVsbFNj
cmVlbigpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbk5vdygpCiB7Cisg
ICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlv
cigpKQorICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3KCktPndpbGxFeGl0RnVsbFNjcmVl
bigpOwogICAgIHdlYlZpZXcoKS0+ZGlkRXhpdEZ1bGxTY3JlZW4oKTsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggZTg1NTc5MWRiM2Y3MWJiYWIzY2ZlZjIzODEw
ODE4M2U2YWI2ZTkxMC4uODQ3YTVmYjRlZWJhNjcxYjY0ZTJiOGNiYjU3M2UzMjA2Y2I0NjU3ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTI2MCw3ICsyNjAsOCBA
QCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogCiAtICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6
KERPTUVsZW1lbnQqKWVsZW1lbnQgbGlzdGVuZXI6KE5TT2JqZWN0PFdlYktpdEZ1bGxTY3JlZW5M
aXN0ZW5lcj4qKWxpc3RlbmVyCiB7Ci0gICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihlbnRlckZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVyIGFmdGVy
RGVsYXk6MF07CisgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcigpKQorICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KGVudGVyRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJE
ZWxheTowXTsKIH0KIAogLSAodm9pZClleGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjooTlNPYmpl
Y3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKQEAgLTI3MSw3ICsyNzIsOCBA
QCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogCiAtICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDoo
RE9NRWxlbWVudCopZWxlbWVudCBsaXN0ZW5lcjooTlNPYmplY3Q8V2ViS2l0RnVsbFNjcmVlbkxp
c3RlbmVyPiopbGlzdGVuZXIKIHsKLSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KGV4aXRGdWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRlckRl
bGF5OjBdOworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5oYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3IoKSkKKyAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rvcihl
eGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxh
eTowXTsKIH0KIAogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRQcmVzc01p
c3NpbmdQbHVnaW5CdXR0b246KERPTUVsZW1lbnQgKillbGVtZW50CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250
cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IDlmZWIxMDAyNWY4NDNkMDFhYjRkMjky
OTUwYjNmOTM3NzQwNTM0ZGYuLmI2NWU0MTBlZTAxNDkxNDQ5YjhmM2QzOTNlOGYyZWMyMDI0OGE2
MWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCkBAIC0x
NDAsNiArMTQwLDkgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJl
bmNlKGluIERPTVN0cmluZyBwcmVmZXJlbmNlLCBpbiBib29sZWFuIHZhbHVlKTsKIAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtTmFtZTsKKworICAgICAgICAv
LyBDb250cm9sIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgICAgICB2b2lkIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvcihpbiBib29sZWFuIHZhbHVlKTsKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMzdiMjA2NDk3MDdkYTU5OTAxNTFlYTQwZjMyZjA1YjU3
OGExMzQzYy4uNmIxZmEyY2EzMmFmNDQ3NzUwZDk1MzczY2VhYTMzOGZhMWM1NDA5YiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTIwOSwxNiArMTIwOSwyMiBAQCB2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZVJlZiwgV0tCdQogewogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVz
dENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKICAgICAgICAg
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJlbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KClcbiIpOwotICAgIFdLQnVuZGxlUGFnZVdpbGxFbnRlckZ1bGxT
Y3JlZW4ocGFnZVJlZik7Ci0gICAgV0tCdW5kbGVQYWdlRGlkRW50ZXJGdWxsU2NyZWVuKHBhZ2VS
ZWYpOworCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRy
b2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpIHsKKyAgICAgICAgV0tCdW5k
bGVQYWdlV2lsbEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICAgICAgV0tCdW5kbGVQYWdl
RGlkRW50ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgIH0KIH0KIAogdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJl
ZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnRSZWYpCiB7CiAgICAgaWYgKEluamVjdGVk
QnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1wRnVsbFNj
cmVlbkNhbGxiYWNrcygpKQogICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5n
QnVpbGRlcigpLT5hcHBlbmQoImV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpXG4iKTsKLSAgICBX
S0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7Ci0gICAgV0tCdW5kbGVQYWdl
RGlkRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7CisKKyAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpz
aGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5oYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZp
b3IoKSkgeworICAgICAgICBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4ocGFnZVJlZik7
CisgICAgICAgIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgIH0K
IH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKFdLQnVu
ZGxlUGFnZVJlZiwgV0tSZWN0LCBXS1JlY3QpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCBhMzk0
N2JkYzRlNjBjYmQyZjEyNTlkNmQ0ZGU4MzJkMWIyN2U5ZmU0Li5iNTM5MmZkZTA2Y2FkNTk1NzYz
YjI2YTQ3ZGY0Y2NmMzI1YmFkYTJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTEyMSw2ICsx
MjEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBGdWxs
IFNjcmVlbiBjbGllbnQKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4oV0tCdW5k
bGVQYWdlUmVmLCBXS0Z1bGxTY3JlZW5LZXlib2FyZFJlcXVlc3RUeXBlKTsKKyAgICBzdGF0aWMg
dm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoV0tCdW5kbGVQYWdlUmVmLCBib29s
IHZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVu
ZGxlUGFnZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnQpOwogICAgIHN0YXRpYyB2
b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlTm9k
ZUhhbmRsZVJlZiBlbGVtZW50KTsKICAgICBzdGF0aWMgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVl
bihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVjdCBpbml0aWFsRnJhbWUsIFdLUmVjdCBmaW5hbEZyYW1l
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggY2VjNDM0NGRkMmNmMzQ1NmY3YjUy
ZDc3Yjk3ZDMwYzdlZDI1MDBlYy4uYWZlZmY3M2MzYmM1MzI4OTIwN2U1MmU5MzFlYWJiOTFmNTBk
YmM5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoKQogICAgICwgbV9wb2xp
Y3lEZWxlZ2F0ZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2
ZShmYWxzZSkKICAgICAsIG1fZ2xvYmFsRmxhZyhmYWxzZSkKKyAgICAsIG1fY3VzdG9tRnVsbFNj
cmVlbkJlaGF2aW9yKGZhbHNlKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDNmOWJkMmNkZGZiZGFhYTk5NTU3ZDJlNWRmOTM5MGQ5
NDFiMmJmZTkuLmMyNWY2ZGFlMDRkYTQ2OWI3NTU1MjIxZDkzYzJkODJkM2I5NDdjMWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE5Niw2ICsxOTYsMTAgQEAgcHVibGljOgogCiAgICAg
dm9pZCBvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgcHJlZmVyZW5jZSwgYm9vbCB2YWx1
ZSk7CiAKKyAgICAvLyBDdXN0b20gZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgdm9pZCBzZXRI
YXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1bGxTY3Jl
ZW5CZWhhdmlvciA9IHZhbHVlOyB9CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZp
b3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQorCiAgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOwogICAgIAogcHJpdmF0ZToK
QEAgLTIyOCw2ICsyMzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZVBl
cm1pc3NpdmU7CiAgICAgCiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CisgICAgYm9vbCBtX2N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAogICAgIFBsYXRmb3JtVGltZXJSZWYgbV93YWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcjsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTUzM2JmNTlhMGFmNDYxYjk1ODliNzA5NjUyMzk2
NzhjMTliN2RkOC4uZGY4Y2YxNDczN2I3ZmQ5ZTk1NjAwNWM2ZjFmYWVjNTMwZWMwNjIzZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2aWdhdGlvbiBiYXIgYXBwZWFycyBp
bnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQgYW5pbWF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzA5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2lu
Zy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KKwogMjAxMi0wNC0wNCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBicmVhayBvbiBET00gbm9kZSBpbnNlcnRpb24gb25s
eSBvbmNlIHBlciBvcGVyYXRpb24sIG5vdCBvbmNlIHBlciBpbnNlcnRlZCBub2RlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0
YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxs
LXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZjNhNTNmM2FlMjRlMTA2NTMwMWNlMjRjMGJmNTc5ZTk1YzZkZTVhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1h
dGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMg
dGVzdHMgdGhhdCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250
ZXh0IGJsb2NrcyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gQWZ0ZXIg
ZW50ZXJpbmcgZnVsbCBzY3JlZW4gbW9kZSwgb25seSBhIGJsYWNrIGJveCBzaG91bGQgYmUgdmlz
aWJsZS4gQ2xpY2sgZ28gZnVsbCBzY3JlZW4gdG8gcnVuIHRoZSB0ZXN0LgorRU5EIE9GIFRFU1QK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFu
aW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1
bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NGI1YmJhYmM5M2EyMzJjMmJjNTZmMDllZWQ4YjZhYmZkMDIwMDAyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1z
dGFja2luZy1jb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBydW5Q
aXhlbFRlc3RzID0gdHJ1ZTsKKworICAgICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAg
ICAgICAgICAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIG5v
dCBlbmFibGVkIG9yIGlzIG1pc3Npbmc6CisgICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQucHJv
dG90eXBlLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuID09IHVuZGVmaW5lZCkgeworICAgICAgICAg
ICAgICAgICAgICBsb2dSZXN1bHQoZmFsc2UsICJFbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1
ZXN0RnVsbFNjcmVlbiA9PSB1bmRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVz
dCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdhaXRG
b3JFdmVudEFuZEVuZChkb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnKTsKKyAgICAg
ICAgICAgICAgICAgICAgcnVuV2l0aEtleURvd24oZ29GdWxsU2NyZWVuKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvRnVsbFNjcmVl
bigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRIYXNDdXN0b21GdWxs
U2NyZWVuQmVoYXZpb3IodHJ1ZSk7CisgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgdmlkZW8ud2Via2l0
UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgeworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMud2Via2l0V2lsbEVudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgaW50
ZXJuYWxzLndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVv
KTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdFdpbGxFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVz
dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI29uZSB7CisgICAgICAgICAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgICAgIHRvcDogNTBweDsKKyAgICAgICAg
ICAgICAgICBsZWZ0OiA1MHB4OworICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7CisgICAgICAg
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgI29uZSwgI3R3byB7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41OworICAgICAgICAg
ICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwKTsKKyAgICAgICAgICAgICAgICAt
d2Via2l0LW1hc2s6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIGFscGhhIDAlLCB3aGl0
ZSAxMDAlKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY29udHJhc3QoMTAwJSk7
CisgICAgICAgICAgICAgICAgY2xpcDpyZWN0KDBweCwxMDBweCwxMDBweCwwcHgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgI3plcm8geworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICAgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgI3ZpZGVvIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAg
ICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibGFjazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHkgb25sb2FkPSJpbml0KCkiPgorICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgdGhhdCBh
IGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBh
IHNpYmxpbmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gIAorICAgICAgICAgICAgIEFm
dGVyIGVudGVyaW5nIGZ1bGwgc2NyZWVuIG1vZGUsIG9ubHkgYSBibGFjayBib3ggc2hvdWxkIGJl
IHZpc2libGUuCisgICAgICAgICAgICAgQ2xpY2sgPGJ1dHRvbiBvbmNsaWNrPSJnb0Z1bGxTY3Jl
ZW4oKSI+Z28gZnVsbCBzY3JlZW48L2J1dHRvbj4gdG8gcnVuIHRoZSB0ZXN0LjwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJvbmUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ6ZXJvIj4KKyAgICAg
ICAgICAgIDx2aWRlbyBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgICAgIDwvZGl2PgorICAgIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1
bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmlt
YXRpb24tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjMTcwOTJi
ZTY0OGNhZmNiYTIxNjcxZDFkMWE0ZDZhN2Q3N2NhNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
OTc0Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdD
Q000NyQ9U3VGeGVSN1QKelhAPHMwbUtOc2JtWl8lWjF9U09nIyVaYk0kcmhHck52MzhkTWg1cFpL
SSQ/c3M0bnF6YVNXK29lMHpOKD8qUmlJCno3UT5eei1fS2R7Zm9vUzZUYTNOS2lrPDBjX3hATTJh
MG48a0clenFTMFR+aEU3TyVQNGtPVU04U1hueFA7cW5SJgp6M2M+O2tsM051KWlsTCRgOW56IW4o
Q2B9I3BWOU8mbm08TyVodGN3SncwOzxeQTBlJVooZX1ZO2B2fSYpOUJtKHMKend2Ul5KTjJCZWQo
ZX19M2ApSVUlR309QV9qWEk2QzRAY1hGcXdQYjtgMEhyPGMoaT55K0NDbV9BQ0k8PU44ODd2Cno/
Yz5xKkBvNCphdzB8KCNLTnteSGpyTmE1YCR2IV5IPjNUZDtucUwwK2ZjfjVldHE0IUdUPFVGMjJX
USVtdnY0RgpGTyNwdS1PVDdSOQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136088</attachid>
            <date>2012-04-06 16:14:22 -0700</date>
            <delta_ts>2012-04-06 16:22:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120406161421.patch</filename>
            <type>text/plain</type>
            <size>25754</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkNzgwNTkxMTg1MDNh
NzI5MWJiYTFjZmUwYTVkMThkMmI0YmUwOC4uNjc3ZjIyZDQyY2Q5OWJkMTJlM2M0YWY3YTVmNWE3
Njc3MzkxMWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFnZSB2aXNpYmxlIGR1
cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGY3NDFkOGNlYjFkYzA0
ZTc2YjM2NDViZGYzNDUzZjAyNzUyZWRlMC4uYzg2YjJlMjhjZmRmYTZkYzc0MTcxMmQyNTBmNGM0
N2NjNzc1MGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDEyLTA0LTA2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBuZXcgV2ViQ29yZSBzeW1ib2xzIG5lZWRlZCBieSBEdW1wUmVuZGVyVHJlZSB0byBleHBv
cnRlZCBzeW1ib2wgbGlzdC4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAg
KiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKKzIwMTItMDQtMDYgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6aXNG
dWxsU2NyZWVuKCkgd2lsbCBjcmVhdGUgYW4gZW1wdHkgZnVsbCBzY3JlZW4gd2luZG93OyBzdGVh
bCBmb2N1cy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgzMzg4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViZThjNjI5NDM2MjJhY2NlODBm
ODhiYWNhMjAxYzgyYTJlYmM1MWMuLjEzMmJlZmRmYzQ1MDcyYWQ5NmNmZmVmZmI2ZGVhMDBlNGNl
ZTA0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTQzNSwxOSArNTQzNSwxNiBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KQogICAgIGlmICghbV9mdWxsU2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFhdHRhY2hlZCgpIHx8IGluUGFnZUNhY2hlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2Vz
dG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKLSAgICAKICAgICBtX2Z1bGxTY3Jl
ZW5FbGVtZW50LT53aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKIH0KIAogdm9pZCBE
b2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKQogewot
ICAgIGlmICghYXR0YWNoZWQoKSB8fCBpblBhZ2VDYWNoZSgpKQorICAgIGlmICghbV9mdWxsU2Ny
ZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+
c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5k
YXJpZXMoZmFsc2UpOworCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNl
OwogICAgIAogICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCA4NzJiY2ZlZjZlNWE3MzRmNTJjZTMxNThmODk2ZmFhOTQwNzg1
OGQ0Li44NjFlNWY3MTQwOWE5MTc1ODQ0NGJjNWZlOWRjMzNlYzA0Y2UxYjk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04OTYsNCArODk2LDMzIEBAIGJvb2wgSW50ZXJu
YWxzOjpoYXNHcmFtbWFyTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBs
ZW5ndGgsIEV4Y2VwCiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+c2Vs
ZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGZyb20sIGxl
bmd0aCk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIEludGVybmFsczo6
d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBF
bGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBkb2N1bWVudC0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVu
dCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgZG9jdW1lbnQtPndlYmtpdERpZEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXRX
aWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCog
ZWxlbWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgZG9j
dW1lbnQtPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisK
K3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudC0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KGVsZW1lbnQpOworfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA2YjIwYjhjNzA1YmMyOGM0MzE3Mjk0YWZjZjczOGMzNWVkNzFkMGVjLi5lMzVlMDRj
ZDU5MzZhMTVlZGU1OGUzZTdiMmVmY2EwNmM5OWE5YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTE2Miw2ICsxNjIsMTMgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJl
ck9mTGl2ZURvY3VtZW50cygpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCisgICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1
bWVudCosIEVsZW1lbnQqKTsKKyAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZvaWQgd2Via2l0RGlk
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1l
bnRNYXJrZXIqIG1hcmtlckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKaW5kZXggMTVjZTBhM2FjMThkZmE0ZmNmYmQwOTU4MjkwYWQyNjAxZTc0ZDNjYS4uYTUxZjdh
YTAwMGIyNjNiZDZlNjQ5NmY1N2YzNmQ3ODVlOTQwNDExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbApAQCAtMTM2LDYgKzEzNiwxMyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAg
ICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5v
ZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZMaXZlRG9jdW1lbnRzKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJiYgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJCisgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxl
bWVudCk7CisgICAgICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChp
biBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3
ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBp
biBFbGVtZW50IGVsZW1lbnQpOworICAgICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyNl
bmRpZgogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCAxZThkMmI0MzNkYjVj
MWM2YzNmZjdhOGQ4ZjQxNmQyN2ZlNTQ4ODY5Li40MzUzYzI2NTNjYmM0YzEzZDVmZWQ4YWJmMGY4
ZjQ4OGEzYWQzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0yNDEsMyArMjQxLDcgQEAg
RVhQT1JUUwogICAgICAgICA/d2lsbERldGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
QFdlYkNvcmVAQFVBRVhYWgogICAgICAgICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3Jl
QEBRQkU/QVY/JFBhc3NSZWZQdHJAVk5vZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OMEBa
CiAgICAgICAgID9zZWxlY3Rpb25TdGFydEhhc01hcmtlckZvckBFZGl0b3JAV2ViQ29yZUBAUUJF
X05XNE1hcmtlclR5cGVARG9jdW1lbnRNYXJrZXJAMkBISEBaCisgICAgICAgID93ZWJraXRXaWxs
RW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVu
dEAyQEBaCisgICAgICAgID93ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3Vt
ZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgorICAgICAgICA/d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3VtZW50QFdl
YkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZgppbmRleCAxNDI1MmUxYWFhYTY4YmQyZDMxMjEyZTI5ZmY3ZjMwZGYzODcxOTMwLi44YjM4ZGFi
NjVmN2YzNzgxMDc2ZjNhYzNkNTdmNTAyYzYzMDZkYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDRkxpdGUuZGVmCkBAIC0yMzQsMyArMjM0LDcgQEAgRVhQT1JUUwogICAgICAgICA/d2lsbERl
dGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhYWgogICAgICAg
ICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3JlQEBRQkU/QVY/JFBhc3NSZWZQdHJAVk5v
ZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OQFoKICAgICAgICAgP3NlbGVjdGlvblN0YXJ0
SGFzTWFya2VyRm9yQEVkaXRvckBXZWJDb3JlQEBRQkVfTlc0TWFya2VyVHlwZUBEb2N1bWVudE1h
cmtlckAyQEhIQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
QERvY3VtZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdERp
ZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1l
bnRAMkBAWgorICAgICAgICA/d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1
bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCisgICAgICAgID93ZWJraXREaWRFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc2
NzVhMTlkNjRiMzY3OTdkY2UxZTFkZWI4YTg3MGFhYjVjZjQ0YWMuLmM2MTk2MGJlODI1ZjFlZjVj
NjU3Y2Y1NmUwMzM4NmIyMTg5NWJkZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMi0wNC0wNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBhcHBsZS5jb20gdG9wIG5hdmlnYXRp
b24gYmFyIGFwcGVhcnMgaW5zaWRlIHZpZGVvIGR1cmluZyBmdWxsIHNjcmVlbiBleGl0IGFuaW1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMw
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgTGF5b3V0VGVzdENvbnRyb2xsZXIgZnVuY3Rpb24sIHNldEhhc0N1c3RvbUZ1bGxTY3Jl
ZW5CZWhhdmlvcigpLCB3aGljaCBhbGxvd3Mgc2NyaXB0cyB0bworICAgICAgICBkaXNhYmxlIHRo
ZSBzdGFuZGFyZCBmdWxsIHNjcmVlbiBiZWhhdmlvciwgYW5kIHJlcGxhY2UgaXQgd2l0aCBleHBs
aWNpdCBjYWxsYmFja3MgdG8gdGhlIHJlbGV2YW50CisgICAgICAgIERvY3VtZW50IG1ldGhvZHMg
ZnJvbSB3aXRoaW4gdGhlIHNjcmlwdC4gIFRoaXMgYWxsb3dzIHN1YnRsZSB0aW1pbmcgYnVncyB0
byBiZSBjb25zaXN0ZW50bHkgcmVwcm9kdWNlZAorICAgICAgICBmcm9tIHdpdGhpbiBMYXlvdXRU
ZXN0cy4KKworICAgICAgICBBZGQgdGhlIG5ldyBtZXRob2RzLCBoYXNDdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3IoKSBhbmQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0
SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6Omhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RD
b250cm9sbGVyOjpzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKwor
ICAgICAgICBRdWVyeSB0aGUgbmV3IG1ldGhvZHMgYmVmb3JlIGNhbGxpbmcgd2lsbC9kaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW46CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmVudGVyRnVsbFNjcmVlbk5vdyk6
CisgICAgICAgIChXZWJWaWV3SG9zdDo6ZXhpdEZ1bGxTY3JlZW5Ob3cpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRlIHdl
YlZpZXc6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjpdKToKKyAgICAgICAgKC1b
VUlEZWxlZ2F0ZSB3ZWJWaWV3OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjpdKToK
KwogMjAxMi0wNC0wNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEVuYWJsZSB3ZWJraXRfdW5pdF90ZXN0cyBmb3IgY29tbWl0IHF1ZXVlIGFuZCBFV1Mg
d2hpbGUgdHJhY2tpbmcgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAppbmRleCBlNTFkMGVlNzRlMDJhNjg3MjlhNzY2MjdkZmMzMjJmYWQz
MWNhYzg5Li5iN2NhMzZkNDVmYTYxM2YwZWI4OTVhYzZkZmMxYTAyNWUwMDI3YWU0IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5
Miw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBz
dGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uCiAgICAgLCBtX3Nob3VsZFBhaW50QnJva2Vu
SW1hZ2UodHJ1ZSkKICAgICAsIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVV
bmxvYWQoZmFsc2UpCiAgICAgLCBtX2FyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdHNJZ25vcmVkKGZhbHNlKQorICAgICwgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoZmFs
c2UpIAogICAgICwgbV90ZXN0UGF0aE9yVVJMKHRlc3RQYXRoT3JVUkwpCiAgICAgLCBtX2V4cGVj
dGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNoKQogewpAQCAtMjI0Miw2ICsyMjQzLDE4IEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIHNldFRleHREaXJlY3Rpb25DYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAgfQogCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOworCit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKSB7CisgICAgICAgIGJvb2wgaGFzQ3VzdG9t
QmVoYXZpb3IgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSk7CisgICAg
ICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0
VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgICAg
ICBjb250cm9sbGVyLT5zZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoaGFzQ3VzdG9tQmVo
YXZpb3IpOworICAgIH0KKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAogc3RhdGljIHZvaWQgbGF5b3V0VGVzdENvbnRyb2xsZXJPYmplY3RGaW5hbGl6ZShK
U09iamVjdFJlZiBvYmplY3QpCkBAIC0yNDYxLDYgKzI0NzQsNyBAQCBKU1N0YXRpY0Z1bmN0aW9u
KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAiZm9j
dXNXZWJWaWV3IiwgZm9jdXNXZWJWaWV3Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
QmFja2luZ1NjYWxlRmFjdG9yIiwgc2V0QmFja2luZ1NjYWxlRmFjdG9yQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAicHJlY2lzZVRpbWUiLCBwcmVjaXNlVGltZUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CisgICAgICAgIHsgInNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciIsIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCB9
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
aW5kZXggZTJmYWU3ZWM4MmI3YTZmMTcxMTVjMGI5Yzg1N2Q2N2IxY2U2NWU0Ni4uZjVlYTI0MmY1
YzBhMTRhZThmMjA1MGVkYWQ4MDRlZThjNTUwOTIwYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zNjEsNiArMzYxLDEwIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZik7CiAKKyAgICAvLyBDdXN0b20g
ZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciA9IHZhbHVlOyB9
CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBt
X2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQorCiBwcml2YXRlOgogICAgIExheW91dFRlc3RD
b250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0
cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwogCkBAIC00MTMsNiArNDE3LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZTsKICAgICBib29sIG1fc2hvdWxkU3Rh
eU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQ7CiAgICAgYm9vbCBtX2FyZURlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkOworICAgIGJvb2wgbV9jdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3I7CiAKICAgICBzdGQ6OnN0cmluZyBtX2F1dGhlbnRpY2F0aW9uVXNl
cm5hbWU7CiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlvblBhc3N3b3JkOyAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBiM2U5ZGRh
MDE2NDkwMGQwZGVhODllMWM3N2FjNzhkNTMwOWExZGFjLi42ZTQ1MzIwMDcwMTdkZTUzZDUzZTAy
MmRiMzFkYWI2MjlmZmEwMzQ4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCkBAIC0xNjYyLDEyICsxNjYyLDE4IEBAIHZvaWQgV2ViVmlld0hvc3Q6
OnNldEFkZHJlc3NCYXJVUkwoY29uc3QgV2ViVVJMJikKIAogdm9pZCBXZWJWaWV3SG9zdDo6ZW50
ZXJGdWxsU2NyZWVuTm93KCkKIHsKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFz
Q3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIHdlYlZp
ZXcoKS0+d2lsbEVudGVyRnVsbFNjcmVlbigpOwogICAgIHdlYlZpZXcoKS0+ZGlkRW50ZXJGdWxs
U2NyZWVuKCk7CiB9CiAKIHZvaWQgV2ViVmlld0hvc3Q6OmV4aXRGdWxsU2NyZWVuTm93KCkKIHsK
KyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2
aW9yKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIHdlYlZpZXcoKS0+d2lsbEV4aXRGdWxsU2Ny
ZWVuKCk7CiAgICAgd2ViVmlldygpLT5kaWRFeGl0RnVsbFNjcmVlbigpOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQppbmRleCBlODU1NzkxZGIzZjcxYmJhYjNjZmVmMjM4
MTA4MTgzZTZhYjZlOTEwLi44NDdhNWZiNGVlYmE2NzFiNjRlMmI4Y2JiNTczZTMyMDZjYjQ2NTdk
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQpAQCAtMjYwLDcgKzI2MCw4
IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAKIC0g
KHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dDooRE9NRWxlbWVudCopZWxlbWVudCBsaXN0ZW5lcjooTlNPYmplY3Q8V2ViS2l0RnVsbFNjcmVl
bkxpc3RlbmVyPiopbGlzdGVuZXIKIHsKLSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVj
dG9yKGVudGVyRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0
ZXJEZWxheTowXTsKKyAgICBpZiAoIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+aGFzQ3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yKCkpCisgICAgICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0
b3IoZW50ZXJGdWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRl
ckRlbGF5OjBdOwogfQogCiAtICh2b2lkKWV4aXRGdWxsU2NyZWVuV2l0aExpc3RlbmVyOihOU09i
amVjdDxXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXI+KilsaXN0ZW5lcgpAQCAtMjcxLDcgKzI3Miw4
IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAKIC0g
KHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
OihET01FbGVtZW50KillbGVtZW50IGxpc3RlbmVyOihOU09iamVjdDxXZWJLaXRGdWxsU2NyZWVu
TGlzdGVuZXI+KilsaXN0ZW5lcgogewotICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0
b3IoZXhpdEZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVyIGFmdGVy
RGVsYXk6MF07CisgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcigpKQorICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9y
KGV4aXRGdWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRlckRl
bGF5OjBdOwogfQogCiAtIChCT09MKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZFByZXNz
TWlzc2luZ1BsdWdpbkJ1dHRvbjooRE9NRWxlbWVudCAqKWVsZW1lbnQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKaW5kZXggMGM4MWE0MWI5YTYxNzEyZWUyNjhl
OTQyNDJmMzdiMDlkMzUzZWY3MS4uZDhkZWY0ZGVlZTljYzg2ZjlkNjhmZTNkZDNmNDljYzg1MDBi
MTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKQEAg
LTE0NCw2ICsxNDQsOSBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCByZXNldFBhZ2VWaXNp
YmlsaXR5KCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9y
bU5hbWU7CisKKyAgICAgICAgLy8gQ29udHJvbCBmdWxsIHNjcmVlbiBiZWhhdmlvci4KKyAgICAg
ICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoaW4gYm9vbGVhbiB2YWx1ZSk7
CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDM3YjIwNjQ5NzA3ZGE1
OTkwMTUxZWE0MGYzMmYwNWI1NzhhMTM0M2MuLjZiMWZhMmNhMzJhZjQ0Nzc1MGQ5NTM3M2NlYWEz
MzhmYTFjNTQwOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTEyMDksMTYgKzEyMDks
MjIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
V0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnUKIHsKICAgICBpZiAoSW5qZWN0ZWRCdW5kbGU6
OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2Fs
bGJhY2tzKCkpCiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVy
KCktPmFwcGVuZCgiZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgpXG4iKTsKLSAgICBXS0J1bmRs
ZVBhZ2VXaWxsRW50ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOwotICAgIFdLQnVuZGxlUGFnZURpZEVu
dGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKworICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigp
KSB7CisgICAgICAgIFdLQnVuZGxlUGFnZVdpbGxFbnRlckZ1bGxTY3JlZW4ocGFnZVJlZik7Cisg
ICAgICAgIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICB9CiB9
CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV0tC
dW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50UmVmKQog
ewogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIo
KS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKICAgICAgICAgSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoKVxuIik7Ci0gICAgV0tCdW5kbGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYp
OwotICAgIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworCisgICAgaWYg
KCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpIHsKKyAgICAgICAgV0tCdW5kbGVQYWdlV2lsbEV4aXRG
dWxsU2NyZWVuKHBhZ2VSZWYpOworICAgICAgICBXS0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVl
bihwYWdlUmVmKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpiZWdhbkVu
dGVyRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVjdCwgV0tSZWN0KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmgKaW5kZXggYTM5NDdiZGM0ZTYwY2JkMmYxMjU5ZDZkNGRlODMyZDFiMjdlOWZlNC4u
YjUzOTJmZGUwNmNhZDU5NTc2M2IyNmE0N2RmNGNjZjMyNWJhZGEyZiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5oCkBAIC0xMjEsNiArMTIxLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgLy8gRnVsbCBTY3JlZW4gY2xpZW50CiAgICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgV0tGdWxsU2NyZWVuS2V5Ym9hcmRSZXF1ZXN0
VHlwZSk7CisgICAgc3RhdGljIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKFdL
QnVuZGxlUGFnZVJlZiwgYm9vbCB2YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVt
ZW50KTsKICAgICBzdGF0aWMgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudCk7CiAgICAgc3RhdGljIHZvaWQg
YmVnYW5FbnRlckZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QgaW5pdGlhbEZyYW1l
LCBXS1JlY3QgZmluYWxGcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGUz
MWFjODczMGQ1OWFkNzkwZTIxMzAzNWM4YzhmMWRjZjk5Zjk0OTguLjA3NTg0YmZkYjczNjY3YjE0
ZDBkOTY0ZDc3YzM4ZDEzYzQ0Y2EyYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xMDksNiArMTA5LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9s
bGVyKCkKICAgICAsIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkKGZhbHNlKQogICAgICwgbV9wb2xp
Y3lEZWxlZ2F0ZVBlcm1pc3NpdmUoZmFsc2UpCiAgICAgLCBtX2dsb2JhbEZsYWcoZmFsc2UpCisg
ICAgLCBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihmYWxzZSkKIHsKICAgICBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwYmVlZGY0YTJmNDI2
ZjNiNTI4MWZkYTNkYWMwMGMwNjJiYjY1ODFmLi5iNDZkYTIxNWM3YmViMmMxZjliYjBhNzdkNmMw
MDgzNGZmNzY4YzdhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xOTYsNiArMTk2LDEw
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIHBy
ZWZlcmVuY2UsIGJvb2wgdmFsdWUpOwogCisgICAgLy8gQ3VzdG9tIGZ1bGwgc2NyZWVuIGJlaGF2
aW9yLgorICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGJvb2wgdmFsdWUp
IHsgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IgPSB2YWx1ZTsgfQorICAgIGJvb2wgaGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3I7IH0KKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUo
KTsKIAogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwpAQCAt
MjMxLDYgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlz
c2l2ZTsKICAgICAKICAgICBib29sIG1fZ2xvYmFsRmxhZzsKKyAgICBib29sIG1fY3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yOwogCiAgICAgUGxhdGZvcm1UaW1lclJlZiBtX3dhaXRUb0R1bXBXYXRj
aGRvZ1RpbWVyOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZWEwYjhjNTAyMGM2NDhjMDI5OTgzNGNkM2U5M2ZmODVh
MGQzNzY1Li42MWYwOTg4YTk0M2Y2ZTljZTMzZWYyNDIyZTYyOWJiMmQ0ZTYyMjg2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgYXBwbGUuY29tIHRvcCBuYXZpZ2F0aW9uIGJhciBhcHBlYXJzIGluc2lk
ZSB2aWRlbyBkdXJpbmcgZnVsbCBzY3JlZW4gZXhpdCBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNv
bnRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Z1bGxzY3JlZW4vZnVs
bC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5wbmc6IEFk
ZGVkLgorCiAyMDEyLTA0LTA2ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkLCByZW1vdmUgYSBwYXNzaW5nIHRlc3QuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9u
LXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9m
dWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZjNhNTNmM2FlMjRlMTA2NTMwMWNlMjRjMGJmNTc5ZTk1YzZkZTVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFu
aW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Ro
aXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBj
b250ZXh0IGJsb2NrcyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gQWZ0
ZXIgZW50ZXJpbmcgZnVsbCBzY3JlZW4gbW9kZSwgb25seSBhIGJsYWNrIGJveCBzaG91bGQgYmUg
dmlzaWJsZS4gQ2xpY2sgZ28gZnVsbCBzY3JlZW4gdG8gcnVuIHRoZSB0ZXN0LgorRU5EIE9GIFRF
U1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0
LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NGI1YmJhYmM5M2EyMzJjMmJjNTZmMDllZWQ4YjZhYmZkMDIwMDAyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlv
bi1zdGFja2luZy1jb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBy
dW5QaXhlbFRlc3RzID0gdHJ1ZTsKKworICAgICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAg
ICAgICAgICAgICAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlz
IG5vdCBlbmFibGVkIG9yIGlzIG1pc3Npbmc6CisgICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQu
cHJvdG90eXBlLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuID09IHVuZGVmaW5lZCkgeworICAgICAg
ICAgICAgICAgICAgICBsb2dSZXN1bHQoZmFsc2UsICJFbGVtZW50LnByb3RvdHlwZS53ZWJraXRS
ZXF1ZXN0RnVsbFNjcmVlbiA9PSB1bmRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZW5k
VGVzdCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdh
aXRGb3JFdmVudEFuZEVuZChkb2N1bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnKTsKKyAg
ICAgICAgICAgICAgICAgICAgcnVuV2l0aEtleURvd24oZ29GdWxsU2NyZWVuKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvRnVsbFNj
cmVlbigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRIYXNDdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3IodHJ1ZSk7CisgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgdmlkZW8ud2Vi
a2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMud2Via2l0V2lsbEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAg
aW50ZXJuYWxzLndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZp
ZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdFdpbGxFeGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgZW5k
VGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI29uZSB7CisgICAgICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgICAgIHRvcDogNTBweDsKKyAgICAg
ICAgICAgICAgICBsZWZ0OiA1MHB4OworICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7CisgICAg
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI29uZSwgI3R3byB7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41OworICAgICAg
ICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwKTsKKyAgICAgICAgICAgICAg
ICAtd2Via2l0LW1hc2s6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIGFscGhhIDAlLCB3
aGl0ZSAxMDAlKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY29udHJhc3QoMTAw
JSk7CisgICAgICAgICAgICAgICAgY2xpcDpyZWN0KDBweCwxMDBweCwxMDBweCwwcHgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgI3plcm8geworICAgICAgICAgICAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICAgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgI3ZpZGVvIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibGFjazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHkgb25sb2FkPSJpbml0KCkiPgorICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgdGhh
dCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2Nr
cyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gIAorICAgICAgICAgICAg
IEFmdGVyIGVudGVyaW5nIGZ1bGwgc2NyZWVuIG1vZGUsIG9ubHkgYSBibGFjayBib3ggc2hvdWxk
IGJlIHZpc2libGUuCisgICAgICAgICAgICAgQ2xpY2sgPGJ1dHRvbiBvbmNsaWNrPSJnb0Z1bGxT
Y3JlZW4oKSI+Z28gZnVsbCBzY3JlZW48L2J1dHRvbj4gdG8gcnVuIHRoZSB0ZXN0LjwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJvbmUiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ6ZXJvIj4KKyAg
ICAgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgICAgIDwvZGl2PgorICAg
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1h
bmltYXRpb24tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjMTcw
OTJiZTY0OGNhZmNiYTIxNjcxZDFkMWE0ZDZhN2Q3N2NhNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgOTc0Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtC
OWdDQ000NyQ9U3VGeGVSN1QKelhAPHMwbUtOc2JtWl8lWjF9U09nIyVaYk0kcmhHck52MzhkTWg1
cFpLSSQ/c3M0bnF6YVNXK29lMHpOKD8qUmlJCno3UT5eei1fS2R7Zm9vUzZUYTNOS2lrPDBjX3hA
TTJhMG48a0clenFTMFR+aEU3TyVQNGtPVU04U1hueFA7cW5SJgp6M2M+O2tsM051KWlsTCRgOW56
IW4oQ2B9I3BWOU8mbm08TyVodGN3SncwOzxeQTBlJVooZX1ZO2B2fSYpOUJtKHMKend2Ul5KTjJC
ZWQoZX19M2ApSVUlR309QV9qWEk2QzRAY1hGcXdQYjtgMEhyPGMoaT55K0NDbV9BQ0k8PU44ODd2
Cno/Yz5xKkBvNCphdzB8KCNLTnteSGpyTmE1YCR2IV5IPjNUZDtucUwwK2ZjfjVldHE0IUdUPFVG
MjJXUSVtdnY0RgpGTyNwdS1PVDdSOQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136092</attachid>
            <date>2012-04-06 16:22:32 -0700</date>
            <delta_ts>2012-04-06 18:13:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120406162231.patch</filename>
            <type>text/plain</type>
            <size>28425</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkNzgwNTkxMTg1MDNh
NzI5MWJiYTFjZmUwYTVkMThkMmI0YmUwOC4uNjc3ZjIyZDQyY2Q5OWJkMTJlM2M0YWY3YTVmNWE3
Njc3MzkxMWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFnZSB2aXNpYmxlIGR1
cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGY3NDFkOGNlYjFkYzA0
ZTc2YjM2NDViZGYzNDUzZjAyNzUyZWRlMC4uYzg2YjJlMjhjZmRmYTZkYzc0MTcxMmQyNTBmNGM0
N2NjNzc1MGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDEyLTA0LTA2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBuZXcgV2ViQ29yZSBzeW1ib2xzIG5lZWRlZCBieSBEdW1wUmVuZGVyVHJlZSB0byBleHBv
cnRlZCBzeW1ib2wgbGlzdC4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAg
KiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKKzIwMTItMDQtMDYgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6aXNG
dWxsU2NyZWVuKCkgd2lsbCBjcmVhdGUgYW4gZW1wdHkgZnVsbCBzY3JlZW4gd2luZG93OyBzdGVh
bCBmb2N1cy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgzMzg4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViZThjNjI5NDM2MjJhY2NlODBm
ODhiYWNhMjAxYzgyYTJlYmM1MWMuLjEzMmJlZmRmYzQ1MDcyYWQ5NmNmZmVmZmI2ZGVhMDBlNGNl
ZTA0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTQzNSwxOSArNTQzNSwxNiBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KQogICAgIGlmICghbV9mdWxsU2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFhdHRhY2hlZCgpIHx8IGluUGFnZUNhY2hlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2Vz
dG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKLSAgICAKICAgICBtX2Z1bGxTY3Jl
ZW5FbGVtZW50LT53aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKIH0KIAogdm9pZCBE
b2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKQogewot
ICAgIGlmICghYXR0YWNoZWQoKSB8fCBpblBhZ2VDYWNoZSgpKQorICAgIGlmICghbV9mdWxsU2Ny
ZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+
c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5k
YXJpZXMoZmFsc2UpOworCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNl
OwogICAgIAogICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCA4NzJiY2ZlZjZlNWE3MzRmNTJjZTMxNThmODk2ZmFhOTQwNzg1
OGQ0Li44NjFlNWY3MTQwOWE5MTc1ODQ0NGJjNWZlOWRjMzNlYzA0Y2UxYjk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04OTYsNCArODk2LDMzIEBAIGJvb2wgSW50ZXJu
YWxzOjpoYXNHcmFtbWFyTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBs
ZW5ndGgsIEV4Y2VwCiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+c2Vs
ZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGZyb20sIGxl
bmd0aCk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIEludGVybmFsczo6
d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBF
bGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBkb2N1bWVudC0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVu
dCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgZG9jdW1lbnQtPndlYmtpdERpZEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXRX
aWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCog
ZWxlbWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgZG9j
dW1lbnQtPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisK
K3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudC0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KGVsZW1lbnQpOworfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA2YjIwYjhjNzA1YmMyOGM0MzE3Mjk0YWZjZjczOGMzNWVkNzFkMGVjLi5lMzVlMDRj
ZDU5MzZhMTVlZGU1OGUzZTdiMmVmY2EwNmM5OWE5YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTE2Miw2ICsxNjIsMTMgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJl
ck9mTGl2ZURvY3VtZW50cygpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCisgICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1
bWVudCosIEVsZW1lbnQqKTsKKyAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZvaWQgd2Via2l0RGlk
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1l
bnRNYXJrZXIqIG1hcmtlckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKaW5kZXggMTVjZTBhM2FjMThkZmE0ZmNmYmQwOTU4MjkwYWQyNjAxZTc0ZDNjYS4uYTUxZjdh
YTAwMGIyNjNiZDZlNjQ5NmY1N2YzNmQ3ODVlOTQwNDExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbApAQCAtMTM2LDYgKzEzNiwxMyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAg
ICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5v
ZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZMaXZlRG9jdW1lbnRzKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJiYgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJCisgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxl
bWVudCk7CisgICAgICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChp
biBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3
ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBp
biBFbGVtZW50IGVsZW1lbnQpOworICAgICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyNl
bmRpZgogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCAxZThkMmI0MzNkYjVj
MWM2YzNmZjdhOGQ4ZjQxNmQyN2ZlNTQ4ODY5Li40MzUzYzI2NTNjYmM0YzEzZDVmZWQ4YWJmMGY4
ZjQ4OGEzYWQzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0yNDEsMyArMjQxLDcgQEAg
RVhQT1JUUwogICAgICAgICA/d2lsbERldGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
QFdlYkNvcmVAQFVBRVhYWgogICAgICAgICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3Jl
QEBRQkU/QVY/JFBhc3NSZWZQdHJAVk5vZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OMEBa
CiAgICAgICAgID9zZWxlY3Rpb25TdGFydEhhc01hcmtlckZvckBFZGl0b3JAV2ViQ29yZUBAUUJF
X05XNE1hcmtlclR5cGVARG9jdW1lbnRNYXJrZXJAMkBISEBaCisgICAgICAgID93ZWJraXRXaWxs
RW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVu
dEAyQEBaCisgICAgICAgID93ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3Vt
ZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgorICAgICAgICA/d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3VtZW50QFdl
YkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZgppbmRleCAxNDI1MmUxYWFhYTY4YmQyZDMxMjEyZTI5ZmY3ZjMwZGYzODcxOTMwLi44YjM4ZGFi
NjVmN2YzNzgxMDc2ZjNhYzNkNTdmNTAyYzYzMDZkYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDRkxpdGUuZGVmCkBAIC0yMzQsMyArMjM0LDcgQEAgRVhQT1JUUwogICAgICAgICA/d2lsbERl
dGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhYWgogICAgICAg
ICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3JlQEBRQkU/QVY/JFBhc3NSZWZQdHJAVk5v
ZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OQFoKICAgICAgICAgP3NlbGVjdGlvblN0YXJ0
SGFzTWFya2VyRm9yQEVkaXRvckBXZWJDb3JlQEBRQkVfTlc0TWFya2VyVHlwZUBEb2N1bWVudE1h
cmtlckAyQEhIQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
QERvY3VtZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdERp
ZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1l
bnRAMkBAWgorICAgICAgICA/d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1
bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCisgICAgICAgID93ZWJraXREaWRFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc2
NzVhMTlkNjRiMzY3OTdkY2UxZTFkZWI4YTg3MGFhYjVjZjQ0YWMuLjFlM2MwY2Y2NjkyNDk2NGY5
YTFlMTA0MGI5ZDY5N2U2NTgwZDJiMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMi0wNC0wNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBhcHBsZS5jb20gdG9wIG5hdmlnYXRp
b24gYmFyIGFwcGVhcnMgaW5zaWRlIHZpZGVvIGR1cmluZyBmdWxsIHNjcmVlbiBleGl0IGFuaW1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMw
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgTGF5b3V0VGVzdENvbnRyb2xsZXIgZnVuY3Rpb24sIHNldEhhc0N1c3RvbUZ1bGxTY3Jl
ZW5CZWhhdmlvcigpLCB3aGljaCBhbGxvd3Mgc2NyaXB0cyB0bworICAgICAgICBkaXNhYmxlIHRo
ZSBzdGFuZGFyZCBmdWxsIHNjcmVlbiBiZWhhdmlvciwgYW5kIHJlcGxhY2UgaXQgd2l0aCBleHBs
aWNpdCBjYWxsYmFja3MgdG8gdGhlIHJlbGV2YW50CisgICAgICAgIERvY3VtZW50IG1ldGhvZHMg
ZnJvbSB3aXRoaW4gdGhlIHNjcmlwdC4gIFRoaXMgYWxsb3dzIHN1YnRsZSB0aW1pbmcgYnVncyB0
byBiZSBjb25zaXN0ZW50bHkgcmVwcm9kdWNlZAorICAgICAgICBmcm9tIHdpdGhpbiBMYXlvdXRU
ZXN0cy4KKworICAgICAgICBBZGQgdGhlIG5ldyBtZXRob2RzLCBoYXNDdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3IoKSBhbmQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0
SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6Omhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAo
V1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RD
b250cm9sbGVyOjpzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKwor
ICAgICAgICBRdWVyeSB0aGUgbmV3IG1ldGhvZHMgYmVmb3JlIGNhbGxpbmcgd2lsbC9kaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW46CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmVudGVyRnVsbFNjcmVlbk5vdyk6
CisgICAgICAgIChXZWJWaWV3SG9zdDo6ZXhpdEZ1bGxTY3JlZW5Ob3cpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRlIHdl
YlZpZXc6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjpdKToKKyAgICAgICAgKC1b
VUlEZWxlZ2F0ZSB3ZWJWaWV3OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjpdKToK
KwogMjAxMi0wNC0wNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEVuYWJsZSB3ZWJraXRfdW5pdF90ZXN0cyBmb3IgY29tbWl0IHF1ZXVlIGFuZCBFV1Mg
d2hpbGUgdHJhY2tpbmcgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAppbmRleCBlNTFkMGVlNzRlMDJhNjg3MjlhNzY2MjdkZmMzMjJmYWQz
MWNhYzg5Li5iN2NhMzZkNDVmYTYxM2YwZWI4OTVhYzZkZmMxYTAyNWUwMDI3YWU0IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5
Miw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBz
dGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uCiAgICAgLCBtX3Nob3VsZFBhaW50QnJva2Vu
SW1hZ2UodHJ1ZSkKICAgICAsIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVV
bmxvYWQoZmFsc2UpCiAgICAgLCBtX2FyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdHNJZ25vcmVkKGZhbHNlKQorICAgICwgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoZmFs
c2UpIAogICAgICwgbV90ZXN0UGF0aE9yVVJMKHRlc3RQYXRoT3JVUkwpCiAgICAgLCBtX2V4cGVj
dGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNoKQogewpAQCAtMjI0Miw2ICsyMjQzLDE4IEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIHNldFRleHREaXJlY3Rpb25DYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAgfQogCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOworCit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKSB7CisgICAgICAgIGJvb2wgaGFzQ3VzdG9t
QmVoYXZpb3IgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSk7CisgICAg
ICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0
VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgICAg
ICBjb250cm9sbGVyLT5zZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoaGFzQ3VzdG9tQmVo
YXZpb3IpOworICAgIH0KKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAogc3RhdGljIHZvaWQgbGF5b3V0VGVzdENvbnRyb2xsZXJPYmplY3RGaW5hbGl6ZShK
U09iamVjdFJlZiBvYmplY3QpCkBAIC0yNDYxLDYgKzI0NzQsNyBAQCBKU1N0YXRpY0Z1bmN0aW9u
KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAiZm9j
dXNXZWJWaWV3IiwgZm9jdXNXZWJWaWV3Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
QmFja2luZ1NjYWxlRmFjdG9yIiwgc2V0QmFja2luZ1NjYWxlRmFjdG9yQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAicHJlY2lzZVRpbWUiLCBwcmVjaXNlVGltZUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CisgICAgICAgIHsgInNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciIsIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCB9
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
aW5kZXggZTJmYWU3ZWM4MmI3YTZmMTcxMTVjMGI5Yzg1N2Q2N2IxY2U2NWU0Ni4uZjVlYTI0MmY1
YzBhMTRhZThmMjA1MGVkYWQ4MDRlZThjNTUwOTIwYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zNjEsNiArMzYxLDEwIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZik7CiAKKyAgICAvLyBDdXN0b20g
ZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciA9IHZhbHVlOyB9
CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBt
X2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQorCiBwcml2YXRlOgogICAgIExheW91dFRlc3RD
b250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0
cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwogCkBAIC00MTMsNiArNDE3LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZTsKICAgICBib29sIG1fc2hvdWxkU3Rh
eU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQ7CiAgICAgYm9vbCBtX2FyZURlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkOworICAgIGJvb2wgbV9jdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3I7CiAKICAgICBzdGQ6OnN0cmluZyBtX2F1dGhlbnRpY2F0aW9uVXNl
cm5hbWU7CiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlvblBhc3N3b3JkOyAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAppbmRleCAyMjY1NzhiMjQ1NWRjZTgyOTIxZmM5YzBjNGRmNWRiZTJhODQxYjhhLi45OTcw
OGE1ZTgzZjlmMDExMGM0ZGJiMTBhYzgwNjkwMDIxMWJkMjc5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0y
NTEsNiArMjUxLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZW5hYmxlRml4ZWRMYXlvdXRNb2Rl
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjplbmFibGVGaXhlZExheW91dE1vZGUpOwogICAgIGJp
bmRNZXRob2QoInNldEZpeGVkTGF5b3V0U2l6ZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
Rml4ZWRMYXlvdXRTaXplKTsKICAgICBiaW5kTWV0aG9kKCJzZWxlY3Rpb25Bc01hcmt1cCIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2VsZWN0aW9uQXNNYXJrdXApOworICAgIGJpbmRNZXRob2Qo
InNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKTsKICAgICAKICAgICAvLyBUaGUgZmFsbGJh
Y2sgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIHVua25vd24gbWV0aG9kIGlzIGludm9rZWQuCiAg
ICAgYmluZEZhbGxiYWNrTWV0aG9kKCZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmFsbGJhY2tNZXRo
b2QpOwpAQCAtNjc0LDYgKzY3NSw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0
KCkKICAgICBtX3dvcmtRdWV1ZS5yZXNldCgpOwogICAgIG1fdGFza0xpc3QucmV2b2tlQWxsKCk7
CiAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCA9IGZhbHNl
OworICAgIG1faGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yID0gZmFsc2U7CiB9CiAKIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvY2F0aW9uQ2hhbmdlRG9uZSgpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA1
MzY3N2UyZGFjNmE4MjZlOGNkMWIyOTU3N2NjMWZmZjBlNDNhYTExLi42NGFhNWEyOTU3ZjIzZjQ1
MWNjMjZiYTEwZjI0OGFhYmUyOGFkMzdhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTQ5MSw2ICs0OTEsOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCB0ZXN0UmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdFJlcGFp
bnQ7IH0KICAgICBib29sIHN3ZWVwSG9yaXpvbnRhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9zd2Vl
cEhvcml6b250YWxseTsgfQogCisgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZp
b3IoYm9vbCBmbGFnKSB7IG1faGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yID0gZmxhZzsgfQor
ICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KKwogICAgIC8vIENhbGxlZCBieSB0aGUgd2Vi
dmlldyBkZWxlZ2F0ZSB3aGVuIHRoZSB0b3BsZXZlbCBmcmFtZSBsb2FkIGlzIGRvbmUuCiAgICAg
dm9pZCBsb2NhdGlvbkNoYW5nZURvbmUoKTsKIApAQCAtNzA1LDYgKzcwOCwxMCBAQCBwcml2YXRl
OgogICAgIFdlYktpdDo6V2ViQXJyYXlCdWZmZXJWaWV3IG1fYXVkaW9EYXRhOwogCiAgICAgYm9v
bCBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkOworCisgICAgLy8g
SWYgdHJ1ZSwgY2FsbHMgdG8gV2ViVmlld0hvc3Q6OmVudGVyL2V4aXRGdWxsU2NyZWVuTm93IHdp
bGwgbm90IHJlc3VsdCBpbiAKKyAgICAvLyBjYWxscyB0byBEb2N1bWVudDo6d2lsbC9kaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4uCisgICAgYm9vbCBtX2hhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlv
cjsKIH07CiAKICNlbmRpZiAvLyBMYXlvdXRUZXN0Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggYjNlOWRkYTAxNjQ5MDBk
MGRlYTg5ZTFjNzdhYzc4ZDUzMDlhMWRhYy4uNmU0NTMyMDA3MDE3ZGU1M2Q1M2UwMjJkYjMxZGFi
NjI5ZmZhMDM0OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmNwcApAQCAtMTY2MiwxMiArMTY2MiwxOCBAQCB2b2lkIFdlYlZpZXdIb3N0OjpzZXRBZGRy
ZXNzQmFyVVJMKGNvbnN0IFdlYlVSTCYpCiAKIHZvaWQgV2ViVmlld0hvc3Q6OmVudGVyRnVsbFNj
cmVlbk5vdygpCiB7CisgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1
bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3KCktPndp
bGxFbnRlckZ1bGxTY3JlZW4oKTsKICAgICB3ZWJWaWV3KCktPmRpZEVudGVyRnVsbFNjcmVlbigp
OwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbk5vdygpCiB7CisgICAgaWYg
KGxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKQor
ICAgICAgICByZXR1cm47CisKICAgICB3ZWJWaWV3KCktPndpbGxFeGl0RnVsbFNjcmVlbigpOwog
ICAgIHdlYlZpZXcoKS0+ZGlkRXhpdEZ1bGxTY3JlZW4oKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1VJRGVsZWdhdGUubW0KaW5kZXggZTg1NTc5MWRiM2Y3MWJiYWIzY2ZlZjIzODEwODE4M2U2
YWI2ZTkxMC4uODQ3YTVmYjRlZWJhNjcxYjY0ZTJiOGNiYjU3M2UzMjA2Y2I0NjU3ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTI2MCw3ICsyNjAsOCBAQCBEdW1w
UmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogCiAtICh2b2lkKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KERPTUVs
ZW1lbnQqKWVsZW1lbnQgbGlzdGVuZXI6KE5TT2JqZWN0PFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5l
cj4qKWxpc3RlbmVyCiB7Ci0gICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihlbnRl
ckZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVyIGFmdGVyRGVsYXk6
MF07CisgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmhhc0N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcigpKQorICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGVudGVy
RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTow
XTsKIH0KIAogLSAodm9pZClleGl0RnVsbFNjcmVlbldpdGhMaXN0ZW5lcjooTlNPYmplY3Q8V2Vi
S2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKQEAgLTI3MSw3ICsyNzIsOCBAQCBEdW1w
UmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogCiAtICh2b2lkKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDooRE9NRWxl
bWVudCopZWxlbWVudCBsaXN0ZW5lcjooTlNPYmplY3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
PiopbGlzdGVuZXIKIHsKLSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGV4aXRG
dWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRlckRlbGF5OjBd
OworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5oYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoKSkKKyAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihleGl0RnVs
bFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTowXTsK
IH0KIAogLSAoQk9PTCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRQcmVzc01pc3NpbmdQ
bHVnaW5CdXR0b246KERPTUVsZW1lbnQgKillbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVy
LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IDBjODFhNDFiOWE2MTcxMmVlMjY4ZTk0MjQyZjM3
YjA5ZDM1M2VmNzEuLmQ4ZGVmNGRlZWU5Y2M4NmY5ZDY4ZmUzZGQzZjQ5Y2M4NTAwYjEzZmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCkBAIC0xNDQsNiAr
MTQ0LDkgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgp
OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm1OYW1lOwor
CisgICAgICAgIC8vIENvbnRyb2wgZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgICAgIHZvaWQg
c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGluIGJvb2xlYW4gdmFsdWUpOwogICAgIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAzN2IyMDY0OTcwN2RhNTk5MDE1MWVh
NDBmMzJmMDViNTc4YTEzNDNjLi42YjFmYTJjYTMyYWY0NDc3NTBkOTUzNzNjZWFhMzM4ZmExYzU0
MDliIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xMjA5LDE2ICsxMjA5LDIyIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVuZGxl
UGFnZVJlZiBwYWdlUmVmLCBXS0J1CiB7CiAgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygp
KQogICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBl
bmQoImVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKVxuIik7Ci0gICAgV0tCdW5kbGVQYWdlV2ls
bEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKLSAgICBXS0J1bmRsZVBhZ2VEaWRFbnRlckZ1bGxT
Y3JlZW4ocGFnZVJlZik7CisKKyAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlv
dXRUZXN0Q29udHJvbGxlcigpLT5oYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSkgeworICAg
ICAgICBXS0J1bmRsZVBhZ2VXaWxsRW50ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgICAgICBX
S0J1bmRsZVBhZ2VEaWRFbnRlckZ1bGxTY3JlZW4ocGFnZVJlZik7CisgICAgfQogfQogCiB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVuZGxlUGFn
ZVJlZiBwYWdlUmVmLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudFJlZikKIHsKICAgICBp
ZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3Vs
ZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KClc
biIpOwotICAgIFdLQnVuZGxlUGFnZVdpbGxFeGl0RnVsbFNjcmVlbihwYWdlUmVmKTsKLSAgICBX
S0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVlbihwYWdlUmVmKTsKKworICAgIGlmICghSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcigpKSB7CisgICAgICAgIFdLQnVuZGxlUGFnZVdpbGxFeGl0RnVsbFNjcmVl
bihwYWdlUmVmKTsKKyAgICAgICAgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4ocGFnZVJl
Zik7CisgICAgfQogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6YmVnYW5FbnRlckZ1bGxT
Y3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBXS1JlY3QsIFdLUmVjdCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5o
CmluZGV4IGEzOTQ3YmRjNGU2MGNiZDJmMTI1OWQ2ZDRkZTgzMmQxYjI3ZTlmZTQuLmI1MzkyZmRl
MDZjYWQ1OTU3NjNiMjZhNDdkZjRjY2YzMjViYWRhMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApA
QCAtMTIxLDYgKzEyMSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIC8vIEZ1bGwgU2NyZWVuIGNsaWVudAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRnVsbFNj
cmVlbihXS0J1bmRsZVBhZ2VSZWYsIFdLRnVsbFNjcmVlbktleWJvYXJkUmVxdWVzdFR5cGUpOwor
ICAgIHN0YXRpYyB2b2lkIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihXS0J1bmRsZVBh
Z2VSZWYsIGJvb2wgdmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudCk7CiAg
ICAgc3RhdGljIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdLQnVuZGxlUGFnZVJlZiwg
V0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnQpOwogICAgIHN0YXRpYyB2b2lkIGJlZ2FuRW50
ZXJGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgV0tSZWN0IGluaXRpYWxGcmFtZSwgV0tSZWN0
IGZpbmFsRnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlMzFhYzg3MzBk
NTlhZDc5MGUyMTMwMzVjOGM4ZjFkY2Y5OWY5NDk4Li4wNzU4NGJmZGI3MzY2N2IxNGQwZDk2NGQ3
N2MzOGQxM2M0NGNhMmJiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTA5LDYg
KzEwOSw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcigpCiAg
ICAgLCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fcG9saWN5RGVsZWdh
dGVQZXJtaXNzaXZlKGZhbHNlKQogICAgICwgbV9nbG9iYWxGbGFnKGZhbHNlKQorICAgICwgbV9j
dXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoZmFsc2UpCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMGJlZWRmNGEyZjQyNmYzYjUyODFm
ZGEzZGFjMDBjMDYyYmI2NTgxZi4uYjQ2ZGEyMTVjN2JlYjJjMWY5YmIwYTc3ZDZjMDA4MzRmZjc2
OGM3YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTk2LDYgKzE5NiwxMCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIG92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBwcmVmZXJlbmNl
LCBib29sIHZhbHVlKTsKIAorICAgIC8vIEN1c3RvbSBmdWxsIHNjcmVlbiBiZWhhdmlvci4KKyAg
ICB2b2lkIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihib29sIHZhbHVlKSB7IG1fY3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yID0gdmFsdWU7IH0KKyAgICBib29sIGhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9y
OyB9CisKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKCk7CiAKICAg
ICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5nUmVmIHN0YXRlKTsKQEAgLTIzMSw2ICsy
MzUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmU7CiAg
ICAgCiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CisgICAgYm9vbCBtX2N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcjsKIAogICAgIFBsYXRmb3JtVGltZXJSZWYgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1l
cjsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggM2VhMGI4YzUwMjBjNjQ4YzAyOTk4MzRjZDNlOTNmZjg1YTBkMzc2NS4u
NjFmMDk4OGE5NDNmNmU5Y2UzM2VmMjQyMmU2MjliYjJkNGU2MjI4NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEyLTA0LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8g
ZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQgYW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFu
aW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKwog
MjAxMi0wNC0wNiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gVW5yZXZpZXdlZCwgcmVtb3ZlIGEgcGFzc2luZyB0ZXN0LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2lu
Zy1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWYzYTUzZjNhZTI0ZTEwNjUzMDFjZTI0YzBiZjU3OWU5NWM2ZGU1YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24t
c3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3Rz
IHRoYXQgYSBmdWxsIHNjcmVlbiBlbGVtZW50IGluIGEgbG93ZXIgc3RhY2tpbmcgY29udGV4dCBi
bG9ja3MgYSBzaWJsaW5nIGluIGEgaGlnaGVyIHN0YWNraW5nIGNvbnRleHQuIEFmdGVyIGVudGVy
aW5nIGZ1bGwgc2NyZWVuIG1vZGUsIG9ubHkgYSBibGFjayBib3ggc2hvdWxkIGJlIHZpc2libGUu
IENsaWNrIGdvIGZ1bGwgc2NyZWVuIHRvIHJ1biB0aGUgdGVzdC4KK0VORCBPRiBURVNUCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRp
b24tc3RhY2tpbmctY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRi
NWJiYWJjOTNhMjMyYzJiYzU2ZjA5ZWVkOGI2YWJmZDAyMDAwMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tp
bmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgcnVuUGl4ZWxU
ZXN0cyA9IHRydWU7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgICAg
ICAgICAgLy8gQmFpbCBvdXQgZWFybHkgaWYgdGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBub3QgZW5h
YmxlZCBvciBpcyBtaXNzaW5nOgorICAgICAgICAgICAgICAgIGlmIChFbGVtZW50LnByb3RvdHlw
ZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiA9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbG9nUmVzdWx0KGZhbHNlLCAiRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1
bGxTY3JlZW4gPT0gdW5kZWZpbmVkIik7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnRBbmRFbmQoZG9jdW1lbnQsICd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJyk7CisgICAgICAgICAg
ICAgICAgICAgIHJ1bldpdGhLZXlEb3duKGdvRnVsbFNjcmVlbik7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBnb0Z1bGxTY3JlZW4oKSB7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SGFzQ3VzdG9tRnVsbFNjcmVl
bkJlaGF2aW9yKHRydWUpOworICAgICAgICAgICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd2aWRlbycpOworICAgICAgICAgICAgICAgIHZpZGVvLndlYmtpdFJlcXVl
c3RGdWxsU2NyZWVuKCk7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KGRvY3VtZW50LCB2aWRlbyk7CisgICAgICAgICAgICAgICAgICAgIGludGVybmFs
cy53ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGRvY3VtZW50LCB2aWRlbyk7Cisg
ICAgICAgICAgICAgICAgICAgIGludGVybmFscy53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KGRvY3VtZW50LCB2aWRlbyk7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0iZnVsbC1zY3JlZW4tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzdHlsZT4KKyAgICAgICAgICAgICNvbmUgeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgICAgICB0b3A6IDUwcHg7CisgICAgICAgICAgICAg
ICAgbGVmdDogNTBweDsKKyAgICAgICAgICAgICAgICB6LWluZGV4OiAxOworICAgICAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNv
bmUsICN0d28geworICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTsKKyAgICAgICAgICAgICAg
ICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MCk7CisgICAgICAgICAgICAgICAgLXdlYmtp
dC1tYXNrOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCBhbHBoYSAwJSwgd2hpdGUgMTAw
JSk7CisgICAgICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGNvbnRyYXN0KDEwMCUpOworICAg
ICAgICAgICAgICAgIGNsaXA6cmVjdCgwcHgsMTAwcHgsMTAwcHgsMHB4KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICN6ZXJvIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgICAgICAgICAgICAgei1pbmRleDogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICN2aWRlbyB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAg
ICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxh
Y2s7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgICAgICAgPGRpdj5UaGlzIHRlc3RzIHRoYXQgYSBmdWxs
IHNjcmVlbiBlbGVtZW50IGluIGEgbG93ZXIgc3RhY2tpbmcgY29udGV4dCBibG9ja3MgYSBzaWJs
aW5nIGluIGEgaGlnaGVyIHN0YWNraW5nIGNvbnRleHQuICAKKyAgICAgICAgICAgICBBZnRlciBl
bnRlcmluZyBmdWxsIHNjcmVlbiBtb2RlLCBvbmx5IGEgYmxhY2sgYm94IHNob3VsZCBiZSB2aXNp
YmxlLgorICAgICAgICAgICAgIENsaWNrIDxidXR0b24gb25jbGljaz0iZ29GdWxsU2NyZWVuKCki
PmdvIGZ1bGwgc2NyZWVuPC9idXR0b24+IHRvIHJ1biB0aGUgdGVzdC48L2Rpdj4KKyAgICAgICAg
PGRpdiBpZD0ib25lIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iemVybyI+CisgICAgICAgICAg
ICA8dmlkZW8gaWQ9InZpZGVvIj48L3ZpZGVvPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9u
LXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYzE3MDkyYmU2NDhj
YWZjYmEyMTY3MWQxZDFhNGQ2YTdkNzdjYTYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDk3NDYK
emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDck
PVN1RnhlUjdUCnpYQDxzMG1LTnNibVpfJVoxfVNPZyMlWmJNJHJoR3JOdjM4ZE1oNXBaS0kkP3Nz
NG5xemFTVytvZTB6Tig/KlJpSQp6N1E+XnotX0tke2Zvb1M2VGEzTktpazwwY194QE0yYTBuPGtH
JXpxUzBUfmhFN08lUDRrT1VNOFNYbnhQO3FuUiYKejNjPjtrbDNOdSlpbEwkYDlueiFuKENgfSNw
VjlPJm5tPE8laHRjd0p3MDs8XkEwZSVaKGV9WTtgdn0mKTlCbShzCnp3dlJeSk4yQmVkKGV9fTNg
KUlVJUd9PUFfalhJNkM0QGNYRnF3UGI7YDBIcjxjKGk+eStDQ21fQUNJPD1OODg3dgp6P2M+cSpA
bzQqYXcwfCgjS057Xkhqck5hNWAkdiFeSD4zVGQ7bnFMMCtmY341ZXRxNCFHVDxVRjIyV1ElbXZ2
NEYKRk8jcHUtT1Q3UjkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136113</attachid>
            <date>2012-04-06 18:13:34 -0700</date>
            <delta_ts>2012-04-09 09:57:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120406181333.patch</filename>
            <type>text/plain</type>
            <size>29859</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkNzgwNTkxMTg1MDNh
NzI5MWJiYTFjZmUwYTVkMThkMmI0YmUwOC4uNjc3ZjIyZDQyY2Q5OWJkMTJlM2M0YWY3YTVmNWE3
Njc3MzkxMWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGb3JlZ3JvdW5kIG9mIGFwcGxlLmNvbS9pcGhvbmUgdmlkZW8gcGFnZSB2aXNpYmxlIGR1
cmluZyBmdWxsIHNjcmVlbiBhbmltYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGY3NDFkOGNlYjFkYzA0
ZTc2YjM2NDViZGYzNDUzZjAyNzUyZWRlMC4uYzg2YjJlMjhjZmRmYTZkYzc0MTcxMmQyNTBmNGM0
N2NjNzc1MGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDEyLTA0LTA2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBuZXcgV2ViQ29yZSBzeW1ib2xzIG5lZWRlZCBieSBEdW1wUmVuZGVyVHJlZSB0byBleHBv
cnRlZCBzeW1ib2wgbGlzdC4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAg
KiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKKzIwMTItMDQtMDYgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6aXNG
dWxsU2NyZWVuKCkgd2lsbCBjcmVhdGUgYW4gZW1wdHkgZnVsbCBzY3JlZW4gd2luZG93OyBzdGVh
bCBmb2N1cy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgzMzg4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViZThjNjI5NDM2MjJhY2NlODBm
ODhiYWNhMjAxYzgyYTJlYmM1MWMuLjEzMmJlZmRmYzQ1MDcyYWQ5NmNmZmVmZmI2ZGVhMDBlNGNl
ZTA0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTQzNSwxOSArNTQzNSwxNiBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KQogICAgIGlmICghbV9mdWxsU2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFhdHRhY2hlZCgpIHx8IGluUGFnZUNhY2hlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2Vz
dG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKLSAgICAKICAgICBtX2Z1bGxTY3Jl
ZW5FbGVtZW50LT53aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKIH0KIAogdm9pZCBE
b2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKQogewot
ICAgIGlmICghYXR0YWNoZWQoKSB8fCBpblBhZ2VDYWNoZSgpKQorICAgIGlmICghbV9mdWxsU2Ny
ZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+
c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5k
YXJpZXMoZmFsc2UpOworCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNl
OwogICAgIAogICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCA4NzJiY2ZlZjZlNWE3MzRmNTJjZTMxNThmODk2ZmFhOTQwNzg1
OGQ0Li44NjFlNWY3MTQwOWE5MTc1ODQ0NGJjNWZlOWRjMzNlYzA0Y2UxYjk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04OTYsNCArODk2LDMzIEBAIGJvb2wgSW50ZXJu
YWxzOjpoYXNHcmFtbWFyTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBs
ZW5ndGgsIEV4Y2VwCiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS0+c2Vs
ZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGZyb20sIGxl
bmd0aCk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIEludGVybmFsczo6
d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBF
bGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBkb2N1bWVudC0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVu
dCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgZG9jdW1lbnQtPndlYmtpdERpZEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXRX
aWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCog
ZWxlbWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgZG9j
dW1lbnQtPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisK
K3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudC0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KGVsZW1lbnQpOworfQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA2YjIwYjhjNzA1YmMyOGM0MzE3Mjk0YWZjZjczOGMzNWVkNzFkMGVjLi5lMzVlMDRj
ZDU5MzZhMTVlZGU1OGUzZTdiMmVmY2EwNmM5OWE5YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTE2Miw2ICsxNjIsMTMgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJl
ck9mTGl2ZURvY3VtZW50cygpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCisgICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1
bWVudCosIEVsZW1lbnQqKTsKKyAgICB2b2lkIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXRXaWxsRXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZvaWQgd2Via2l0RGlk
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1l
bnRNYXJrZXIqIG1hcmtlckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKaW5kZXggMTVjZTBhM2FjMThkZmE0ZmNmYmQwOTU4MjkwYWQyNjAxZTc0ZDNjYS4uYTUxZjdh
YTAwMGIyNjNiZDZlNjQ5NmY1N2YzNmQ3ODVlOTQwNDExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbApAQCAtMTM2LDYgKzEzNiwxMyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAg
ICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5v
ZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZMaXZlRG9jdW1lbnRzKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJiYgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJCisgICAgICAgIHZvaWQgd2Via2l0V2lsbEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxl
bWVudCk7CisgICAgICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChp
biBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3
ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBp
biBFbGVtZW50IGVsZW1lbnQpOworICAgICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyNl
bmRpZgogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCAxZThkMmI0MzNkYjVj
MWM2YzNmZjdhOGQ4ZjQxNmQyN2ZlNTQ4ODY5Li40MzUzYzI2NTNjYmM0YzEzZDVmZWQ4YWJmMGY4
ZjQ4OGEzYWQzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0yNDEsMyArMjQxLDcgQEAg
RVhQT1JUUwogICAgICAgICA/d2lsbERldGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
QFdlYkNvcmVAQFVBRVhYWgogICAgICAgICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3Jl
QEBRQkU/QVY/JFBhc3NSZWZQdHJAVk5vZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OMEBa
CiAgICAgICAgID9zZWxlY3Rpb25TdGFydEhhc01hcmtlckZvckBFZGl0b3JAV2ViQ29yZUBAUUJF
X05XNE1hcmtlclR5cGVARG9jdW1lbnRNYXJrZXJAMkBISEBaCisgICAgICAgID93ZWJraXRXaWxs
RW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVu
dEAyQEBaCisgICAgICAgID93ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3Vt
ZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgorICAgICAgICA/d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3VtZW50QFdl
YkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZgppbmRleCAxNDI1MmUxYWFhYTY4YmQyZDMxMjEyZTI5ZmY3ZjMwZGYzODcxOTMwLi44YjM4ZGFi
NjVmN2YzNzgxMDc2ZjNhYzNkNTdmNTAyYzYzMDZkYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDRkxpdGUuZGVmCkBAIC0yMzQsMyArMjM0LDcgQEAgRVhQT1JUUwogICAgICAgICA/d2lsbERl
dGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhYWgogICAgICAg
ICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3JlQEBRQkU/QVY/JFBhc3NSZWZQdHJAVk5v
ZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OQFoKICAgICAgICAgP3NlbGVjdGlvblN0YXJ0
SGFzTWFya2VyRm9yQEVkaXRvckBXZWJDb3JlQEBRQkVfTlc0TWFya2VyVHlwZUBEb2N1bWVudE1h
cmtlckAyQEhIQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
QERvY3VtZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdERp
ZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1l
bnRAMkBAWgorICAgICAgICA/d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1
bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCisgICAgICAgID93ZWJraXREaWRFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYzY2NzkxMDIwZjcwMzE3MWFlNTczZGEwYWI4
YjA2OTVmNTc0MjUwNC4uZmUyOTdlNTRmYTE0N2MxZTdjYzZkOTNhYTdkZjM4NGEzOTVkMDJkMCAx
MDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0xMzEsNiArMTMxLDEwIEBAIF9aTjdXZWJDb3Jl
MjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMThpc1NoYWRvd0RPTUVuYWJsZWRFOwogX1pOSzdXZWJD
b3JlOERvY3VtZW50MTNub2Rlc0Zyb21SZWN0RWlpampqamJiOwogX1pON1dlYkNvcmU0dG9KU0VQ
TjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU184Tm9kZUxpc3RFOwog
X1pOSzdXZWJDb3JlNkVkaXRvcjI2c2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3JFTlNfMTREb2N1
bWVudE1hcmtlcjEwTWFya2VyVHlwZUVpaTsKK19aTjdXZWJDb3JlOERvY3VtZW50MzN3ZWJraXRE
aWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnRFUE5TXzdFbGVtZW50RQorX1pON1dlYkNvcmU4RG9j
dW1lbnQzNHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRFUE5TXzdFbGVtZW50RQor
X1pON1dlYkNvcmU4RG9jdW1lbnQzNHdlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnRF
UE5TXzdFbGVtZW50RQorX1pON1dlYkNvcmU4RG9jdW1lbnQzNXdlYmtpdFdpbGxFbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50RVBOU183RWxlbWVudEUKIF9aTjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9i
amVjdDZzX2luZm9FOwogbG9jYWw6CiBfWio7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY3NWExOWQ2NGIzNjc5N2RjZTFlMWRlYjhhODcwYWFi
NWNmNDRhYy4uMWUzYzBjZjY2OTI0OTY0ZjlhMWUxMDQwYjlkNjk3ZTY1ODBkMmIxMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDEyLTA0LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAg
ICAgIGFwcGxlLmNvbSB0b3AgbmF2aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVy
aW5nIGZ1bGwgc2NyZWVuIGV4aXQgYW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBMYXlvdXRUZXN0Q29udHJvbGxlciBmdW5j
dGlvbiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCksIHdoaWNoIGFsbG93cyBzY3Jp
cHRzIHRvCisgICAgICAgIGRpc2FibGUgdGhlIHN0YW5kYXJkIGZ1bGwgc2NyZWVuIGJlaGF2aW9y
LCBhbmQgcmVwbGFjZSBpdCB3aXRoIGV4cGxpY2l0IGNhbGxiYWNrcyB0byB0aGUgcmVsZXZhbnQK
KyAgICAgICAgRG9jdW1lbnQgbWV0aG9kcyBmcm9tIHdpdGhpbiB0aGUgc2NyaXB0LiAgVGhpcyBh
bGxvd3Mgc3VidGxlIHRpbWluZyBidWdzIHRvIGJlIGNvbnNpc3RlbnRseSByZXByb2R1Y2VkCisg
ICAgICAgIGZyb20gd2l0aGluIExheW91dFRlc3RzLgorCisgICAgICAgIEFkZCB0aGUgbmV3IG1l
dGhvZHMsIGhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpIGFuZCBzZXRIYXNDdXN0b21GdWxs
U2NyZWVuQmVoYXZpb3IoKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3JDYWxs
YmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2
aW9yKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEhhc0N1c3RvbUZ1bGxTY3Jl
ZW5CZWhhdmlvcik6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpoYXNDdXN0
b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpoYXNDdXN0
b21GdWxsU2NyZWVuQmVoYXZpb3IpOgorCisgICAgICAgIFF1ZXJ5IHRoZSBuZXcgbWV0aG9kcyBi
ZWZvcmUgY2FsbGluZyB3aWxsL2RpZC9FbnRlci9FeGl0RnVsbFNjcmVlbjoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3
SG9zdDo6ZW50ZXJGdWxsU2NyZWVuTm93KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpleGl0RnVs
bFNjcmVlbk5vdyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06
CisgICAgICAgICgtW1VJRGVsZWdhdGUgd2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
Omxpc3RlbmVyOl0pOgorICAgICAgICAoLVtVSURlbGVnYXRlIHdlYlZpZXc6ZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50Omxpc3RlbmVyOl0pOgorCiAyMDEyLTA0LTA2ICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRW5hYmxlIHdlYmtpdF91bml0X3Rlc3Rz
IGZvciBjb21taXQgcXVldWUgYW5kIEVXUyB3aGlsZSB0cmFja2luZyBmYWlsdXJlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGU1MWQwZWU3
NGUwMmE2ODcyOWE3NjYyN2RmYzMyMmZhZDMxY2FjODkuLmI3Y2EzNmQ0NWZhNjEzZjBlYjg5NWFj
NmRmYzFhMDI1ZTAwMjdhZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6Okxh
eW91dFRlc3RDb250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb24K
ICAgICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQogICAgICwgbV9zaG91bGRTdGF5
T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZChmYWxzZSkKICAgICAsIG1fYXJlRGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQoZmFsc2UpCisgICAgLCBtX2N1
c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihmYWxzZSkgCiAgICAgLCBtX3Rlc3RQYXRoT3JVUkwodGVz
dFBhdGhPclVSTCkKICAgICAsIG1fZXhwZWN0ZWRQaXhlbEhhc2goZXhwZWN0ZWRQaXhlbEhhc2gp
CiB7CkBAIC0yMjQyLDYgKzIyNDMsMTggQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0VGV4dERpcmVj
dGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW4KICAgICB9
CiAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKK30KKworc3Rh
dGljIEpTVmFsdWVSZWYgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50ID09IDEp
IHsKKyAgICAgICAgYm9vbCBoYXNDdXN0b21CZWhhdmlvciA9IEpTVmFsdWVUb0Jvb2xlYW4oY29u
dGV4dCwgYXJndW1lbnRzWzBdKTsKKyAgICAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgICAgIGNvbnRyb2xsZXItPnNldEhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcihoYXNDdXN0b21CZWhhdmlvcik7CisgICAgfQorCisgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCiBzdGF0aWMgdm9pZCBsYXlvdXRUZXN0
Q29udHJvbGxlck9iamVjdEZpbmFsaXplKEpTT2JqZWN0UmVmIG9iamVjdCkKQEAgLTI0NjEsNiAr
MjQ3NCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNG
dW5jdGlvbnMoKQogICAgICAgICB7ICJmb2N1c1dlYlZpZXciLCBmb2N1c1dlYlZpZXdDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRCYWNraW5nU2NhbGVGYWN0b3IiLCBzZXRCYWNraW5n
U2NhbGVGYWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHBy
ZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNj
cmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAwLCAwLCAwIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBlMmZhZTdlYzgyYjdhNmYxNzExNWMwYjlj
ODU3ZDY3YjFjZTY1ZTQ2Li5mNWVhMjQyZjVjMGExNGFlOGYyMDUwZWRhZDgwNGVlOGM1NTA5MjBj
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTM2
MSw2ICszNjEsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKEpTU3Ry
aW5nUmVmKTsKIAorICAgIC8vIEN1c3RvbSBmdWxsIHNjcmVlbiBiZWhhdmlvci4KKyAgICB2b2lk
IHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihib29sIHZhbHVlKSB7IG1fY3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yID0gdmFsdWU7IH0KKyAgICBib29sIGhhc0N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOyB9CisK
IHByaXZhdGU6CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRl
c3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCk7CiAKQEAg
LTQxMyw2ICs0MTcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlOwogICAgIGJvb2wgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9h
ZDsKICAgICBib29sIG1fYXJlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0ln
bm9yZWQ7CisgICAgYm9vbCBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAogICAgIHN0ZDo6
c3RyaW5nIG1fYXV0aGVudGljYXRpb25Vc2VybmFtZTsKICAgICBzdGQ6OnN0cmluZyBtX2F1dGhl
bnRpY2F0aW9uUGFzc3dvcmQ7IApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDIyNjU3OGIyNDU1ZGNlODI5MjFm
YzljMGM0ZGY1ZGJlMmE4NDFiOGEuLjk5NzA4YTVlODNmOWYwMTEwYzRkYmIxMGFjODA2OTAwMjEx
YmQyNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTI1MSw2ICsyNTEsNyBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0
aG9kKCJlbmFibGVGaXhlZExheW91dE1vZGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmVuYWJs
ZUZpeGVkTGF5b3V0TW9kZSk7CiAgICAgYmluZE1ldGhvZCgic2V0Rml4ZWRMYXlvdXRTaXplIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRGaXhlZExheW91dFNpemUpOwogICAgIGJpbmRNZXRo
b2QoInNlbGVjdGlvbkFzTWFya3VwIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZWxlY3Rpb25B
c01hcmt1cCk7CisgICAgYmluZE1ldGhvZCgic2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9y
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3Ip
OwogICAgIAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5r
bm93biBtZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRl
c3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC02NzQsNiArNjc1LDcgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIG1fd29ya1F1ZXVlLnJlc2V0KCk7CiAg
ICAgbV90YXNrTGlzdC5yZXZva2VBbGwoKTsKICAgICBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhh
bmRsaW5nQmVmb3JlVW5sb2FkID0gZmFsc2U7CisgICAgbV9oYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IgPSBmYWxzZTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9jYXRpb25D
aGFuZ2VEb25lKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDUzNjc3ZTJkYWM2YTgyNmU4Y2QxYjI5NTc3Y2MxZmZm
MGU0M2FhMTEuLjY0YWE1YTI5NTdmMjNmNDUxY2MyNmJhMTBmMjQ4YWFiZTI4YWQzN2EgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaApAQCAtNDkxLDYgKzQ5MSw5IEBAIHB1YmxpYzoKICAgICBib29sIHRlc3RSZXBhaW50KCkg
Y29uc3QgeyByZXR1cm4gbV90ZXN0UmVwYWludDsgfQogICAgIGJvb2wgc3dlZXBIb3Jpem9udGFs
bHkoKSBjb25zdCB7IHJldHVybiBtX3N3ZWVwSG9yaXpvbnRhbGx5OyB9CiAKKyAgICB2b2lkIHNl
dEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihib29sIGZsYWcpIHsgbV9oYXNDdXN0b21GdWxs
U2NyZWVuQmVoYXZpb3IgPSBmbGFnOyB9CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2hhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQor
CiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSB3ZWJ2aWV3IGRlbGVnYXRlIHdoZW4gdGhlIHRvcGxldmVs
IGZyYW1lIGxvYWQgaXMgZG9uZS4KICAgICB2b2lkIGxvY2F0aW9uQ2hhbmdlRG9uZSgpOwogCkBA
IC03MDUsNiArNzA4LDEwIEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZp
ZXcgbV9hdWRpb0RhdGE7CiAKICAgICBib29sIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxp
bmdCZWZvcmVVbmxvYWQ7CisKKyAgICAvLyBJZiB0cnVlLCBjYWxscyB0byBXZWJWaWV3SG9zdDo6
ZW50ZXIvZXhpdEZ1bGxTY3JlZW5Ob3cgd2lsbCBub3QgcmVzdWx0IGluIAorICAgIC8vIGNhbGxz
IHRvIERvY3VtZW50Ojp3aWxsL2RpZC9FbnRlci9FeGl0RnVsbFNjcmVlbi4KKyAgICBib29sIG1f
aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOwogfTsKIAogI2VuZGlmIC8vIExheW91dFRlc3RD
b250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmNwcAppbmRleCBiM2U5ZGRhMDE2NDkwMGQwZGVhODllMWM3N2FjNzhkNTMwOWExZGFjLi42ZTQ1
MzIwMDcwMTdkZTUzZDUzZTAyMmRiMzFkYWI2MjlmZmEwMzQ4IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNjYyLDEyICsxNjYyLDE4IEBA
IHZvaWQgV2ViVmlld0hvc3Q6OnNldEFkZHJlc3NCYXJVUkwoY29uc3QgV2ViVVJMJikKIAogdm9p
ZCBXZWJWaWV3SG9zdDo6ZW50ZXJGdWxsU2NyZWVuTm93KCkKIHsKKyAgICBpZiAobGF5b3V0VGVz
dENvbnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpCisgICAgICAgIHJl
dHVybjsKKwogICAgIHdlYlZpZXcoKS0+d2lsbEVudGVyRnVsbFNjcmVlbigpOwogICAgIHdlYlZp
ZXcoKS0+ZGlkRW50ZXJGdWxsU2NyZWVuKCk7CiB9CiAKIHZvaWQgV2ViVmlld0hvc3Q6OmV4aXRG
dWxsU2NyZWVuTm93KCkKIHsKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIHdlYlZpZXco
KS0+d2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgd2ViVmlldygpLT5kaWRFeGl0RnVsbFNjcmVl
bigpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQppbmRleCBlODU1Nzkx
ZGIzZjcxYmJhYjNjZmVmMjM4MTA4MTgzZTZhYjZlOTEwLi44NDdhNWZiNGVlYmE2NzFiNjRlMmI4
Y2JiNTczZTMyMDZjYjQ2NTdkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5t
bQpAQCAtMjYwLDcgKzI2MCw4IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2lu
Z0luZm8gPSBuaWw7CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudCBsaXN0ZW5lcjooTlNPYmpl
Y3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKIHsKLSAgICBbc2VsZiBwZXJm
b3JtU2VsZWN0b3I6QHNlbGVjdG9yKGVudGVyRnVsbFNjcmVlbldpdGhMaXN0ZW5lcjopIHdpdGhP
YmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTowXTsKKyAgICBpZiAoIWdMYXlvdXRUZXN0Q29udHJv
bGxlci0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpCisgICAgICAgIFtzZWxmIHBlcmZv
cm1TZWxlY3RvcjpAc2VsZWN0b3IoZW50ZXJGdWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9i
amVjdDpsaXN0ZW5lciBhZnRlckRlbGF5OjBdOwogfQogCiAtICh2b2lkKWV4aXRGdWxsU2NyZWVu
V2l0aExpc3RlbmVyOihOU09iamVjdDxXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXI+KilsaXN0ZW5l
cgpAQCAtMjcxLDcgKzI3Miw4IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2lu
Z0luZm8gPSBuaWw7CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50IGxpc3RlbmVyOihOU09iamVj
dDxXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXI+KilsaXN0ZW5lcgogewotICAgIFtzZWxmIHBlcmZv
cm1TZWxlY3RvcjpAc2VsZWN0b3IoZXhpdEZ1bGxTY3JlZW5XaXRoTGlzdGVuZXI6KSB3aXRoT2Jq
ZWN0Omxpc3RlbmVyIGFmdGVyRGVsYXk6MF07CisgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAgICBbc2VsZiBwZXJmb3Jt
U2VsZWN0b3I6QHNlbGVjdG9yKGV4aXRGdWxsU2NyZWVuV2l0aExpc3RlbmVyOikgd2l0aE9iamVj
dDpsaXN0ZW5lciBhZnRlckRlbGF5OjBdOwogfQogCiAtIChCT09MKXdlYlZpZXc6KFdlYlZpZXcg
Kil3ZWJWaWV3IGRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjooRE9NRWxlbWVudCAqKWVsZW1l
bnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKaW5kZXggMGM4
MWE0MWI5YTYxNzEyZWUyNjhlOTQyNDJmMzdiMDlkMzUzZWY3MS4uZDhkZWY0ZGVlZTljYzg2Zjlk
NjhmZTNkZDNmNDljYzg1MDBiMTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0
Q29udHJvbGxlci5pZGwKQEAgLTE0NCw2ICsxNDQsOSBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAg
dm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5KCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBwbGF0Zm9ybU5hbWU7CisKKyAgICAgICAgLy8gQ29udHJvbCBmdWxsIHNjcmVl
biBiZWhhdmlvci4KKyAgICAgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3Io
aW4gYm9vbGVhbiB2YWx1ZSk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmlu
ZGV4IDM3YjIwNjQ5NzA3ZGE1OTkwMTUxZWE0MGYzMmYwNWI1NzhhMTM0M2MuLjZiMWZhMmNhMzJh
ZjQ0Nzc1MGQ5NTM3M2NlYWEzMzhmYTFjNTQwOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAK
QEAgLTEyMDksMTYgKzEyMDksMjIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnUKIHsKICAgICBp
ZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3Vs
ZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgp
XG4iKTsKLSAgICBXS0J1bmRsZVBhZ2VXaWxsRW50ZXJGdWxsU2NyZWVuKHBhZ2VSZWYpOwotICAg
IFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKworICAgIGlmICghSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPmhhc0N1c3RvbUZ1
bGxTY3JlZW5CZWhhdmlvcigpKSB7CisgICAgICAgIFdLQnVuZGxlUGFnZVdpbGxFbnRlckZ1bGxT
Y3JlZW4ocGFnZVJlZik7CisgICAgICAgIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVlbihw
YWdlUmVmKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlTm9kZUhhbmRs
ZVJlZiBlbGVtZW50UmVmKQogewogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5
b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKICAg
ICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJl
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKVxuIik7Ci0gICAgV0tCdW5kbGVQYWdlV2lsbEV4aXRG
dWxsU2NyZWVuKHBhZ2VSZWYpOwotICAgIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKHBh
Z2VSZWYpOworCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENv
bnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpIHsKKyAgICAgICAgV0tC
dW5kbGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAgICAgICBXS0J1bmRsZVBh
Z2VEaWRFeGl0RnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpiZWdhbkVudGVyRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVjdCwg
V0tSZWN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggYTM5NDdiZGM0ZTYwY2JkMmYxMjU5ZDZk
NGRlODMyZDFiMjdlOWZlNC4uYjUzOTJmZGUwNmNhZDU5NTc2M2IyNmE0N2RmNGNjZjMyNWJhZGEy
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC0xMjEsNiArMTIxLDcgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLy8gRnVsbCBTY3JlZW4gY2xpZW50CiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgV0tGdWxsU2Ny
ZWVuS2V5Ym9hcmRSZXF1ZXN0VHlwZSk7CisgICAgc3RhdGljIHZvaWQgc2V0SGFzQ3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yKFdLQnVuZGxlUGFnZVJlZiwgYm9vbCB2YWx1ZSk7CiAgICAgc3RhdGlj
IHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
Tm9kZUhhbmRsZVJlZiBlbGVtZW50KTsKICAgICBzdGF0aWMgdm9pZCBleGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudCk7
CiAgICAgc3RhdGljIHZvaWQgYmVnYW5FbnRlckZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCBX
S1JlY3QgaW5pdGlhbEZyYW1lLCBXS1JlY3QgZmluYWxGcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGUzMWFjODczMGQ1OWFkNzkwZTIxMzAzNWM4YzhmMWRjZjk5Zjk0OTgu
LjA3NTg0YmZkYjczNjY3YjE0ZDBkOTY0ZDc3YzM4ZDEzYzQ0Y2EyYmIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OkxheW91dFRlc3RDb250cm9sbGVyKCkKICAgICAsIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkKGZh
bHNlKQogICAgICwgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUoZmFsc2UpCiAgICAgLCBtX2ds
b2JhbEZsYWcoZmFsc2UpCisgICAgLCBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihmYWxzZSkK
IHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApp
bmRleCAwYmVlZGY0YTJmNDI2ZjNiNTI4MWZkYTNkYWMwMGMwNjJiYjY1ODFmLi5iNDZkYTIxNWM3
YmViMmMxZjliYjBhNzdkNmMwMDgzNGZmNzY4YzdhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CkBAIC0xOTYsNiArMTk2LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJl
bmNlKEpTU3RyaW5nUmVmIHByZWZlcmVuY2UsIGJvb2wgdmFsdWUpOwogCisgICAgLy8gQ3VzdG9t
IGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJl
aGF2aW9yKGJvb2wgdmFsdWUpIHsgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IgPSB2YWx1ZTsg
fQorICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4g
bV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBwbGF0Zm9ybU5hbWUoKTsKIAogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJp
bmdSZWYgc3RhdGUpOwpAQCAtMjMxLDYgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Bv
bGljeURlbGVnYXRlUGVybWlzc2l2ZTsKICAgICAKICAgICBib29sIG1fZ2xvYmFsRmxhZzsKKyAg
ICBib29sIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOwogCiAgICAgUGxhdGZvcm1UaW1lclJl
ZiBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZWEwYjhjNTAyMGM2NDhj
MDI5OTgzNGNkM2U5M2ZmODVhMGQzNzY1Li42MWYwOTg4YTk0M2Y2ZTljZTMzZWYyNDIyZTYyOWJi
MmQ0ZTYyMjg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMDQgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgYXBwbGUuY29tIHRvcCBuYXZpZ2F0aW9u
IGJhciBhcHBlYXJzIGluc2lkZSB2aWRlbyBkdXJpbmcgZnVsbCBzY3JlZW4gZXhpdCBhbmltYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5p
bWF0aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29udGV4
dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorCiAyMDEyLTA0LTA2ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkLCByZW1vdmUgYSBw
YXNzaW5nIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250
ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNhNTNmM2FlMjRlMTA2NTMwMWNlMjRjMGJm
NTc5ZTk1YzZkZTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9m
dWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4g
YSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIgc3Rh
Y2tpbmcgY29udGV4dC4gQWZ0ZXIgZW50ZXJpbmcgZnVsbCBzY3JlZW4gbW9kZSwgb25seSBhIGJs
YWNrIGJveCBzaG91bGQgYmUgdmlzaWJsZS4gQ2xpY2sgZ28gZnVsbCBzY3JlZW4gdG8gcnVuIHRo
ZSB0ZXN0LgorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNv
bnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGI1YmJhYmM5M2EyMzJjMmJjNTZmMDllZWQ4YjZhYmZk
MDIwMDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw2OCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgICAgIHZhciBydW5QaXhlbFRlc3RzID0gdHJ1ZTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgICAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB0aGUg
ZnVsbCBzY3JlZW4gQVBJIGlzIG5vdCBlbmFibGVkIG9yIGlzIG1pc3Npbmc6CisgICAgICAgICAg
ICAgICAgaWYgKEVsZW1lbnQucHJvdG90eXBlLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuID09IHVu
ZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBsb2dSZXN1bHQoZmFsc2UsICJFbGVtZW50
LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiA9PSB1bmRlZmluZWQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudEFuZEVuZChkb2N1bWVudCwgJ3dlYmtpdGZ1bGxz
Y3JlZW5jaGFuZ2UnKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuV2l0aEtleURvd24oZ29GdWxs
U2NyZWVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGdvRnVsbFNjcmVlbigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IodHJ1ZSk7CisgICAgICAgICAgICAg
ICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvJyk7CisgICAgICAg
ICAgICAgICAgdmlkZW8ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAg
ICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndl
YmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAg
ICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI29uZSB7Cisg
ICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgICAg
IHRvcDogNTBweDsKKyAgICAgICAgICAgICAgICBsZWZ0OiA1MHB4OworICAgICAgICAgICAgICAg
IHotaW5kZXg6IDE7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgI29uZSwgI3R3byB7CisgICAgICAgICAgICAgICAgb3Bh
Y2l0eTogMC41OworICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgw
KTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2s6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50
KGxlZnQsIGFscGhhIDAlLCB3aGl0ZSAxMDAlKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LWZp
bHRlcjogY29udHJhc3QoMTAwJSk7CisgICAgICAgICAgICAgICAgY2xpcDpyZWN0KDBweCwxMDBw
eCwxMDBweCwwcHgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI3plcm8geworICAgICAg
ICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgICAgICB6LWluZGV4OiAw
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI3ZpZGVvIHsKKyAgICAgICAgICAgICAgICB3
aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9z
dHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJpbml0KCkiPgorICAgICAgICA8
ZGl2PlRoaXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFj
a2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxpbmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4
dC4gIAorICAgICAgICAgICAgIEFmdGVyIGVudGVyaW5nIGZ1bGwgc2NyZWVuIG1vZGUsIG9ubHkg
YSBibGFjayBib3ggc2hvdWxkIGJlIHZpc2libGUuCisgICAgICAgICAgICAgQ2xpY2sgPGJ1dHRv
biBvbmNsaWNrPSJnb0Z1bGxTY3JlZW4oKSI+Z28gZnVsbCBzY3JlZW48L2J1dHRvbj4gdG8gcnVu
IHRoZSB0ZXN0LjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJvbmUiPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJ6ZXJvIj4KKyAgICAgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iPjwvdmlkZW8+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNv
bnRleHQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDBjMTcwOTJiZTY0OGNhZmNiYTIxNjcxZDFkMWE0ZDZhN2Q3N2NhNgpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgOTc0Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZ
VjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVSN1QKelhAPHMwbUtOc2JtWl8lWjF9U09n
IyVaYk0kcmhHck52MzhkTWg1cFpLSSQ/c3M0bnF6YVNXK29lMHpOKD8qUmlJCno3UT5eei1fS2R7
Zm9vUzZUYTNOS2lrPDBjX3hATTJhMG48a0clenFTMFR+aEU3TyVQNGtPVU04U1hueFA7cW5SJgp6
M2M+O2tsM051KWlsTCRgOW56IW4oQ2B9I3BWOU8mbm08TyVodGN3SncwOzxeQTBlJVooZX1ZO2B2
fSYpOUJtKHMKend2Ul5KTjJCZWQoZX19M2ApSVUlR309QV9qWEk2QzRAY1hGcXdQYjtgMEhyPGMo
aT55K0NDbV9BQ0k8PU44ODd2Cno/Yz5xKkBvNCphdzB8KCNLTnteSGpyTmE1YCR2IV5IPjNUZDtu
cUwwK2ZjfjVldHE0IUdUPFVGMjJXUSVtdnY0RgpGTyNwdS1PVDdSOQoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGIyNjc5NGUy
ZTU2MDNkYmU1NWNmODhkZGY4NDBkMGM2YmNkOGZiOGYuLmVmM2QzZTk0ZjQ1MDEzMzIwZmE5NzE2
YzYwMWM5YjhlY2QzYThjNjUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxMi0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBhcHBsZS5jb20gdG9wIG5hdmlnYXRpb24gYmFyIGFwcGVhcnMgaW5z
aWRlIHZpZGVvIGR1cmluZyBmdWxsIHNjcmVlbiBleGl0IGFuaW1hdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMwOTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXI6CisKIDIwMTItMDQtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIEZpeCB0aGUgR1RLKyBkZWJ1ZyBidWlsZC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136245</attachid>
            <date>2012-04-09 09:57:09 -0700</date>
            <delta_ts>2012-04-19 09:58:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83095-20120409095708.patch</filename>
            <type>text/plain</type>
            <size>30361</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA5OWRlNDg3MWU3YWEz
M2ZlZDMzOGZlZjBkODAyM2FiNWY0NTNlOS4uZmM5NzFhZDFjM2Q3ZTczNjJkYmEwOWJhNmY2ZGU0
MTg2MmRjZjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC5odG1sCisKKyAgICAgICAgT25seSB0ZWxsIGFuY2VzdG9ycyBvZiB0aGUgZnVsbCBzY3Jl
ZW4gZWxlbWVudCB0aGF0IHRoZXkgYXJlIG5vIGxvbmdlciBhbmNlc3RvcnMgb25jZQorICAgICAg
ICB0aGUgZnVsbCBzY3JlZW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKworICAgICAgICBUbyBmYWNpbGl0YXRlIHdy
aXRpbmcgcmVwcm9kdWNpYmxlIExheW91dFRlc3RzLCBleHBvc2Ugd2Via2l0V2lsbC9EaWQvRW50
ZXIvRXhpdEZ1bGxTY3JlZW4KKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIG9iamVjdCwgc28g
c2NyaXB0cyBjYW4gY2FsbCB0aGVtIGV4cGxpY2l0bHk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OndlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAxMi0wNC0wOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9mIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5jYXRlZ29yeSwgdXNlICBXZWJJbnNwZWN0b3IuUmVzb3VyY2UudHlwZSBpbnN0ZWFkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IGI3NGEzMzBlYTZhNzFlYTc3ZDU3YzBiN2RlZTA5MmQ2MmUxZTRjNWIuLmRkOTZk
NTdmZjI2MmU1MTM5NmMxZDViZDQyNDAzMzE0Y2Q3YzVjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBhcHBsZS5jb20gdG9wIG5hdmlnYXRpb24gYmFyIGFwcGVhcnMgaW5zaWRlIHZpZGVv
IGR1cmluZyBmdWxsIHNjcmVlbiBleGl0IGFuaW1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IFdlYkNvcmUgc3ltYm9scyBuZWVkZWQg
YnkgRHVtcFJlbmRlclRyZWUgdG8gZXhwb3J0ZWQgc3ltYm9sIGxpc3QuCisKKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEy
LTA0LTA3ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDTWFrZV0gQ2xlYW51cCBXVEYgaW5jbHVkZSBkaXJlY3RvcmllcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZWM1ZWZmY2E1MWEyYzY3ZTlkYmY3ZjhjNzk2NGVmZDMyNWQ3ZjQ1Zi4uNmEz
NWFlNDVmYTAxYzNkYWFhNGMyNGY1MTk4M2U0YmRjZWE3NzRmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC01NDQ0LDE5ICs1NDQ0LDE2IEBAIHZvaWQgRG9jdW1lbnQ6OndlYmtpdFdpbGxF
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiAgICAgaWYgKCFtX2Z1bGxTY3JlZW5F
bGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWF0dGFjaGVkKCkgfHwgaW5QYWdl
Q2FjaGUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+c2V0
Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJp
ZXMoZmFsc2UpOwotICAgIAogICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPndpbGxTdG9wQmVpbmdG
dWxsc2NyZWVuRWxlbWVudCgpOwogfQogCiB2b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiB7Ci0gICAgaWYgKCFhdHRhY2hlZCgpIHx8IGlu
UGFnZUNhY2hlKCkpCisgICAgaWYgKCFtX2Z1bGxTY3JlZW5FbGVtZW50KQogICAgICAgICByZXR1
cm47CiAKKyAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT5zZXRDb250YWluc0Z1bGxTY3JlZW5FbGVt
ZW50T25BbmNlc3RvcnNDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhmYWxzZSk7CisKICAgICBtX2Fy
ZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKG1fZnVsbFNj
cmVlblJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDg3MmJj
ZmVmNmU1YTczNGY1MmNlMzE1OGY4OTZmYWE5NDA3ODU4ZDQuLjg2MWU1ZjcxNDA5YTkxNzU4NDQ0
YmM1ZmU5ZGMzM2VjMDRjZTFiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTg5Niw0ICs4OTYsMzMgQEAgYm9vbCBJbnRlcm5hbHM6Omhhc0dyYW1tYXJNYXJrZXIoRG9j
dW1lbnQqIGRvY3VtZW50LCBpbnQgZnJvbSwgaW50IGxlbmd0aCwgRXhjZXAKICAgICByZXR1cm4g
ZG9jdW1lbnQtPmZyYW1lKCktPmVkaXRvcigpLT5zZWxlY3Rpb25TdGFydEhhc01hcmtlckZvcihE
b2N1bWVudE1hcmtlcjo6R3JhbW1hciwgZnJvbSwgbGVuZ3RoKTsKIH0KIAorI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKK3ZvaWQgSW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIGRvY3VtZW50LT53ZWJraXRXaWxs
RW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30KKwordm9pZCBJbnRlcm5hbHM6
OndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBF
bGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBkb2N1bWVudC0+d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50
KTsKK30KKwordm9pZCBJbnRlcm5hbHM6OndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZG9j
dW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudC0+d2Via2l0V2lsbEV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30KKwordm9pZCBJbnRlcm5hbHM6OndlYmtpdERp
ZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1lbnQqIGVs
ZW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIGRvY3Vt
ZW50LT53ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDZiMjBiOGM3MDViYzI4YzQz
MTcyOTRhZmNmNzM4YzM1ZWQ3MWQwZWMuLmUzNWUwNGNkNTkzNmExNWVkZTU4ZTNlN2IyZWZjYTA2
Yzk5YTljMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTYyLDYgKzE2Miwx
MyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCkgY29uc3Q7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICB2b2lkIHdlYmtpdFdp
bGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOworICAgIHZv
aWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCosIEVsZW1lbnQq
KTsKKyAgICB2b2lkIHdlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQq
LCBFbGVtZW50Kik7CisgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
RG9jdW1lbnQqLCBFbGVtZW50Kik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJ
bnRlcm5hbHMoRG9jdW1lbnQqKTsKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSos
IGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAxNWNlMGEzYWMxOGRmYTRm
Y2ZiZDA5NTgyOTBhZDI2MDFlNzRkM2NhLi5hNTFmN2FhMDAwYjI2M2JkNmU2NDk2ZjU3ZjM2ZDc4
NWU5NDA0MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xMzYsNiAr
MTM2LDEzIEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNU
T1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICAgICAgW0NvbmRpdGlv
bmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1bWVudHMoKTsKKwor
I2lmIGRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEVfRlVMTFNDUkVFTl9B
UEkKKyAgICAgICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKKyAgICAgICAgdm9pZCB3ZWJr
aXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBF
bGVtZW50IGVsZW1lbnQpOworICAgICAgICB2b2lkIHdlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7CisgICAg
ICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGluIERvY3VtZW50IGRv
Y3VtZW50LCBpbiBFbGVtZW50IGVsZW1lbnQpOworI2VuZGlmCiAgICAgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIuZGVmCmluZGV4IDBlYWIxY2NmNTA5NGE1NjU2YTRiOTY4ZTcyNWY4YjQ4YTgyMTQ2
NWUuLjFhN2ViN2FjODBhMWMyYzliNDRjNDMwMjAwMWM5MjA5YTYwNmVjODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYKQEAgLTI0MiwzICsyNDIsNyBAQCBFWFBPUlRTCiAgICAgICAgID93aWxsRGV0
YWNoUGFnZUBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBAVUFFWFhaCiAgICAgICAg
ID9ub2Rlc0Zyb21SZWN0QERvY3VtZW50QFdlYkNvcmVAQFFCRT9BVj8kUGFzc1JlZlB0ckBWTm9k
ZUxpc3RAV2ViQ29yZUBAQFdURkBASEhJSUlJX04wQFoKICAgICAgICAgP3NlbGVjdGlvblN0YXJ0
SGFzTWFya2VyRm9yQEVkaXRvckBXZWJDb3JlQEBRQkVfTlc0TWFya2VyVHlwZUBEb2N1bWVudE1h
cmtlckAyQEhIQFoKKyAgICAgICAgP3dlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
QERvY3VtZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVtZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdERp
ZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1l
bnRAMkBAWgorICAgICAgICA/d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1
bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCisgICAgICAgID93ZWJraXREaWRFeGl0
RnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1lbnRAMkBA
WgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDE0MjUyZTFhYWFhNjhiZDJk
MzEyMTJlMjlmZjdmMzBkZjM4NzE5MzAuLjhiMzhkYWI2NWY3ZjM3ODEwNzZmM2FjM2Q1N2Y1MDJj
NjMwNmRhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTIzNCwzICsy
MzQsNyBAQCBFWFBPUlRTCiAgICAgICAgID93aWxsRGV0YWNoUGFnZUBGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXJAV2ViQ29yZUBAVUFFWFhaCiAgICAgICAgID9ub2Rlc0Zyb21SZWN0QERvY3VtZW50
QFdlYkNvcmVAQFFCRT9BVj8kUGFzc1JlZlB0ckBWTm9kZUxpc3RAV2ViQ29yZUBAQFdURkBASEhJ
SUlJX05AWgogICAgICAgICA/c2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3JARWRpdG9yQFdlYkNv
cmVAQFFCRV9OVzRNYXJrZXJUeXBlQERvY3VtZW50TWFya2VyQDJASEhAWgorICAgICAgICA/d2Vi
a2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBB
VkVsZW1lbnRAMkBAWgorICAgICAgICA/d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dEBEb2N1bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCisgICAgICAgID93ZWJraXRX
aWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50QERvY3VtZW50QFdlYkNvcmVAQFFBRVhQQVZFbGVt
ZW50QDJAQFoKKyAgICAgICAgP3dlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1
bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpp
bmRleCBjNjY3OTEwMjBmNzAzMTcxYWU1NzNkYTBhYjhiMDY5NWY1NzQyNTA0Li5mOWZhMmVjN2Y0
MDczOWEwZTg4MWRkNDIzZTMxNmEzNWY5Y2MyYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
QEAgLTEzMSw2ICsxMzEsMTAgQEAgX1pON1dlYkNvcmUyMlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMx
OGlzU2hhZG93RE9NRW5hYmxlZEU7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQxM25vZGVzRnJvbVJl
Y3RFaWlqampqYmI7CiBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNE
T01HbG9iYWxPYmplY3RFUE5TXzhOb2RlTGlzdEU7CiBfWk5LN1dlYkNvcmU2RWRpdG9yMjZzZWxl
Y3Rpb25TdGFydEhhc01hcmtlckZvckVOU18xNERvY3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRWlp
OworX1pON1dlYkNvcmU4RG9jdW1lbnQzM3dlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dEVQTlNfN0VsZW1lbnRFOworX1pON1dlYkNvcmU4RG9jdW1lbnQzNHdlYmtpdERpZEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnRFUE5TXzdFbGVtZW50RTsKK19aTjdXZWJDb3JlOERvY3VtZW50MzR3
ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50RVBOU183RWxlbWVudEU7CitfWk43V2Vi
Q29yZThEb2N1bWVudDM1d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRFUE5TXzdF
bGVtZW50RTsKIF9aTjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9iamVjdDZzX2luZm9FOwogbG9jYWw6
CiBfWio7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMjkzZmY5MmEwMjk2MWJlZDlhYWI0ZjBhMjI4ZWIyYjRjNGI0MTczNC4uZDIxYTY1MjNiYWJj
ZmU5MjEzNGE5YzgxMWYxM2YyYTFiMmU4ZjMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA0LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGFwcGxlLmNvbSB0b3AgbmF2
aWdhdGlvbiBiYXIgYXBwZWFycyBpbnNpZGUgdmlkZW8gZHVyaW5nIGZ1bGwgc2NyZWVuIGV4aXQg
YW5pbWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhIG5ldyBMYXlvdXRUZXN0Q29udHJvbGxlciBmdW5jdGlvbiwgc2V0SGFzQ3VzdG9tRnVs
bFNjcmVlbkJlaGF2aW9yKCksIHdoaWNoIGFsbG93cyBzY3JpcHRzIHRvCisgICAgICAgIGRpc2Fi
bGUgdGhlIHN0YW5kYXJkIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLCBhbmQgcmVwbGFjZSBpdCB3aXRo
IGV4cGxpY2l0IGNhbGxiYWNrcyB0byB0aGUgcmVsZXZhbnQKKyAgICAgICAgRG9jdW1lbnQgbWV0
aG9kcyBmcm9tIHdpdGhpbiB0aGUgc2NyaXB0LiAgVGhpcyBhbGxvd3Mgc3VidGxlIHRpbWluZyBi
dWdzIHRvIGJlIGNvbnNpc3RlbnRseSByZXByb2R1Y2VkCisgICAgICAgIGZyb20gd2l0aGluIExh
eW91dFRlc3RzLgorCisgICAgICAgIEFkZCB0aGUgbmV3IG1ldGhvZHMsIGhhc0N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcigpIGFuZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3JDYWxsYmFjayk6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6TGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcik6CisgICAgICAg
IChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3Ip
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxl
cik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKToKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3Ip
OgorCisgICAgICAgIFF1ZXJ5IHRoZSBuZXcgbWV0aG9kcyBiZWZvcmUgY2FsbGluZyB3aWxsL2Rp
ZC9FbnRlci9FeGl0RnVsbFNjcmVlbjoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6ZW50ZXJGdWxsU2NyZWVu
Tm93KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpleGl0RnVsbFNjcmVlbk5vdyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW1VJRGVsZWdh
dGUgd2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVyOl0pOgorICAgICAg
ICAoLVtVSURlbGVnYXRlIHdlYlZpZXc6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVy
Ol0pOgorCiAyMDEyLTA0LTA5ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luQ0UgYWZ0ZXIgcjExMzU3MC4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlNTFkMGVlNzRl
MDJhNjg3MjlhNzY2MjdkZmMzMjJmYWQzMWNhYzg5Li5iN2NhMzZkNDVmYTYxM2YwZWI4OTVhYzZk
ZmMxYTAyNWUwMDI3YWU0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlv
dXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uCiAg
ICAgLCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKICAgICAsIG1fc2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoZmFsc2UpCiAgICAgLCBtX2FyZURlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkKGZhbHNlKQorICAgICwgbV9jdXN0
b21GdWxsU2NyZWVuQmVoYXZpb3IoZmFsc2UpIAogICAgICwgbV90ZXN0UGF0aE9yVVJMKHRlc3RQ
YXRoT3JVUkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNoKQog
ewpAQCAtMjI0Miw2ICsyMjQzLDE4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFRleHREaXJlY3Rp
b25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAgfQog
CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCit9CisKK3N0YXRp
YyBKU1ZhbHVlUmVmIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKSB7
CisgICAgICAgIGJvb2wgaGFzQ3VzdG9tQmVoYXZpb3IgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRl
eHQsIGFyZ3VtZW50c1swXSk7CisgICAgICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9s
bGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOworICAgICAgICBjb250cm9sbGVyLT5zZXRIYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3IoaGFzQ3VzdG9tQmVoYXZpb3IpOworICAgIH0KKworICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAogc3RhdGljIHZvaWQgbGF5b3V0VGVzdENv
bnRyb2xsZXJPYmplY3RGaW5hbGl6ZShKU09iamVjdFJlZiBvYmplY3QpCkBAIC0yNDYxLDYgKzI0
NzQsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVu
Y3Rpb25zKCkKICAgICAgICAgeyAiZm9jdXNXZWJWaWV3IiwgZm9jdXNXZWJWaWV3Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0QmFja2luZ1NjYWxlRmFjdG9yIiwgc2V0QmFja2luZ1Nj
YWxlRmFjdG9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicHJlY2lzZVRpbWUiLCBwcmVj
aXNlVGltZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldEhhc0N1c3RvbUZ1bGxTY3Jl
ZW5CZWhhdmlvciIsIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvckNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgMCwgMCwgMCB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggZTJmYWU3ZWM4MmI3YTZmMTcxMTVjMGI5Yzg1
N2Q2N2IxY2U2NWU0Ni4uZjVlYTI0MmY1YzBhMTRhZThmMjA1MGVkYWQ4MDRlZThjNTUwOTIwYyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zNjEs
NiArMzYxLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmlu
Z1JlZik7CiAKKyAgICAvLyBDdXN0b20gZnVsbCBzY3JlZW4gYmVoYXZpb3IuCisgICAgdm9pZCBz
ZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvciA9IHZhbHVlOyB9CisgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQorCiBw
cml2YXRlOgogICAgIExheW91dFRlc3RDb250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0
UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwogCkBAIC00
MTMsNiArNDE3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFn
ZTsKICAgICBib29sIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQ7
CiAgICAgYm9vbCBtX2FyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25v
cmVkOworICAgIGJvb2wgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7CiAKICAgICBzdGQ6OnN0
cmluZyBtX2F1dGhlbnRpY2F0aW9uVXNlcm5hbWU7CiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50
aWNhdGlvblBhc3N3b3JkOyAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAyMjY1NzhiMjQ1NWRjZTgyOTIxZmM5
YzBjNGRmNWRiZTJhODQxYjhhLi45YWUzMWU4YmVjZGEwYmE0OTE0Y2U5MjRlMDlkMzk0ZTRlZWVk
MDgyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNTEsNiArMjUxLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhv
ZCgiZW5hYmxlRml4ZWRMYXlvdXRNb2RlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjplbmFibGVG
aXhlZExheW91dE1vZGUpOwogICAgIGJpbmRNZXRob2QoInNldEZpeGVkTGF5b3V0U2l6ZSIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Rml4ZWRMYXlvdXRTaXplKTsKICAgICBiaW5kTWV0aG9k
KCJzZWxlY3Rpb25Bc01hcmt1cCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2VsZWN0aW9uQXNN
YXJrdXApOworICAgIGJpbmRNZXRob2QoInNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKTsK
ICAgICAKICAgICAvLyBUaGUgZmFsbGJhY2sgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIHVua25v
d24gbWV0aG9kIGlzIGludm9rZWQuCiAgICAgYmluZEZhbGxiYWNrTWV0aG9kKCZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZmFsbGJhY2tNZXRob2QpOwpAQCAtNjc0LDYgKzY3NSw3IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KCkKICAgICBtX3dvcmtRdWV1ZS5yZXNldCgpOwogICAg
IG1fdGFza0xpc3QucmV2b2tlQWxsKCk7CiAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5k
bGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOworICAgIG1faGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2
aW9yID0gZmFsc2U7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvY2F0aW9uQ2hh
bmdlRG9uZSgpCkBAIC0yMjMwLDYgKzIyMzIsMTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXVkaW9EYXRhKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXIK
ICAgICBzZXRTaG91bGREdW1wQXNBdWRpbyh0cnVlKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXRO
dWxsKCk7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAgMSB8fCAhYXJndW1lbnRzWzBdLmlz
Qm9vbCgpKQorICAgICAgICByZXR1cm47CisgICAgbV9oYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZp
b3IgPSBhcmd1bWVudHNbMF0udG9Cb29sZWFuKCk7Cit9CisKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDUz
Njc3ZTJkYWM2YTgyNmU4Y2QxYjI5NTc3Y2MxZmZmMGU0M2FhMTEuLjViODMwMDI5ODc2OTg5NGE5
ZmU1MjhiYTM3NGRiMDZkYjA5ZDQxYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtNDkxLDYgKzQ5MSw5IEBAIHB1
YmxpYzoKICAgICBib29sIHRlc3RSZXBhaW50KCkgY29uc3QgeyByZXR1cm4gbV90ZXN0UmVwYWlu
dDsgfQogICAgIGJvb2wgc3dlZXBIb3Jpem9udGFsbHkoKSBjb25zdCB7IHJldHVybiBtX3N3ZWVw
SG9yaXpvbnRhbGx5OyB9CiAKKyAgICB2b2lkIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlv
cihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgYm9vbCBoYXNDdXN0
b21GdWxsU2NyZWVuQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2hhc0N1c3RvbUZ1bGxTY3Jl
ZW5CZWhhdmlvcjsgfQorCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSB3ZWJ2aWV3IGRlbGVnYXRlIHdo
ZW4gdGhlIHRvcGxldmVsIGZyYW1lIGxvYWQgaXMgZG9uZS4KICAgICB2b2lkIGxvY2F0aW9uQ2hh
bmdlRG9uZSgpOwogCkBAIC03MDUsNiArNzA4LDEwIEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpX
ZWJBcnJheUJ1ZmZlclZpZXcgbV9hdWRpb0RhdGE7CiAKICAgICBib29sIG1fc2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQ7CisKKyAgICAvLyBJZiB0cnVlLCBjYWxscyB0
byBXZWJWaWV3SG9zdDo6ZW50ZXIvZXhpdEZ1bGxTY3JlZW5Ob3cgd2lsbCBub3QgcmVzdWx0IGlu
IAorICAgIC8vIGNhbGxzIHRvIERvY3VtZW50Ojp3aWxsL2RpZC9FbnRlci9FeGl0RnVsbFNjcmVl
bi4KKyAgICBib29sIG1faGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOwogfTsKIAogI2VuZGlm
IC8vIExheW91dFRlc3RDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBiM2U5ZGRhMDE2NDkwMGQwZGVhODllMWM3N2FjNzhk
NTMwOWExZGFjLi42ZTQ1MzIwMDcwMTdkZTUzZDUzZTAyMmRiMzFkYWI2MjlmZmEwMzQ4IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNjYy
LDEyICsxNjYyLDE4IEBAIHZvaWQgV2ViVmlld0hvc3Q6OnNldEFkZHJlc3NCYXJVUkwoY29uc3Qg
V2ViVVJMJikKIAogdm9pZCBXZWJWaWV3SG9zdDo6ZW50ZXJGdWxsU2NyZWVuTm93KCkKIHsKKyAg
ICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9y
KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIHdlYlZpZXcoKS0+d2lsbEVudGVyRnVsbFNjcmVl
bigpOwogICAgIHdlYlZpZXcoKS0+ZGlkRW50ZXJGdWxsU2NyZWVuKCk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0hvc3Q6OmV4aXRGdWxsU2NyZWVuTm93KCkKIHsKKyAgICBpZiAobGF5b3V0VGVzdENvbnRy
b2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpCisgICAgICAgIHJldHVybjsK
KwogICAgIHdlYlZpZXcoKS0+d2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgd2ViVmlldygpLT5k
aWRFeGl0RnVsbFNjcmVlbigpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1VJRGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5t
bQppbmRleCBlODU1NzkxZGIzZjcxYmJhYjNjZmVmMjM4MTA4MTgzZTZhYjZlOTEwLi44NDdhNWZi
NGVlYmE2NzFiNjRlMmI4Y2JiNTczZTMyMDZjYjQ2NTdkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvVUlEZWxlZ2F0ZS5tbQpAQCAtMjYwLDcgKzI2MCw4IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dp
bmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAq
KXdlYlZpZXcgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudCBs
aXN0ZW5lcjooTlNPYmplY3Q8V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyPiopbGlzdGVuZXIKIHsK
LSAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGVudGVyRnVsbFNjcmVlbldpdGhM
aXN0ZW5lcjopIHdpdGhPYmplY3Q6bGlzdGVuZXIgYWZ0ZXJEZWxheTowXTsKKyAgICBpZiAoIWdM
YXlvdXRUZXN0Q29udHJvbGxlci0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkpCisgICAg
ICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoZW50ZXJGdWxsU2NyZWVuV2l0aExp
c3RlbmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRlckRlbGF5OjBdOwogfQogCiAtICh2b2lk
KWV4aXRGdWxsU2NyZWVuV2l0aExpc3RlbmVyOihOU09iamVjdDxXZWJLaXRGdWxsU2NyZWVuTGlz
dGVuZXI+KilsaXN0ZW5lcgpAQCAtMjcxLDcgKzI3Miw4IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dp
bmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAq
KXdlYlZpZXcgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50IGxp
c3RlbmVyOihOU09iamVjdDxXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXI+KilsaXN0ZW5lcgogewot
ICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoZXhpdEZ1bGxTY3JlZW5XaXRoTGlz
dGVuZXI6KSB3aXRoT2JqZWN0Omxpc3RlbmVyIGFmdGVyRGVsYXk6MF07CisgICAgaWYgKCFnTGF5
b3V0VGVzdENvbnRyb2xsZXItPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKQorICAgICAg
ICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGV4aXRGdWxsU2NyZWVuV2l0aExpc3Rl
bmVyOikgd2l0aE9iamVjdDpsaXN0ZW5lciBhZnRlckRlbGF5OjBdOwogfQogCiAtIChCT09MKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjooRE9N
RWxlbWVudCAqKWVsZW1lbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGwKaW5kZXggMGM4MWE0MWI5YTYxNzEyZWUyNjhlOTQyNDJmMzdiMDlkMzUzZWY3MS4uZDhk
ZWY0ZGVlZTljYzg2ZjlkNjhmZTNkZDNmNDljYzg1MDBiMTNmYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJv
bGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKQEAgLTE0NCw2ICsxNDQsOSBAQCBtb2R1bGUg
V1RSIHsKICAgICAgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5KCk7CiAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybU5hbWU7CisKKyAgICAgICAgLy8gQ29u
dHJvbCBmdWxsIHNjcmVlbiBiZWhhdmlvci4KKyAgICAgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxs
U2NyZWVuQmVoYXZpb3IoaW4gYm9vbGVhbiB2YWx1ZSk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCmluZGV4IDM3YjIwNjQ5NzA3ZGE1OTkwMTUxZWE0MGYzMmYwNWI1NzhhMTM0
M2MuLjZiMWZhMmNhMzJhZjQ0Nzc1MGQ5NTM3M2NlYWEzMzhmYTFjNTQwOWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHAKQEAgLTEyMDksMTYgKzEyMDksMjIgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYs
IFdLQnUKIHsKICAgICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250
cm9sbGVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCiAgICAgICAgIEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudCgpXG4iKTsKLSAgICBXS0J1bmRsZVBhZ2VXaWxsRW50ZXJGdWxsU2NyZWVu
KHBhZ2VSZWYpOwotICAgIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVlbihwYWdlUmVmKTsK
KworICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVy
KCktPmhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpKSB7CisgICAgICAgIFdLQnVuZGxlUGFn
ZVdpbGxFbnRlckZ1bGxTY3JlZW4ocGFnZVJlZik7CisgICAgICAgIFdLQnVuZGxlUGFnZURpZEVu
dGVyRnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdL
QnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50UmVmKQogewogICAgIGlmIChJbmplY3RlZEJ1bmRs
ZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5D
YWxsYmFja3MoKSkKICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxk
ZXIoKS0+YXBwZW5kKCJleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKVxuIik7Ci0gICAgV0tCdW5k
bGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOwotICAgIFdLQnVuZGxlUGFnZURpZEV4
aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworCisgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+aGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkp
IHsKKyAgICAgICAgV0tCdW5kbGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKHBhZ2VSZWYpOworICAg
ICAgICBXS0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVlbihwYWdlUmVmKTsKKyAgICB9CiB9CiAK
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpiZWdhbkVudGVyRnVsbFNjcmVlbihXS0J1bmRsZVBh
Z2VSZWYsIFdLUmVjdCwgV0tSZWN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggYTM5NDdiZGM0
ZTYwY2JkMmYxMjU5ZDZkNGRlODMyZDFiMjdlOWZlNC4uYjUzOTJmZGUwNmNhZDU5NTc2M2IyNmE0
N2RmNGNjZjMyNWJhZGEyZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC0xMjEsNiArMTIxLDcg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLy8gRnVsbCBTY3Jl
ZW4gY2xpZW50CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiwgV0tGdWxsU2NyZWVuS2V5Ym9hcmRSZXF1ZXN0VHlwZSk7CisgICAgc3RhdGljIHZvaWQg
c2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKFdLQnVuZGxlUGFnZVJlZiwgYm9vbCB2YWx1
ZSk7CiAgICAgc3RhdGljIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50KTsKICAgICBzdGF0aWMgdm9pZCBl
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgZWxlbWVudCk7CiAgICAgc3RhdGljIHZvaWQgYmVnYW5FbnRlckZ1bGxTY3JlZW4oV0tC
dW5kbGVQYWdlUmVmLCBXS1JlY3QgaW5pdGlhbEZyYW1lLCBXS1JlY3QgZmluYWxGcmFtZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGUzMWFjODczMGQ1OWFkNzkwZTIxMzAzNWM4
YzhmMWRjZjk5Zjk0OTguLjA3NTg0YmZkYjczNjY3YjE0ZDBkOTY0ZDc3YzM4ZDEzYzQ0Y2EyYmIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKCkKICAgICAsIG1fcG9saWN5RGVs
ZWdhdGVFbmFibGVkKGZhbHNlKQogICAgICwgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUoZmFs
c2UpCiAgICAgLCBtX2dsb2JhbEZsYWcoZmFsc2UpCisgICAgLCBtX2N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcihmYWxzZSkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAppbmRleCAwYmVlZGY0YTJmNDI2ZjNiNTI4MWZkYTNkYWMwMGMwNjJiYjY1
ODFmLi5iNDZkYTIxNWM3YmViMmMxZjliYjBhNzdkNmMwMDgzNGZmNzY4YzdhIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC0xOTYsNiArMTk2LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVmIHByZWZlcmVuY2UsIGJvb2wgdmFsdWUpOwog
CisgICAgLy8gQ3VzdG9tIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgorICAgIHZvaWQgc2V0SGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKGJvb2wgdmFsdWUpIHsgbV9jdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IgPSB2YWx1ZTsgfQorICAgIGJvb2wgaGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3I7IH0KKwogICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKTsKIAogICAgIHZvaWQgc2V0UGFnZVZp
c2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwpAQCAtMjMxLDYgKzIzNSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZTsKICAgICAKICAgICBib29sIG1f
Z2xvYmFsRmxhZzsKKyAgICBib29sIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOwogCiAgICAg
UGxhdGZvcm1UaW1lclJlZiBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwogfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
N2M1ZjY2MzY5ZWRjM2VhNjkzYzk5NTU1MThiODJkOWRhZTc3NjEzLi44OGQxMzIxNjA5MTNiZjYx
YWMxM2VhMGNiYjRiOGMwYzQ1N2IyODI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQt
MDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgYXBwbGUuY29t
IHRvcCBuYXZpZ2F0aW9uIGJhciBhcHBlYXJzIGluc2lkZSB2aWRlbyBkdXJpbmcgZnVsbCBzY3Jl
ZW4gZXhpdCBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgzMDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5n
LWNvbnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24t
c3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorCiAyMDEyLTA0LTA5ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGdldCByaWQgb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlLmNhdGVnb3J5LCB1c2UgIFdlYklu
c3BlY3Rvci5SZXNvdXJjZS50eXBlIGluc3RlYWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
dWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5pbWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1h
dGlvbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNhNTNmM2Fl
MjRlMTA2NTMwMWNlMjRjMGJmNTc5ZTk1YzZkZTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250
ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIGZ1bGwg
c2NyZWVuIGVsZW1lbnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxp
bmcgaW4gYSBoaWdoZXIgc3RhY2tpbmcgY29udGV4dC4gQWZ0ZXIgZW50ZXJpbmcgZnVsbCBzY3Jl
ZW4gbW9kZSwgb25seSBhIGJsYWNrIGJveCBzaG91bGQgYmUgdmlzaWJsZS4gQ2xpY2sgZ28gZnVs
bCBzY3JlZW4gdG8gcnVuIHRoZSB0ZXN0LgorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1j
b250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5p
bWF0aW9uLXN0YWNraW5nLWNvbnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGI1YmJhYmM5M2EyMzJj
MmJjNTZmMDllZWQ4YjZhYmZkMDIwMDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1leGl0LWFuaW1hdGlvbi1zdGFja2luZy1jb250ZXh0Lmh0
bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBydW5QaXhlbFRlc3RzID0gdHJ1ZTsK
KworICAgICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgICAgICAvLyBCYWls
IG91dCBlYXJseSBpZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIG5vdCBlbmFibGVkIG9yIGlzIG1p
c3Npbmc6CisgICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQucHJvdG90eXBlLndlYmtpdFJlcXVl
c3RGdWxsU2NyZWVuID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBsb2dSZXN1
bHQoZmFsc2UsICJFbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiA9PSB1
bmRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudEFuZEVuZChkb2N1
bWVudCwgJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnKTsKKyAgICAgICAgICAgICAgICAgICAgcnVu
V2l0aEtleURvd24oZ29GdWxsU2NyZWVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdvRnVsbFNjcmVlbigpIHsKKyAgICAgICAgICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IodHJ1
ZSk7CisgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgdmlkZW8ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4o
KTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMud2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9j
dW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLndlYmtpdERpZEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1lbnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAg
ICAgICAgaW50ZXJuYWxzLndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9jdW1l
bnQsIHZpZGVvKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgI29uZSB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgICAgICAgICAgICAgIHRvcDogNTBweDsKKyAgICAgICAgICAgICAgICBsZWZ0OiA1MHB4
OworICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7CisgICAgICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI29uZSwgI3R3byB7Cisg
ICAgICAgICAgICAgICAgb3BhY2l0eTogMC41OworICAgICAgICAgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiByb3RhdGUoMTgwKTsKKyAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2s6IC13ZWJr
aXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIGFscGhhIDAlLCB3aGl0ZSAxMDAlKTsKKyAgICAgICAg
ICAgICAgICAtd2Via2l0LWZpbHRlcjogY29udHJhc3QoMTAwJSk7CisgICAgICAgICAgICAgICAg
Y2xpcDpyZWN0KDBweCwxMDBweCwxMDBweCwwcHgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgI3plcm8geworICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAg
ICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI3ZpZGVvIHsK
KyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJp
bml0KCkiPgorICAgICAgICA8ZGl2PlRoaXMgdGVzdHMgdGhhdCBhIGZ1bGwgc2NyZWVuIGVsZW1l
bnQgaW4gYSBsb3dlciBzdGFja2luZyBjb250ZXh0IGJsb2NrcyBhIHNpYmxpbmcgaW4gYSBoaWdo
ZXIgc3RhY2tpbmcgY29udGV4dC4gIAorICAgICAgICAgICAgIEFmdGVyIGVudGVyaW5nIGZ1bGwg
c2NyZWVuIG1vZGUsIG9ubHkgYSBibGFjayBib3ggc2hvdWxkIGJlIHZpc2libGUuCisgICAgICAg
ICAgICAgQ2xpY2sgPGJ1dHRvbiBvbmNsaWNrPSJnb0Z1bGxTY3JlZW4oKSI+Z28gZnVsbCBzY3Jl
ZW48L2J1dHRvbj4gdG8gcnVuIHRoZSB0ZXN0LjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJvbmUi
PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ6ZXJvIj4KKyAgICAgICAgICAgIDx2aWRlbyBpZD0i
dmlkZW8iPjwvdmlkZW8+CisgICAgICAgIDwvZGl2PgorICAgIDwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWV4aXQtYW5p
bWF0aW9uLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZXhpdC1hbmltYXRpb24tc3RhY2tpbmctY29u
dGV4dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjMTcwOTJiZTY0OGNhZmNiYTIxNjcxZDFk
MWE0ZDZhN2Q3N2NhNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTc0Ngp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVSN1QKelhA
PHMwbUtOc2JtWl8lWjF9U09nIyVaYk0kcmhHck52MzhkTWg1cFpLSSQ/c3M0bnF6YVNXK29lMHpO
KD8qUmlJCno3UT5eei1fS2R7Zm9vUzZUYTNOS2lrPDBjX3hATTJhMG48a0clenFTMFR+aEU3TyVQ
NGtPVU04U1hueFA7cW5SJgp6M2M+O2tsM051KWlsTCRgOW56IW4oQ2B9I3BWOU8mbm08TyVodGN3
SncwOzxeQTBlJVooZX1ZO2B2fSYpOUJtKHMKend2Ul5KTjJCZWQoZX19M2ApSVUlR309QV9qWEk2
QzRAY1hGcXdQYjtgMEhyPGMoaT55K0NDbV9BQ0k8PU44ODd2Cno/Yz5xKkBvNCphdzB8KCNLTnte
SGpyTmE1YCR2IV5IPjNUZDtucUwwK2ZjfjVldHE0IUdUPFVGMjJXUSVtdnY0RgpGTyNwdS1PVDdS
OQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IGExZjk1NGZmNDEwMjAwNTgyYThhYzM5MTJjYmU5ZjVkOTUyOWY5MzEuLjU2NDhh
NzhlMmU5YmQ3YWE3ZjA3ZWZjN2JkMDNmZjcxNzlmZjA2ZGMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wNC0wNiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBhcHBsZS5jb20gdG9wIG5hdmlnYXRp
b24gYmFyIGFwcGVhcnMgaW5zaWRlIHZpZGVvIGR1cmluZyBmdWxsIHNjcmVlbiBleGl0IGFuaW1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMw
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMDQtMDkgIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NNYWtlXSBCdWlsZCBmaXgg
Zm9yIFVTRV9TWVNURU1fTUFMTE9DIGFmdGVyIHIxMTM1NzAuCg==
</data>
<flag name="review"
          id="140965"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>