<?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>41197</bug_id>
          
          <creation_ts>2010-06-25 00:44:51 -0700</creation_ts>
          <short_desc>Split DocumentParser::write into separate append and insert calls</short_desc>
          <delta_ts>2010-06-25 14:55:03 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41202</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242877</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 00:44:51 -0700</bug_when>
    <thetext>Split DocumentParser::write into separate append and insert calls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242886</commentid>
    <comment_count>1</comment_count>
      <attachid>59742</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 01:24:38 -0700</bug_when>
    <thetext>Created attachment 59742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242889</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-25 01:31:37 -0700</bug_when>
    <thetext>Attachment 59742 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3340754</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242913</commentid>
    <comment_count>3</comment_count>
      <attachid>59749</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 02:51:34 -0700</bug_when>
    <thetext>Created attachment 59749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242921</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-25 03:08:02 -0700</bug_when>
    <thetext>Attachment 59749 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3316707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243051</commentid>
    <comment_count>5</comment_count>
      <attachid>59749</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-25 09:46:22 -0700</bug_when>
    <thetext>Comment on attachment 59749
Patch

I wonder if we should have another method for the &quot;I&apos;m giving you all the data at once&quot; use case.  It seems a bit odd to call &quot;insert&quot; for that use just because you want it to be synchronous.  There are other side effects too, like not using the pre-load scanner.  Do we want to use the preload scanner for FTP directory listings?  (Probably not for XMLHttpRequest.)  Maybe we really should have an options argument?  It&apos;s unclear to me what the most elegant solution is.

WebCore/html/HTMLDocumentParser.cpp:216
 +  void HTMLDocumentParser::insert(const SegmentedString&amp; source)
Has tony&apos;s patch to exclude line numbers not landed?  That should be here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243094</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 11:28:48 -0700</bug_when>
    <thetext>Tony&apos;s line number patch has not been landed yet, no.  Bug 41060.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243098</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-06-25 11:33:50 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Tony&apos;s line number patch has not been landed yet, no.  Bug 41060.

#19 in the queue :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243101</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-25 11:37:36 -0700</bug_when>
    <thetext>&gt; #19 in the queue :-(

We made the commit-queue more agressive last night.  It should empty out tonight.  It reached a high water mark of 50-some patch.  O_o</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243176</commentid>
    <comment_count>9</comment_count>
      <attachid>59791</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 13:43:55 -0700</bug_when>
    <thetext>Created attachment 59791
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243177</commentid>
    <comment_count>10</comment_count>
      <attachid>59791</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 13:44:13 -0700</bug_when>
    <thetext>Comment on attachment 59791
Patch for landing

Mark r? so the Qt EWS runs this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243187</commentid>
    <comment_count>11</comment_count>
      <attachid>59791</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 13:58:09 -0700</bug_when>
    <thetext>Comment on attachment 59791
Patch for landing

Qt loves me again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243205</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 14:37:28 -0700</bug_when>
    <thetext>Committed r61904: &lt;http://trac.webkit.org/changeset/61904&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243211</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-25 14:55:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61904 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/61904
http://trac.webkit.org/changeset/61903</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59742</attachid>
            <date>2010-06-25 01:24:38 -0700</date>
            <delta_ts>2010-06-25 02:50:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41197-20100625012428.patch</filename>
            <type>text/plain</type>
            <size>18204</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzQ3MjQzNThhZDIzMjhiNTIxN2RiMDE4NWJiNzVjODM1ZDZjNDM1Ni4uM2FlNDkyY2UzZjM1N2Zh
OWVhMjgxOTBlNTUxNDQ4M2ViOTAyNWYzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMC0wNi0yNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3BsaXQgRG9jdW1lbnRQYXJzZXI6OndyaXRlIGludG8gc2Vw
YXJhdGUgYXBwZW5kIGFuZCBpbnNlcnQgY2FsbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTk3CisKKyAgICAgICAgVW5mb3J0dW5hdGVseSB0aGlz
IGlzIHN0aWxsIHNvbWV3aGF0IGNvbmZ1c2luZyBhcworICAgICAgICAiaW5zZXJ0IiBtZWFucyAi
aW5zZXJ0IHRoaXMgZGF0YSBhdCB0aGUgY3VycmVudAorICAgICAgICBpbnNlcnRpb24gcG9pbnQg
YW5kIHJ1biB0aGUgcGFyc2VyIHN5bmNocm9ub3VzbHkKKyAgICAgICAgdW5sZXNzIHdlJ3JlIGlu
IGEgbmVzdGVkIHdyaXRlIGNhbGwiIGFuZCAiYXBwZW5kIgorICAgICAgICBtZWFucyAiYXBwZW5k
IHRoaXMgZGF0YSB0byB0aGUgZW5kIGFuZCBydW4gdGhlCisgICAgICAgIHBhcnNlciBpZiBub3Qg
aW4gYSBuZXN0ZWQgY2FsbCBvciB1bnRpbCBwb3NzaWJseSB5aWVsZGluZyIuCisKKyAgICAgICAg
VGhpcyBhdCBsZWFzdCBtYWtlcyBjbGVhcmVyIHdoaWNoIGRvY3VtZW50IHBhcnNlcnMgaW1wbGVt
ZW50CisgICAgICAgIHdoaWNoIGJlaGF2aW9yLCBhbmQgcGF2ZXMgdGhlIHdheSBmb3IgbW92aW5n
IHRoZSBkZWNvZGluZworICAgICAgICBsb2dpYyBpbnRvIERvY3VtZW50UGFyc2VyIGZyb20gRG9j
dW1lbnRXcml0ZXIuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCB0aHVzIG5vIHRl
c3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp3cml0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50UGFyc2VyLmg6CisgICAgICAg
ICogZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmF3RGF0
YURvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmF3RGF0YURvY3Vt
ZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAqIGRvbS9YTUxE
b2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmcp
OgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBh
cnNlcjo6cGFyc2VEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVu
dFBhcnNlci5oOgorICAgICAgICAqIGh0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAg
ICAgKiBodG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFdyaXRlcjo6cmVw
bGFjZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyOjphZGREYXRh
KToKKyAgICAgICAgKiBsb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OkZUUERpcmVjdG9yeURvY3VtZW50
UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjps
b2FkRG9jdW1lbnRUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGVFBEaXJlY3RvcnlEb2N1
bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNoKToKKwogMjAxMC0wNi0yNCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAzN2IzNTM4YTI1ZmU0NjYzZDFhZTk2YzVkN2UzNWJkNzBlNDBlNTI5Li4xNmQ3
NTg2ZDgzYzM0ZDg0MTU2YzBjY2Q5ODhlMjNjYjI3MjkwZjZkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xOTk1
LDIxICsxOTk1LDcgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5n
JiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICAgICAgb3Blbihvd25lckRvY3Vt
ZW50KTsKIAogICAgIEFTU0VSVChtX3BhcnNlcik7Ci0gICAgLy8gRklYTUU6IGZvcmNlU3luY2hy
b25vdXMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBhcyB0aGUgYm9vbCBwYXNzZWQgdG8KLSAg
ICAvLyB3cml0ZSgpLiAgSG93ZXZlciBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIgdXNlcyB3cml0
ZSgiIiwgZmFsc2UpIHRvIHB1bXAKLSAgICAvLyB0aGUgcGFyc2VyIChhZnRlciBydW5uaW5nIGV4
dGVybmFsIHNjcmlwdHMsIGV0Yy4pIHRodXMgbmVjZXNzaXRhdGluZyBhCi0gICAgLy8gc2VwYXJh
dGUgc3RhdGUgZm9yIGZvcmNlU3luY2hyb25vdXMuCi0gICAgYm9vbCB3YXNGb3JjZWRTeW5jaHJv
bm91cyA9IGZhbHNlOwotICAgIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gbV9w
YXJzZXItPmFzSFRNTERvY3VtZW50UGFyc2VyKCk7Ci0gICAgaWYgKHBhcnNlcikgewotICAgICAg
ICB3YXNGb3JjZWRTeW5jaHJvbm91cyA9IHBhcnNlci0+Zm9yY2VTeW5jaHJvbm91cygpOwotICAg
ICAgICBwYXJzZXItPnNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7Ci0gICAgfQotCi0gICAgbV9w
YXJzZXItPndyaXRlKHRleHQsIGZhbHNlKTsKLQotICAgIGlmIChtX3BhcnNlciAmJiBwYXJzZXIg
JiYgbV9wYXJzZXItPmFzSFRNTERvY3VtZW50UGFyc2VyKCkgPT0gcGFyc2VyKQotICAgICAgICBw
YXJzZXItPnNldEZvcmNlU3luY2hyb25vdXMod2FzRm9yY2VkU3luY2hyb25vdXMpOworICAgIG1f
cGFyc2VyLT5pbnNlcnQodGV4dCk7CiAKICNpZmRlZiBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hFRFVM
SU5HCiAgICAgaWYgKCFvd25lckVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCmluZGV4IDg4MTEz
NmMzMGVkNzFmZGFiZTNkMWE0OTJlYjlmNGViMmJhZmZmZWYuLjJiOTBlZjhhZGU4ZGM3ODQ0ZGU3
NGU5MjhiMDYzNGI4OTdmN2JmYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFy
c2VyLmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaApAQCAtMzgsMTEgKzM4LDEx
IEBAIGNsYXNzIERvY3VtZW50UGFyc2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5Eb2N1bWVudFBhcnNlcigpIHsgfQogCi0gICAgLy8gU2NyaXB0IG91dHB1
dCBtdXN0IGJlIHByZXBlbmRlZCwgd2hpbGUgbmV3IGRhdGEKLSAgICAvLyByZWNlaXZlZCBkdXJp
bmcgZXhlY3V0aW5nIGEgc2NyaXB0IG11c3QgYmUgYXBwZW5kZWQsIGhlbmNlIHRoZQotICAgIC8v
IGV4dHJhIGJvb2wgdG8gYmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGJvdGggY2FzZXMu
Ci0gICAgLy8gZG9jdW1lbnQud3JpdGUoKSBhbHdheXMgdXNlcyBmYWxzZSwgd2hpbGUgdGhlIGxv
YWRlciB1c2VzIHRydWUuCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yaykgPSAwOworICAgIC8vIGluc2VydCBpcyB1c2UgYnkg
ZG9jdW1lbnQud3JpdGUKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYpID0gMDsKKyAgICAvLyBhcGVuZCBpcyB1c2VkIGJ5IERvY3VtZW50V3JpdGVyICh0aGUg
bG9hZGVyKQorICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikg
PSAwOworCiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
ZmluaXNoV2FzQ2FsbGVkKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3Jp
cHRzKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUmF3RGF0YURvY3VtZW50
UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaAppbmRleCA3N2Qx
NDhkZjlkMDE2OTkzM2I3NzhkYzU2NDVhNzBhY2Q3OTZjZDdlLi5mM2MwNzM5NWY3ZWMyZWU3NDBh
NDliMTNiMTQ1OTEyM2NkMjMwN2VmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9j
dW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaApA
QCAtNTEsMTIgKzUxLDE3IEBAIHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wpCisgICAgdmlydHVh
bCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKQogICAgIHsKICAgICAgICAgLy8g
PGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTM5Nz46IEpTIGNvZGUg
Y2FuIGFsd2F5cyBjYWxsIGRvY3VtZW50LndyaXRlLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4KICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIGFw
cGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorCiAgICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0NhbGxlZCgpCiAg
ICAgewogICAgICAgICAvLyBmaW5pc2goKSBhbHdheXMgY2FsbHMgZG9jdW1lbnQoKS0+ZmluaXNo
ZWRQYXJzaW5nKCkgc28gd2Ugd2lsbCBiZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4
IGFiMDJiYjM0MDI4NjI5NWM5NjgwMGQ4MTg1YThlNWU0NDM0NDgyNzcuLjNkZGQ2NmJjNmY2MDEz
ODRiYjBhZTg1MTMwM2NlNDAyNGNhNmRhZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERv
Y3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAK
QEAgLTExNiw3ICsxMTYsMTYgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2xlYXJDdXJyZW50
Tm9kZVN0YWNrKCkKICAgICB9CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCAvKmFwcGVuZERhdGEqLykKK3ZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKKyAg
ICAvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCBY
TUxIdHRwUmVxdWVzdAorICAgIC8vIHJlc3BvbnNlWE1MKCkgY2FsbHMgRG9jdW1lbnQ6OndyaXRl
KCkgd2hpY2ggaW4gdHVybiBjYWxscyBpbnNlcnQoKS4gSW4KKyAgICAvLyBIVE1MLCB0aGF0J3Mg
Y29ycmVjdCwgYXMgaW5zZXJ0KCkgaW1wbGllcyBhIHN5bmNocm9ub3VzIHBhcnNlLiAgRm9yIFhN
TCwKKyAgICAvLyBhbGwgcGFyc2luZyBpcyBzeW5jaHJvbm91cyBidXQgZG9jdW1lbnQud3JpdGUg
c2hvdWxkbid0IGJlIHN1cHBvcnRlZC4KKyAgICBhcHBlbmQoc291cmNlKTsKK30KKwordm9pZCBY
TUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcykKIHsKICAg
ICBTdHJpbmcgcGFyc2VTdHJpbmcgPSBzLnRvU3RyaW5nKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNl
ci5oCmluZGV4IDk1MjBlYzRmNWEzNDJmMWQwOGIyNTlmMzk3OGY3ODVmM2NjZDM1MDQuLjkyYjEx
MjkzNWI1NjFjNzgxMGRlOTEzOWE3ZTcwYjI5Mzg0ZGZkNzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJz
ZXIuaApAQCAtOTIsNyArOTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRl
OgogICAgICAgICAvLyBGcm9tIERvY3VtZW50UGFyc2VyCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3
cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgICAgICB2
aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZmluaXNoKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hXYXNDYWxsZWQoKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDMzYjBhMDk3ODNkODIyYWZk
NzNjYTRmMTBhMzQ1MjVkOGU2ZWE2MzkuLmI4NDdhMmIzMjcwZGViYTA1YTQ0ZTdkYWViMmY0MThl
YWMyYjA3NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAt
MTM2Myw3ICsxMzYzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZygp
CiAgICAgLy8gVGhlbiwgd3JpdGUgYW55IHBlbmRpbmcgZGF0YQogICAgIFNlZ21lbnRlZFN0cmlu
ZyByZXN0ID0gbV9wZW5kaW5nU3JjOwogICAgIG1fcGVuZGluZ1NyYy5jbGVhcigpOwotICAgIHdy
aXRlKHJlc3QsIGZhbHNlKTsKKyAgICBhcHBlbmQocmVzdCk7CiAKICAgICAvLyBGaW5hbGx5LCBp
ZiBmaW5pc2goKSBoYXMgYmVlbiBjYWxsZWQgYW5kIHdyaXRlKCkgZGlkbid0IHJlc3VsdAogICAg
IC8vIGluIGFueSBmdXJ0aGVyIGNhbGxiYWNrcyBiZWluZyBxdWV1ZWQsIGNhbGwgZW5kKCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggNWMzMThmNzE1OTdhNjMyOTE5OGUyZDE1
ZDM4N2JjNTQxZWU2MGRmZC4uM2ViMTExOGViYjE5MzA3ZjBjMGUzNjFlMzlhMTQxYTU5MDk3MWJm
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTIxMywyOCArMjEzLDM2IEBA
IHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpkaWRQdW1wTGV4ZXIoKQogI2VuZGlmCiB9CiAKLXZv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgYm9vbCBpc0Zyb21OZXR3b3JrKQordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6Omluc2VydChj
b25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKIHsKICAgICBpZiAobV9wYXJzZXJTdG9wcGVk
KQogICAgICAgICByZXR1cm47CiAKICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlcihtX3dyaXRlTmVzdGluZ0xldmVsKTsKKyAgICBtX2lucHV0Lmluc2Vy
dEF0Q3VycmVudEluc2VydGlvblBvaW50KHNvdXJjZSk7CisgICAgcHVtcFRva2VuaXplcklmUG9z
c2libGUoRm9yY2VTeW5jaHJvbm91cyk7CisgICAgZW5kSWZEZWxheWVkKCk7Cit9CiAKLSAgICBp
ZiAoaXNGcm9tTmV0d29yaykgewotICAgICAgICBtX2lucHV0LmFwcGVuZFRvRW5kKHNvdXJjZSk7
Ci0gICAgICAgIGlmIChtX3ByZWxvYWRTY2FubmVyKQotICAgICAgICAgICAgbV9wcmVsb2FkU2Nh
bm5lci0+YXBwZW5kVG9FbmQoc291cmNlKTsKK3ZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjphcHBl
bmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCit7CisgICAgaWYgKG1fcGFyc2VyU3Rv
cHBlZCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChtX3dyaXRlTmVzdGluZ0xldmVs
ID4gMSkgewotICAgICAgICAgICAgLy8gV2UndmUgZ290dGVuIGRhdGEgb2ZmIHRoZSBuZXR3b3Jr
IGluIGEgbmVzdGVkIGNhbGwgdG8gd3JpdGUoKS4KLSAgICAgICAgICAgIC8vIFdlIGRvbid0IHdh
bnQgdG8gY29uc3VtZSBhbnkgbW9yZSBvZiB0aGUgaW5wdXQgc3RyZWFtIG5vdy4gIERvCi0gICAg
ICAgICAgICAvLyBub3Qgd29ycnkuICBXZSdsbCBjb25zdW1lIHRoaXMgZGF0YSBpbiBhIGxlc3Mt
bmVzdGVkIHdyaXRlKCkuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9IGVs
c2UKLSAgICAgICAgbV9pbnB1dC5pbnNlcnRBdEN1cnJlbnRJbnNlcnRpb25Qb2ludChzb3VyY2Up
OworICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1f
d3JpdGVOZXN0aW5nTGV2ZWwpOworCisgICAgbV9pbnB1dC5hcHBlbmRUb0VuZChzb3VyY2UpOwor
ICAgIGlmIChtX3ByZWxvYWRTY2FubmVyKQorICAgICAgICBtX3ByZWxvYWRTY2FubmVyLT5hcHBl
bmRUb0VuZChzb3VyY2UpOworCisgICAgaWYgKG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAxKSB7Cisg
ICAgICAgIC8vIFdlJ3ZlIGdvdHRlbiBkYXRhIG9mZiB0aGUgbmV0d29yayBpbiBhIG5lc3RlZCB3
cml0ZS4KKyAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBjb25zdW1lIGFueSBtb3JlIG9mIHRo
ZSBpbnB1dCBzdHJlYW0gbm93LiAgRG8KKyAgICAgICAgLy8gbm90IHdvcnJ5LiAgV2UnbGwgY29u
c3VtZSB0aGlzIGRhdGEgaW4gYSBsZXNzLW5lc3RlZCB3cml0ZSgpLgorICAgICAgICByZXR1cm47
CisgICAgfQogCi0gICAgcHVtcFRva2VuaXplcklmUG9zc2libGUoaXNGcm9tTmV0d29yayA/IEFs
bG93WWllbGQgOiBGb3JjZVN5bmNocm9ub3VzKTsKKyAgICBwdW1wVG9rZW5pemVySWZQb3NzaWJs
ZShBbGxvd1lpZWxkKTsKICAgICBlbmRJZkRlbGF5ZWQoKTsKIH0KIApAQCAtMzk4LDcgKzQwNiw3
IEBAIFNjcmlwdENvbnRyb2xsZXIqIEhUTUxEb2N1bWVudFBhcnNlcjo6c2NyaXB0KCkgY29uc3QK
IHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwYXJzZURvY3VtZW50RnJhZ21lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKICAgICBIVE1MRG9jdW1lbnRQYXJz
ZXIgcGFyc2VyKGZyYWdtZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKLSAgICBwYXJzZXIud3Jp
dGUoc291cmNlLCBmYWxzZSk7CisgICAgcGFyc2VyLmluc2VydChzb3VyY2UpOyAvLyBVc2UgaW5z
ZXJ0KCkgc28gdGhhdCB0aGUgcGFyc2VyIHdpbGwgbm90IHlpZWxkLgogICAgIHBhcnNlci5maW5p
c2goKTsKICAgICBBU1NFUlQoIXBhcnNlci5wcm9jZXNzaW5nRGF0YSgpKTsgLy8gTWFrZSBzdXJl
IHdlJ3JlIGRvbmUuIDxyZGFyOi8vcHJvYmxlbS8zOTYzMTUxPgogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dFBhcnNlci5oCmluZGV4IGMyZTc1MmY0ZTQyY2MzMTE5ZjQzNzMxZTI3N2Q3MDcxY2FiNTM1NjUu
LmRiNWY1Y2M4MDAwNjcxNWZiZTc1ZWI1ZTAyNWIwYTI3Zjg4NzFlNjggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50UGFyc2VyLmgKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IC8vIERvY3VtZW50UGFyc2VyCi0gICAgdmlydHVhbCB2b2lkIGJlZ2luKCk7Ci0gICAgdmlydHVh
bCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgaXNGcm9tTmV0d29yayk7
CisgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwogICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2goKTsKICAgICB2aXJ0dWFsIGJvb2wgZmluaXNoV2FzQ2FsbGVkKCk7CiAgICAg
dmlydHVhbCBib29sIHByb2Nlc3NpbmdEYXRhKCkgY29uc3Q7CkBAIC0xMDEsNiArMTAxLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIHJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcigpOwogICAg
IHZvaWQgcmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCk7CiAKKyAgICB2b2lkIGJl
Z2luKCk7CiAgICAgdm9pZCBhdHRlbXB0VG9FbmQoKTsKICAgICB2b2lkIGVuZElmRGVsYXllZCgp
OwogICAgIHZvaWQgZW5kKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERv
Y3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCmluZGV4IDM4YzhhNzUyZWQ5MDZlNzY4ZjE3ZjBlMjQyOTMxOTk5ZTExZjY0ZTUuLjAyMjli
MDgzNDU5Y2UzOGZhMzEwMzQxYjY4ZjliMDY0MjBhM2IyYjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9MZWdh
Y3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xNzkxLDYgKzE3OTEsMjMgQEAgdm9pZCBMZWdh
Y3lIVE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc3RyLCBi
b29sIGFwcGVuZERhdGEKICAgICBJbWFnZUxvYWRlcjo6ZGlzcGF0Y2hQZW5kaW5nQmVmb3JlTG9h
ZEV2ZW50cygpOwogfQogCit2b2lkIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQoreworICAgIC8vIEZJWE1FOiBmb3JjZVN5bmNo
cm9ub3VzIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWUgYXMgdGhlIGJvb2wgcGFzc2VkIHRvCisg
ICAgLy8gd3JpdGUoKS4gIEhvd2V2ZXIgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyIHVzZXMgd3Jp
dGUoIiIsIGZhbHNlKSB0byBwdW1wCisgICAgLy8gdGhlIHBhcnNlciAoYWZ0ZXIgcnVubmluZyBl
eHRlcm5hbCBzY3JpcHRzLCBldGMuKSB0aHVzIG5lY2Vzc2l0YXRpbmcgYQorICAgIC8vIHNlcGFy
YXRlIHN0YXRlIGZvciBmb3JjZVN5bmNocm9ub3VzLgorICAgIGJvb2wgd2FzRm9yY2VkU3luY2hy
b25vdXMgPSBmb3JjZVN5bmNocm9ub3VzKCk7CisgICAgc2V0Rm9yY2VTeW5jaHJvbm91cyh0cnVl
KTsKKyAgICB3cml0ZShzb3VyY2UsIGZhbHNlKTsKKyAgICBzZXRGb3JjZVN5bmNocm9ub3VzKHdh
c0ZvcmNlZFN5bmNocm9ub3VzKTsKK30KKwordm9pZCBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXI6
OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICB3cml0ZShzb3Vy
Y2UsIHRydWUpOworfQorCiB2b2lkIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNp
bmcoKQogewogICAgIERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL0xl
Z2FjeUhUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDViOTZiYzMxNzM0Mjk1YTJjOTUxYjNmMDdl
OTgzOTdlOGI0NGJlMjkuLjQ4ZDEyODRiMmViZmJjNzdjN2NkYTUwNWM1MDEwYTBhNmVhZDNmODEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuaAorKysg
Yi9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTE1NywxMSArMTU3
LDEyIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIC8vIEV4cG9zZWQgZm9yIEZUUERpcmVj
dG9yeURvY3VtZW50UGFyc2VyCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRl
ZFN0cmluZyYsIGJvb2wgYXBwZW5kRGF0YSk7CisgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25z
dCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7CiAKIHByaXZh
dGU6CiAgICAgLy8gRG9jdW1lbnRQYXJzZXIKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hXYXNDYWxsZWQoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wUGFyc2luZygpOwpAQCAtMTgzLDYgKzE4NCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCByZXNldCgpOwogCiAgICAgdm9pZCB3aWxsV3JpdGVIVE1MKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYpOworICAgIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBhcHBl
bmREYXRhKTsKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYWR2YW5jZShTdGF0ZSYpOwogICAgIHZv
aWQgZGlkV3JpdGVIVE1MKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
V3JpdGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCAyNzcx
NDQ3NjNjZDFiMTllMzRjOTYyNzEzNDY0MDZjMTE4NmU5NGQyLi5mNzJlN2ZiZThlOWI2YzM0ZjYx
YTk5ZjJhZDY3ZjcwNzZhYTk4MzQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dFdyaXRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OnJlcGxhY2VEb2N1bWVudChjb25zdCBT
dHJpbmcmIHNvdXJjZSkKICAgICAgICAgLy8gRklYTUU6IElmIHdlIHdhbnRlZCB0byBzdXBwb3J0
IHRoZSA8aW1nIHNyYz0namF2YXNjcmlwdDonaW1hZ2VkYXRhJz4KICAgICAgICAgLy8gY2FzZSB0
aGVuIHdlIHdvdWxkIG5lZWQgdG8gY2FsbCBhZGREYXRhKGNoYXIqLCBpbnQpIGluc3RlYWQuCiAg
ICAgICAgIGlmIChEb2N1bWVudFBhcnNlciogcGFyc2VyID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
cGFyc2VyKCkpCi0gICAgICAgICAgICBwYXJzZXItPndyaXRlKHNvdXJjZSwgdHJ1ZSk7CisgICAg
ICAgICAgICBwYXJzZXItPmFwcGVuZChzb3VyY2UpOwogICAgIH0KIAogICAgIGVuZCgpOwpAQCAt
MjA0LDcgKzIwNCw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmFkZERhdGEoY29uc3QgY2hhciog
c3RyLCBpbnQgbGVuLCBib29sIGZsdXNoKQogCiAgICAgaWYgKHBhcnNlcikgewogICAgICAgICBB
U1NFUlQoIXBhcnNlci0+d2FudHNSYXdEYXRhKCkpOwotICAgICAgICBwYXJzZXItPndyaXRlKGRl
Y29kZWQsIHRydWUpOworICAgICAgICBwYXJzZXItPmFwcGVuZChkZWNvZGVkKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBi
L1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBkNmFhYTQ3NDZi
ZGFkM2FjNjJlMTZjNzcyYTMxOGIxNzBjMGFlODhiLi5jYTUxZGVlM2NkMjVkNThiYWY5NTY4ZjE5
YjMzY2I5Yzc0NWJjZjFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlE
b2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyIDogcHVi
bGljIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlciB7CiBwdWJsaWM6CiAgICAgRlRQRGlyZWN0b3J5
RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGUo
Y29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBhcHBlbmREYXRhKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2goKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMDAsNyArMTAwLDcgQEAgRlRQRGlyZWN0b3J5RG9jdW1l
bnRQYXJzZXI6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgLCBtX3NpemUoMjU0KQogICAgICwgbV9idWZmZXIoc3RhdGljX2Nhc3Q8VUNoYXIq
PihmYXN0TWFsbG9jKHNpemVvZihVQ2hhcikgKiBtX3NpemUpKSkKICAgICAsIG1fZGVzdChtX2J1
ZmZlcikKLXsgICAgCit7CiB9ICAgIAogCiB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2Vy
OjphcHBlbmRFbnRyeShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIHNpemUs
IGNvbnN0IFN0cmluZyYgZGF0ZSwgYm9vbCBpc0RpcmVjdG9yeSkKQEAgLTMwMSwxMSArMzAxLDgg
QEAgYm9vbCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUo
KQogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBsb2FkIHRlbXBsYXRlRGF0YSIpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAotICAgIC8vIFRva2VuaXplIHRoZSB0ZW1w
bGF0ZSBhcyBhbiBIVE1MIGRvY3VtZW50IHN5bmNocm9ub3VzbHkKLSAgICBzZXRGb3JjZVN5bmNo
cm9ub3VzKHRydWUpOwotICAgIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6d3JpdGUoU3RyaW5n
KHRlbXBsYXRlRG9jdW1lbnREYXRhLT5kYXRhKCksIHRlbXBsYXRlRG9jdW1lbnREYXRhLT5zaXpl
KCkpLCB0cnVlKTsKLSAgICBzZXRGb3JjZVN5bmNocm9ub3VzKGZhbHNlKTsKKworICAgIExlZ2Fj
eUhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KFN0cmluZyh0ZW1wbGF0ZURvY3VtZW50RGF0YS0+
ZGF0YSgpLCB0ZW1wbGF0ZURvY3VtZW50RGF0YS0+c2l6ZSgpKSk7CiAgICAgCiAgICAgUmVmUHRy
PEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKCJmdHBE
aXJlY3RvcnlUYWJsZSIpOwogICAgIGlmICghdGFibGVFbGVtZW50KQpAQCAtMzU0LDggKzM1MSw4
IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZUJhc2ljRG9jdW1lbnQo
KQogICAgIGJvZHlFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RhYmxlRWxlbWVudCwgZWMpOwogfQog
Ci12b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRT
dHJpbmcmIHMsIGJvb2wgLyphcHBlbmREYXRhKi8pCi17ICAgIAordm9pZCBGVFBEaXJlY3RvcnlE
b2N1bWVudFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorewog
ICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSB0YWJsZSBlbGVtZW50IHRvIGFwcGVuZCB0byBi
eSBsb2FkaW5nIHRoZSB0ZW1wbGF0ZSBzZXQgaW4gdGhlIHByZWYsIG9yCiAgICAgLy8gY3JlYXRp
bmcgYSB2ZXJ5IGJhc2ljIGRvY3VtZW50IHdpdGggdGhlIGFwcHJvcHJpYXRlIHRhYmxlCiAgICAg
aWYgKCFtX3RhYmxlRWxlbWVudCkgewpAQCAtMzY3LDcgKzM2NCw3IEBAIHZvaWQgRlRQRGlyZWN0
b3J5RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCAv
KmFwcGVuZERhCiAgICAgYm9vbCBmb3VuZE5ld0xpbmUgPSBmYWxzZTsKICAgICAKICAgICBtX2Rl
c3QgPSBtX2J1ZmZlcjsKLSAgICBTZWdtZW50ZWRTdHJpbmcgc3RyID0gczsKKyAgICBTZWdtZW50
ZWRTdHJpbmcgc3RyID0gc291cmNlOwogICAgIHdoaWxlICghc3RyLmlzRW1wdHkoKSkgewogICAg
ICAgICBVQ2hhciBjID0gKnN0cjsKICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9UZXh0RG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAppbmRl
eCA5YzYxNjEwNzgzOGViMzZjZGJjMzY3YzQzYTk5Mzk3M2Q5NDlhMWY4Li4zYmExZTg0M2E3NWEz
YzFhN2RlNzliOTg0YTliMzExMGQ3YjYzZTU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9U
ZXh0RG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5jcHAKQEAg
LTI1LDEyICsyNSwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHREb2N1
bWVudC5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlRleHQuaCIK
LSNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CkBAIC00NSw3ICs0NSw4IEBAIHB1YmxpYzoKICAgICBUZXh0RG9jdW1lbnRQYXJzZXIoSFRNTFZp
ZXdTb3VyY2VEb2N1bWVudCopOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShj
b25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGFwcGVu
ZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7CiAg
ICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0NhbGxlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBpc1dh
aXRpbmdGb3JTY3JpcHRzKCkgY29uc3Q7CkBAIC05OSw3ICsxMDAsMTIgQEAgVGV4dERvY3VtZW50
UGFyc2VyOjp+VGV4dERvY3VtZW50UGFyc2VyKCkKICAgICBBU1NFUlQoIW1fYnVmZmVyKTsKIH0K
IAotdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYg
cywgYm9vbCkKK3ZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29uc3QgU2VnbWVudGVk
U3RyaW5nJikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBUZXh0RG9j
dW1lbnRQYXJzZXI6OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMpCiB7CiAgICAgRXhj
ZXB0aW9uQ29kZSBlYzsKIApAQCAtMTYyLDcgKzE2OCw3IEBAIHZvaWQgVGV4dERvY3VtZW50UGFy
c2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMsIGJvb2wpCiB2b2lkIFRleHREb2N1
bWVudFBhcnNlcjo6ZmluaXNoKCkKIHsKICAgICBpZiAoIW1fcHJlRWxlbWVudCkKLSAgICAgICAg
d3JpdGUoU2VnbWVudGVkU3RyaW5nKCksIHRydWUpOyAvLyBDcmVhdGUgZG9jdW1lbnQgc3RydWN0
dXJlIGZvciBhbiBlbXB0eSB0ZXh0IGRvY3VtZW50LgorICAgICAgICBhcHBlbmQoU2VnbWVudGVk
U3RyaW5nKCkpOyAvLyBDcmVhdGUgZG9jdW1lbnQgc3RydWN0dXJlIGZvciBhbiBlbXB0eSB0ZXh0
IGRvY3VtZW50LgogICAgIG1fcHJlRWxlbWVudCA9IDA7CiAgICAgZmFzdEZyZWUobV9idWZmZXIp
OwogICAgIG1fYnVmZmVyID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59749</attachid>
            <date>2010-06-25 02:51:34 -0700</date>
            <delta_ts>2010-06-25 13:43:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41197-20100625025117.patch</filename>
            <type>text/plain</type>
            <size>21829</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzQ3MjQzNThhZDIzMjhiNTIxN2RiMDE4NWJiNzVjODM1ZDZjNDM1Ni4uM2FlNDkyY2UzZjM1N2Zh
OWVhMjgxOTBlNTUxNDQ4M2ViOTAyNWYzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMC0wNi0yNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3BsaXQgRG9jdW1lbnRQYXJzZXI6OndyaXRlIGludG8gc2Vw
YXJhdGUgYXBwZW5kIGFuZCBpbnNlcnQgY2FsbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTk3CisKKyAgICAgICAgVW5mb3J0dW5hdGVseSB0aGlz
IGlzIHN0aWxsIHNvbWV3aGF0IGNvbmZ1c2luZyBhcworICAgICAgICAiaW5zZXJ0IiBtZWFucyAi
aW5zZXJ0IHRoaXMgZGF0YSBhdCB0aGUgY3VycmVudAorICAgICAgICBpbnNlcnRpb24gcG9pbnQg
YW5kIHJ1biB0aGUgcGFyc2VyIHN5bmNocm9ub3VzbHkKKyAgICAgICAgdW5sZXNzIHdlJ3JlIGlu
IGEgbmVzdGVkIHdyaXRlIGNhbGwiIGFuZCAiYXBwZW5kIgorICAgICAgICBtZWFucyAiYXBwZW5k
IHRoaXMgZGF0YSB0byB0aGUgZW5kIGFuZCBydW4gdGhlCisgICAgICAgIHBhcnNlciBpZiBub3Qg
aW4gYSBuZXN0ZWQgY2FsbCBvciB1bnRpbCBwb3NzaWJseSB5aWVsZGluZyIuCisKKyAgICAgICAg
VGhpcyBhdCBsZWFzdCBtYWtlcyBjbGVhcmVyIHdoaWNoIGRvY3VtZW50IHBhcnNlcnMgaW1wbGVt
ZW50CisgICAgICAgIHdoaWNoIGJlaGF2aW9yLCBhbmQgcGF2ZXMgdGhlIHdheSBmb3IgbW92aW5n
IHRoZSBkZWNvZGluZworICAgICAgICBsb2dpYyBpbnRvIERvY3VtZW50UGFyc2VyIGZyb20gRG9j
dW1lbnRXcml0ZXIuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCB0aHVzIG5vIHRl
c3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp3cml0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50UGFyc2VyLmg6CisgICAgICAg
ICogZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmF3RGF0
YURvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmF3RGF0YURvY3Vt
ZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAqIGRvbS9YTUxE
b2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmcp
OgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBh
cnNlcjo6cGFyc2VEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVu
dFBhcnNlci5oOgorICAgICAgICAqIGh0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAg
ICAgKiBodG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudFdyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFdyaXRlcjo6cmVw
bGFjZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyOjphZGREYXRh
KToKKyAgICAgICAgKiBsb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OkZUUERpcmVjdG9yeURvY3VtZW50
UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjps
b2FkRG9jdW1lbnRUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGVFBEaXJlY3RvcnlEb2N1
bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNoKToKKwogMjAxMC0wNi0yNCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAzN2IzNTM4YTI1ZmU0NjYzZDFhZTk2YzVkN2UzNWJkNzBlNDBlNTI5Li4xNmQ3
NTg2ZDgzYzM0ZDg0MTU2YzBjY2Q5ODhlMjNjYjI3MjkwZjZkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xOTk1
LDIxICsxOTk1LDcgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5n
JiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICAgICAgb3Blbihvd25lckRvY3Vt
ZW50KTsKIAogICAgIEFTU0VSVChtX3BhcnNlcik7Ci0gICAgLy8gRklYTUU6IGZvcmNlU3luY2hy
b25vdXMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBhcyB0aGUgYm9vbCBwYXNzZWQgdG8KLSAg
ICAvLyB3cml0ZSgpLiAgSG93ZXZlciBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIgdXNlcyB3cml0
ZSgiIiwgZmFsc2UpIHRvIHB1bXAKLSAgICAvLyB0aGUgcGFyc2VyIChhZnRlciBydW5uaW5nIGV4
dGVybmFsIHNjcmlwdHMsIGV0Yy4pIHRodXMgbmVjZXNzaXRhdGluZyBhCi0gICAgLy8gc2VwYXJh
dGUgc3RhdGUgZm9yIGZvcmNlU3luY2hyb25vdXMuCi0gICAgYm9vbCB3YXNGb3JjZWRTeW5jaHJv
bm91cyA9IGZhbHNlOwotICAgIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gbV9w
YXJzZXItPmFzSFRNTERvY3VtZW50UGFyc2VyKCk7Ci0gICAgaWYgKHBhcnNlcikgewotICAgICAg
ICB3YXNGb3JjZWRTeW5jaHJvbm91cyA9IHBhcnNlci0+Zm9yY2VTeW5jaHJvbm91cygpOwotICAg
ICAgICBwYXJzZXItPnNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7Ci0gICAgfQotCi0gICAgbV9w
YXJzZXItPndyaXRlKHRleHQsIGZhbHNlKTsKLQotICAgIGlmIChtX3BhcnNlciAmJiBwYXJzZXIg
JiYgbV9wYXJzZXItPmFzSFRNTERvY3VtZW50UGFyc2VyKCkgPT0gcGFyc2VyKQotICAgICAgICBw
YXJzZXItPnNldEZvcmNlU3luY2hyb25vdXMod2FzRm9yY2VkU3luY2hyb25vdXMpOworICAgIG1f
cGFyc2VyLT5pbnNlcnQodGV4dCk7CiAKICNpZmRlZiBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hFRFVM
SU5HCiAgICAgaWYgKCFvd25lckVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5k
ZXggNzI4NzQzOTYyNmYyNmQxMGRjYjQyODJkNzUyMDZhZDdhZTg1NzRiOS4uZWNjNTcyNTlmZWU4
YWUzZWZkNzBiODlkZGY3MDQxZmIzZTVjYzVjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAK
QEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBEb2N1bWVudEZyYWdtZW50OjpwYXJzZUhUTUwoY29uc3Qg
U3RyaW5nJiBzb3VyY2UsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2kKIAogYm9vbCBEb2N1bWVu
dEZyYWdtZW50OjpwYXJzZVhNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCogcGFyZW50
LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKLSAg
ICByZXR1cm4gcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KHNvdXJjZSwgdGhpcywgcGFyZW50LCBz
Y3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICByZXR1cm4gWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNl
RG9jdW1lbnRGcmFnbWVudChzb3VyY2UsIHRoaXMsIHBhcmVudCwgc2NyaXB0aW5nUGVybWlzc2lv
bik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmggYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCmluZGV4IDg4MTEzNmMzMGVkNzFmZGFiZTNkMWE0
OTJlYjlmNGViMmJhZmZmZWYuLjJiOTBlZjhhZGU4ZGM3ODQ0ZGU3NGU5MjhiMDYzNGI4OTdmN2Jm
YTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnRQYXJzZXIuaApAQCAtMzgsMTEgKzM4LDExIEBAIGNsYXNzIERvY3VtZW50
UGFyc2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Eb2N1
bWVudFBhcnNlcigpIHsgfQogCi0gICAgLy8gU2NyaXB0IG91dHB1dCBtdXN0IGJlIHByZXBlbmRl
ZCwgd2hpbGUgbmV3IGRhdGEKLSAgICAvLyByZWNlaXZlZCBkdXJpbmcgZXhlY3V0aW5nIGEgc2Ny
aXB0IG11c3QgYmUgYXBwZW5kZWQsIGhlbmNlIHRoZQotICAgIC8vIGV4dHJhIGJvb2wgdG8gYmUg
YWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGJvdGggY2FzZXMuCi0gICAgLy8gZG9jdW1lbnQu
d3JpdGUoKSBhbHdheXMgdXNlcyBmYWxzZSwgd2hpbGUgdGhlIGxvYWRlciB1c2VzIHRydWUuCi0g
ICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgaXNGcm9t
TmV0d29yaykgPSAwOworICAgIC8vIGluc2VydCBpcyB1c2UgYnkgZG9jdW1lbnQud3JpdGUKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpID0gMDsKKyAgICAv
LyBhcGVuZCBpcyB1c2VkIGJ5IERvY3VtZW50V3JpdGVyICh0aGUgbG9hZGVyKQorICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgPSAwOworCiAgICAgdmlydHVh
bCB2b2lkIGZpbmlzaCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluaXNoV2FzQ2FsbGVkKCkg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmggYi9XZWJDb3Jl
L2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaAppbmRleCA3N2QxNDhkZjlkMDE2OTkzM2I3Nzhk
YzU2NDVhNzBhY2Q3OTZjZDdlLi5mM2MwNzM5NWY3ZWMyZWU3NDBhNDliMTNiMTQ1OTEyM2NkMjMw
N2VmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaAorKysg
Yi9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaApAQCAtNTEsMTIgKzUxLDE3IEBA
IHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wpCisgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25z
dCBTZWdtZW50ZWRTdHJpbmcmKQogICAgIHsKICAgICAgICAgLy8gPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTM5Nz46IEpTIGNvZGUgY2FuIGFsd2F5cyBjYWxsIGRv
Y3VtZW50LndyaXRlLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4KICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50
ZWRTdHJpbmcmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
CiAgICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0NhbGxlZCgpCiAgICAgewogICAgICAgICAvLyBm
aW5pc2goKSBhbHdheXMgY2FsbHMgZG9jdW1lbnQoKS0+ZmluaXNoZWRQYXJzaW5nKCkgc28gd2Ug
d2lsbCBiZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIv
V2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGFiMDJiYjM0MDI4NjI5NWM5
NjgwMGQ4MTg1YThlNWU0NDM0NDgyNzcuLjNkZGQ2NmJjNmY2MDEzODRiYjBhZTg1MTMwM2NlNDAy
NGNhNmRhZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcAor
KysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTExNiw3ICsxMTYsMTYg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNrKCkKICAgICB9
CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYgcywgYm9vbCAvKmFwcGVuZERhdGEqLykKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Omluc2Vy
dChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyBhIGhhY2sgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCBYTUxIdHRwUmVxdWVzdAorICAg
IC8vIHJlc3BvbnNlWE1MKCkgY2FsbHMgRG9jdW1lbnQ6OndyaXRlKCkgd2hpY2ggaW4gdHVybiBj
YWxscyBpbnNlcnQoKS4gSW4KKyAgICAvLyBIVE1MLCB0aGF0J3MgY29ycmVjdCwgYXMgaW5zZXJ0
KCkgaW1wbGllcyBhIHN5bmNocm9ub3VzIHBhcnNlLiAgRm9yIFhNTCwKKyAgICAvLyBhbGwgcGFy
c2luZyBpcyBzeW5jaHJvbm91cyBidXQgZG9jdW1lbnQud3JpdGUgc2hvdWxkbid0IGJlIHN1cHBv
cnRlZC4KKyAgICBhcHBlbmQoc291cmNlKTsKK30KKwordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcykKIHsKICAgICBTdHJpbmcgcGFyc2VTdHJp
bmcgPSBzLnRvU3RyaW5nKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDk1MjBlYzRm
NWEzNDJmMWQwOGIyNTlmMzk3OGY3ODVmM2NjZDM1MDQuLjlmMzY3OTFiYzYwNTVlYmUyNjk4NGFk
N2Q1MDRkNWIwMjI5ZTEwMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtOTAsOSArOTAs
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGlzV01MRG9jdW1lbnQoKSBj
b25zdDsKICNlbmRpZgogCisgICAgc3RhdGljIGJvb2wgcGFyc2VEb2N1bWVudEZyYWdtZW50KGNv
bnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBFbGVtZW50KiBwYXJlbnQgPSAwLCBGcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOworCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgLy8gRnJvbSBEb2N1bWVudFBhcnNlcgotICAgICAgICB2aXJ0
dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBhcHBlbmREYXRhKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZmluaXNoV2Fz
Q2FsbGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29u
c3Q7CkBAIC0xMzgsOCArMTQxLDYgQEAgcHVibGljOgogICAgICAgICB2b2lkIGVuZERvY3VtZW50
KCk7CiAjZW5kaWYKICAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQgYm9vbCBwYXJzZVhNTERv
Y3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCosIEVsZW1lbnQq
LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwotCiAgICAgICAgIHZvaWQgaW5pdGlhbGl6
ZVBhcnNlckNvbnRleHQoY29uc3QgY2hhciogY2h1bmsgPSAwKTsKIAogICAgICAgICB2b2lkIHB1
c2hDdXJyZW50Tm9kZShOb2RlKik7CkBAIC0yMDYsNyArMjA3LDYgQEAgdm9pZCogeG1sRG9jUHRy
Rm9yU3RyaW5nKERvY0xvYWRlciosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcm
IHVybCk7CiAjZW5kaWYKIAogSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcGFyc2VBdHRyaWJ1dGVz
KGNvbnN0IFN0cmluZyYsIGJvb2wmIGF0dHJzT0spOwotYm9vbCBwYXJzZVhNTERvY3VtZW50RnJh
Z21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCosIEVsZW1lbnQqIHBhcmVudCA9
IDAsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dl
ZCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAKaW5kZXggMzNiMGEwOTc4M2Q4MjJhZmQ3M2NhNGYxMGEzNDUyNWQ4ZTZl
YTYzOS4uNzg0NmY4ZjdhZjI4ZGIyOWRkMzRkNTcwNDMzZDI2MDQ4NmZmMzFjMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xMzYzLDcgKzEzNjMsNyBAQCB2
b2lkIFhNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJzaW5nKCkKICAgICAvLyBUaGVuLCB3cml0
ZSBhbnkgcGVuZGluZyBkYXRhCiAgICAgU2VnbWVudGVkU3RyaW5nIHJlc3QgPSBtX3BlbmRpbmdT
cmM7CiAgICAgbV9wZW5kaW5nU3JjLmNsZWFyKCk7Ci0gICAgd3JpdGUocmVzdCwgZmFsc2UpOwor
ICAgIGFwcGVuZChyZXN0KTsKIAogICAgIC8vIEZpbmFsbHksIGlmIGZpbmlzaCgpIGhhcyBiZWVu
IGNhbGxlZCBhbmQgd3JpdGUoKSBkaWRuJ3QgcmVzdWx0CiAgICAgLy8gaW4gYW55IGZ1cnRoZXIg
Y2FsbGJhY2tzIGJlaW5nIHF1ZXVlZCwgY2FsbCBlbmQoKQpAQCAtMTM3Myw3ICsxMzczLDcgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZygpCiAKIC8vIEZJWE1FOiBUaGlz
IG1ldGhvZCBzaG91bGQgYmUgcG9zc2libGUgdG8gaW1wbGVtZW50IHVzaW5nIHRoZSBEb2N1bWVu
dFBhcnNlcgogLy8gQVBJLCBpbnN0ZWFkIG9mIG5lZWRpbmcgdG8gZ3JhYiBhdCBsaWJ4bWwyIHN0
YXRlIGRpcmVjdGx5LgotYm9vbCBwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5n
JiBjaHVuaywgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudCwgRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCitib29sIFhNTERv
Y3VtZW50UGFyc2VyOjpwYXJzZURvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBjaHVuaywg
RG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudCwgRnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAgaWYgKCFjaHVuay5s
ZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Y
TUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQu
Y3BwCmluZGV4IDNiNjU3ZjFkNzBiNTI4N2U3YmNkZWFkMDAyMzYxNWExYjQwYTE5OTUuLmQyZjM4
YTI2ZGViNjE3M2Q2N2FhMzA4ZDg0NWQ4ZDk1MjdkYjJmM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyUXQuY3BwCkBAIC0yNDUsMjQgKzI0NSwyNCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2Vy
OjpyZXN1bWVQYXJzaW5nKCkKICAgICAvLyBUaGVuLCB3cml0ZSBhbnkgcGVuZGluZyBkYXRhCiAg
ICAgU2VnbWVudGVkU3RyaW5nIHJlc3QgPSBtX3BlbmRpbmdTcmM7CiAgICAgbV9wZW5kaW5nU3Jj
LmNsZWFyKCk7Ci0gICAgd3JpdGUocmVzdCwgZmFsc2UpOworICAgIGFwcGVuZChyZXN0KTsKIAot
ICAgIC8vIEZpbmFsbHksIGlmIGZpbmlzaCgpIGhhcyBiZWVuIGNhbGxlZCBhbmQgd3JpdGUoKSBk
aWRuJ3QgcmVzdWx0CisgICAgLy8gRmluYWxseSwgaWYgZmluaXNoKCkgaGFzIGJlZW4gY2FsbGVk
IGFuZCBhcHBlbmQoKSBkaWRuJ3QgcmVzdWx0CiAgICAgLy8gaW4gYW55IGZ1cnRoZXIgY2FsbGJh
Y2tzIGJlaW5nIHF1ZXVlZCwgY2FsbCBlbmQoKQogICAgIGlmIChtX2ZpbmlzaENhbGxlZCAmJiAh
bV9wYXJzZXJQYXVzZWQgJiYgIW1fcGVuZGluZ1NjcmlwdCkKICAgICAgICAgZW5kKCk7CiB9CiAK
LWJvb2wgcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgY2h1bmssIERvY3Vt
ZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQsIEZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorYm9vbCBYTUxEb2N1bWVudFBhcnNlcjo6
cGFyc2VEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgY2h1bmssIERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
biBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewogICAgIGlmICghY2h1bmsubGVuZ3RoKCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgWE1MRG9jdW1lbnRQYXJzZXIgcGFyc2VyKGZyYWdtZW50
LCBwYXJlbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogCi0gICAgcGFyc2VyLndyaXRlKFN0cmlu
ZygiPHF4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKLSAgICBwYXJzZXIud3JpdGUo
Y2h1bmssIGZhbHNlKTsKLSAgICBwYXJzZXIud3JpdGUoU3RyaW5nKCI8L3F4bWxzdHJlYW1kdW1t
eWVsZW1lbnQ+IiksIGZhbHNlKTsKKyAgICBwYXJzZXIuYXBwZW5kKCI8cXhtbHN0cmVhbWR1bW15
ZWxlbWVudD4iKTsKKyAgICBwYXJzZXIuYXBwZW5kKGNodW5rKTsKKyAgICBwYXJzZXIuYXBwZW5k
KCI8L3F4bWxzdHJlYW1kdW1teWVsZW1lbnQ+Iik7CiAgICAgcGFyc2VyLmZpbmlzaCgpOwogICAg
IHJldHVybiAhcGFyc2VyLmhhc0Vycm9yKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCmluZGV4IDVjMzE4ZjcxNTk3YTYzMjkxOThlMmQxNWQzODdiYzU0MWVlNjBkZmQuLjNlYjEx
MThlYmIxOTMwN2YwYzBlMzYxZTM5YTE0MWE1OTA5NzFiZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCkBAIC0yMTMsMjggKzIxMywzNiBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNl
cjo6ZGlkUHVtcExleGVyKCkKICNlbmRpZgogfQogCi12b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wgaXNGcm9tTmV0d29yaykK
K3ZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UpCiB7CiAgICAgaWYgKG1fcGFyc2VyU3RvcHBlZCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV93cml0
ZU5lc3RpbmdMZXZlbCk7CisgICAgbV9pbnB1dC5pbnNlcnRBdEN1cnJlbnRJbnNlcnRpb25Qb2lu
dChzb3VyY2UpOworICAgIHB1bXBUb2tlbml6ZXJJZlBvc3NpYmxlKEZvcmNlU3luY2hyb25vdXMp
OworICAgIGVuZElmRGVsYXllZCgpOworfQogCi0gICAgaWYgKGlzRnJvbU5ldHdvcmspIHsKLSAg
ICAgICAgbV9pbnB1dC5hcHBlbmRUb0VuZChzb3VyY2UpOwotICAgICAgICBpZiAobV9wcmVsb2Fk
U2Nhbm5lcikKLSAgICAgICAgICAgIG1fcHJlbG9hZFNjYW5uZXItPmFwcGVuZFRvRW5kKHNvdXJj
ZSk7Cit2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlKQoreworICAgIGlmIChtX3BhcnNlclN0b3BwZWQpCisgICAgICAgIHJldHVybjsK
IAotICAgICAgICBpZiAobV93cml0ZU5lc3RpbmdMZXZlbCA+IDEpIHsKLSAgICAgICAgICAgIC8v
IFdlJ3ZlIGdvdHRlbiBkYXRhIG9mZiB0aGUgbmV0d29yayBpbiBhIG5lc3RlZCBjYWxsIHRvIHdy
aXRlKCkuCi0gICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNvbnN1bWUgYW55IG1vcmUg
b2YgdGhlIGlucHV0IHN0cmVhbSBub3cuICBEbwotICAgICAgICAgICAgLy8gbm90IHdvcnJ5LiAg
V2UnbGwgY29uc3VtZSB0aGlzIGRhdGEgaW4gYSBsZXNzLW5lc3RlZCB3cml0ZSgpLgotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIG1faW5wdXQuaW5z
ZXJ0QXRDdXJyZW50SW5zZXJ0aW9uUG9pbnQoc291cmNlKTsKKyAgICBOZXN0aW5nTGV2ZWxJbmNy
ZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3dyaXRlTmVzdGluZ0xldmVsKTsKKwor
ICAgIG1faW5wdXQuYXBwZW5kVG9FbmQoc291cmNlKTsKKyAgICBpZiAobV9wcmVsb2FkU2Nhbm5l
cikKKyAgICAgICAgbV9wcmVsb2FkU2Nhbm5lci0+YXBwZW5kVG9FbmQoc291cmNlKTsKKworICAg
IGlmIChtX3dyaXRlTmVzdGluZ0xldmVsID4gMSkgeworICAgICAgICAvLyBXZSd2ZSBnb3R0ZW4g
ZGF0YSBvZmYgdGhlIG5ldHdvcmsgaW4gYSBuZXN0ZWQgd3JpdGUuCisgICAgICAgIC8vIFdlIGRv
bid0IHdhbnQgdG8gY29uc3VtZSBhbnkgbW9yZSBvZiB0aGUgaW5wdXQgc3RyZWFtIG5vdy4gIERv
CisgICAgICAgIC8vIG5vdCB3b3JyeS4gIFdlJ2xsIGNvbnN1bWUgdGhpcyBkYXRhIGluIGEgbGVz
cy1uZXN0ZWQgd3JpdGUoKS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHB1bXBUb2tl
bml6ZXJJZlBvc3NpYmxlKGlzRnJvbU5ldHdvcmsgPyBBbGxvd1lpZWxkIDogRm9yY2VTeW5jaHJv
bm91cyk7CisgICAgcHVtcFRva2VuaXplcklmUG9zc2libGUoQWxsb3dZaWVsZCk7CiAgICAgZW5k
SWZEZWxheWVkKCk7CiB9CiAKQEAgLTM5OCw3ICs0MDYsNyBAQCBTY3JpcHRDb250cm9sbGVyKiBI
VE1MRG9jdW1lbnRQYXJzZXI6OnNjcmlwdCgpIGNvbnN0CiB2b2lkIEhUTUxEb2N1bWVudFBhcnNl
cjo6cGFyc2VEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgc291cmNlLCBEb2N1bWVudEZy
YWdtZW50KiBmcmFnbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Bl
cm1pc3Npb24pCiB7CiAgICAgSFRNTERvY3VtZW50UGFyc2VyIHBhcnNlcihmcmFnbWVudCwgc2Ny
aXB0aW5nUGVybWlzc2lvbik7Ci0gICAgcGFyc2VyLndyaXRlKHNvdXJjZSwgZmFsc2UpOworICAg
IHBhcnNlci5pbnNlcnQoc291cmNlKTsgLy8gVXNlIGluc2VydCgpIHNvIHRoYXQgdGhlIHBhcnNl
ciB3aWxsIG5vdCB5aWVsZC4KICAgICBwYXJzZXIuZmluaXNoKCk7CiAgICAgQVNTRVJUKCFwYXJz
ZXIucHJvY2Vzc2luZ0RhdGEoKSk7IC8vIE1ha2Ugc3VyZSB3ZSdyZSBkb25lLiA8cmRhcjovL3By
b2JsZW0vMzk2MzE1MT4KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQ
YXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBjMmU3NTJm
NGU0MmNjMzExOWY0MzczMWUyNzdkNzA3MWNhYjUzNTY1Li5kYjVmNWNjODAwMDY3MTVmYmU3NWVi
NWUwMjViMGEyN2Y4ODcxZTY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50
UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC02NCw4
ICs2NCw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBEb2N1bWVudFBhcnNlcgotICAg
IHZpcnR1YWwgdm9pZCBiZWdpbigpOwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmLCBib29sIGlzRnJvbU5ldHdvcmspOworICAgIHZpcnR1YWwgdm9pZCBpbnNl
cnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25z
dCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7CiAgICAgdmly
dHVhbCBib29sIGZpbmlzaFdhc0NhbGxlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzaW5n
RGF0YSgpIGNvbnN0OwpAQCAtMTAxLDYgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBydW5T
Y3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIoKTsKICAgICB2b2lkIHJlc3VtZVBhcnNpbmdBZnRl
clNjcmlwdEV4ZWN1dGlvbigpOwogCisgICAgdm9pZCBiZWdpbigpOwogICAgIHZvaWQgYXR0ZW1w
dFRvRW5kKCk7CiAgICAgdm9pZCBlbmRJZkRlbGF5ZWQoKTsKICAgICB2b2lkIGVuZCgpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJD
b3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCAzOGM4YTc1MmVkOTA2
ZTc2OGYxN2YwZTI0MjkzMTk5OWUxMWY2NGU1Li4wMjI5YjA4MzQ1OWNlMzhmYTMxMDM0MWI2OGY5
YjA2NDIwYTNiMmIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNw
cApAQCAtMTc5MSw2ICsxNzkxLDIzIEBAIHZvaWQgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjp3
cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHN0ciwgYm9vbCBhcHBlbmREYXRhCiAgICAgSW1h
Z2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9yZUxvYWRFdmVudHMoKTsKIH0KIAordm9pZCBM
ZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSkKK3sKKyAgICAvLyBGSVhNRTogZm9yY2VTeW5jaHJvbm91cyBzaG91bGQgYWx3YXlzIGJl
IHRoZSBzYW1lIGFzIHRoZSBib29sIHBhc3NlZCB0bworICAgIC8vIHdyaXRlKCkuICBIb3dldmVy
IExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlciB1c2VzIHdyaXRlKCIiLCBmYWxzZSkgdG8gcHVtcAor
ICAgIC8vIHRoZSBwYXJzZXIgKGFmdGVyIHJ1bm5pbmcgZXh0ZXJuYWwgc2NyaXB0cywgZXRjLikg
dGh1cyBuZWNlc3NpdGF0aW5nIGEKKyAgICAvLyBzZXBhcmF0ZSBzdGF0ZSBmb3IgZm9yY2VTeW5j
aHJvbm91cy4KKyAgICBib29sIHdhc0ZvcmNlZFN5bmNocm9ub3VzID0gZm9yY2VTeW5jaHJvbm91
cygpOworICAgIHNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7CisgICAgd3JpdGUoc291cmNlLCBm
YWxzZSk7CisgICAgc2V0Rm9yY2VTeW5jaHJvbm91cyh3YXNGb3JjZWRTeW5jaHJvbm91cyk7Cit9
CisKK3ZvaWQgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiBzb3VyY2UpCit7CisgICAgd3JpdGUoc291cmNlLCB0cnVlKTsKK30KKwogdm9pZCBM
ZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKIHsKICAgICBEb2N1bWVudFBh
cnNlcjo6c3RvcFBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1M
RG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIu
aAppbmRleCA1Yjk2YmMzMTczNDI5NWEyYzk1MWIzZjA3ZTk4Mzk3ZThiNDRiZTI5Li40OGQxMjg0
YjJlYmZiYzc3YzdjZGE1MDVjNTAxMGEwYTZlYWQzZjgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0xlZ2FjeUhU
TUxEb2N1bWVudFBhcnNlci5oCkBAIC0xNTcsMTEgKzE1NywxMiBAQCBwdWJsaWM6CiAKIHByb3Rl
Y3RlZDoKICAgICAvLyBFeHBvc2VkIGZvciBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcgotICAg
IHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERh
dGEpOworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CiAg
ICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwogCiBwcml2YXRlOgogICAgIC8vIERvY3VtZW50UGFy
c2VyCisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgZmluaXNoV2FzQ2FsbGVkKCk7CiAgICAgdmlydHVhbCBib29sIGlzV2Fp
dGluZ0ZvclNjcmlwdHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFBhcnNpbmcoKTsK
QEAgLTE4Myw2ICsxODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZv
aWQgd2lsbFdyaXRlSFRNTChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKKyAgICB2b2lkIHdyaXRl
KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgYXBwZW5kRGF0YSk7CiAgICAgQUxXQVlTX0lO
TElORSB2b2lkIGFkdmFuY2UoU3RhdGUmKTsKICAgICB2b2lkIGRpZFdyaXRlSFRNTCgpOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXggMjc3MTQ0NzYzY2QxYjE5ZTM0Yzk2MjcxMzQ2
NDA2YzExODZlOTRkMi4uZjcyZTdmYmU4ZTliNmMzNGY2MWE5OWYyYWQ2N2Y3MDc2YWE5ODM0NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIERvY3Vt
ZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgICAg
IC8vIEZJWE1FOiBJZiB3ZSB3YW50ZWQgdG8gc3VwcG9ydCB0aGUgPGltZyBzcmM9J2phdmFzY3Jp
cHQ6J2ltYWdlZGF0YSc+CiAgICAgICAgIC8vIGNhc2UgdGhlbiB3ZSB3b3VsZCBuZWVkIHRvIGNh
bGwgYWRkRGF0YShjaGFyKiwgaW50KSBpbnN0ZWFkLgogICAgICAgICBpZiAoRG9jdW1lbnRQYXJz
ZXIqIHBhcnNlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpKQotICAgICAgICAgICAg
cGFyc2VyLT53cml0ZShzb3VyY2UsIHRydWUpOworICAgICAgICAgICAgcGFyc2VyLT5hcHBlbmQo
c291cmNlKTsKICAgICB9CiAKICAgICBlbmQoKTsKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIERv
Y3VtZW50V3JpdGVyOjphZGREYXRhKGNvbnN0IGNoYXIqIHN0ciwgaW50IGxlbiwgYm9vbCBmbHVz
aCkKIAogICAgIGlmIChwYXJzZXIpIHsKICAgICAgICAgQVNTRVJUKCFwYXJzZXItPndhbnRzUmF3
RGF0YSgpKTsKLSAgICAgICAgcGFyc2VyLT53cml0ZShkZWNvZGVkLCB0cnVlKTsKKyAgICAgICAg
cGFyc2VyLT5hcHBlbmQoZGVjb2RlZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJl
Y3RvcnlEb2N1bWVudC5jcHAKaW5kZXggZDZhYWE0NzQ2YmRhZDNhYzYyZTE2Yzc3MmEzMThiMTcw
YzBhZTg4Yi4uY2E1MWRlZTNjZDI1ZDU4YmFmOTU2OGYxOWIzM2NiOWM3NDViY2YxYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcApAQCAtNTIsNyArNTIsNyBAQCBjbGFz
cyBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlciA6IHB1YmxpYyBMZWdhY3lIVE1MRG9jdW1lbnRQ
YXJzZXIgewogcHVibGljOgogICAgIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyKEhUTUxEb2N1
bWVudCopOwogCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYs
IGJvb2wgYXBwZW5kRGF0YSk7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50
ZWRTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7CiAgICAgCiAgICAgdmlydHVh
bCBib29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAt
MTAwLDcgKzEwMCw3IEBAIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpGVFBEaXJlY3RvcnlE
b2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9zaXplKDI1NCkK
ICAgICAsIG1fYnVmZmVyKHN0YXRpY19jYXN0PFVDaGFyKj4oZmFzdE1hbGxvYyhzaXplb2YoVUNo
YXIpICogbV9zaXplKSkpCiAgICAgLCBtX2Rlc3QobV9idWZmZXIpCi17ICAgIAorewogfSAgICAK
IAogdm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6YXBwZW5kRW50cnkoY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBzaXplLCBjb25zdCBTdHJpbmcmIGRhdGUsIGJv
b2wgaXNEaXJlY3RvcnkpCkBAIC0zMDEsMTEgKzMwMSw4IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBsYXRlKCkKICAgICAgICAgTE9HX0VSUk9SKCJD
b3VsZCBub3QgbG9hZCB0ZW1wbGF0ZURhdGEiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICAKLSAgICAvLyBUb2tlbml6ZSB0aGUgdGVtcGxhdGUgYXMgYW4gSFRNTCBkb2N1bWVu
dCBzeW5jaHJvbm91c2x5Ci0gICAgc2V0Rm9yY2VTeW5jaHJvbm91cyh0cnVlKTsKLSAgICBMZWdh
Y3lIVE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKFN0cmluZyh0ZW1wbGF0ZURvY3VtZW50RGF0YS0+
ZGF0YSgpLCB0ZW1wbGF0ZURvY3VtZW50RGF0YS0+c2l6ZSgpKSwgdHJ1ZSk7Ci0gICAgc2V0Rm9y
Y2VTeW5jaHJvbm91cyhmYWxzZSk7CisKKyAgICBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXI6Omlu
c2VydChTdHJpbmcodGVtcGxhdGVEb2N1bWVudERhdGEtPmRhdGEoKSwgdGVtcGxhdGVEb2N1bWVu
dERhdGEtPnNpemUoKSkpOwogICAgIAogICAgIFJlZlB0cjxFbGVtZW50PiB0YWJsZUVsZW1lbnQg
PSBkb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZCgiZnRwRGlyZWN0b3J5VGFibGUiKTsKICAgICBp
ZiAoIXRhYmxlRWxlbWVudCkKQEAgLTM1NCw4ICszNTEsOCBAQCB2b2lkIEZUUERpcmVjdG9yeURv
Y3VtZW50UGFyc2VyOjpjcmVhdGVCYXNpY0RvY3VtZW50KCkKICAgICBib2R5RWxlbWVudC0+YXBw
ZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIGVjKTsKIH0KIAotdm9pZCBGVFBEaXJlY3RvcnlEb2N1
bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzLCBib29sIC8qYXBwZW5k
RGF0YSovKQoteyAgICAKK3ZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChj
b25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2
ZSB0aGUgdGFibGUgZWxlbWVudCB0byBhcHBlbmQgdG8gYnkgbG9hZGluZyB0aGUgdGVtcGxhdGUg
c2V0IGluIHRoZSBwcmVmLCBvcgogICAgIC8vIGNyZWF0aW5nIGEgdmVyeSBiYXNpYyBkb2N1bWVu
dCB3aXRoIHRoZSBhcHByb3ByaWF0ZSB0YWJsZQogICAgIGlmICghbV90YWJsZUVsZW1lbnQpIHsK
QEAgLTM2Nyw3ICszNjQsNyBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjp3cml0
ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMsIGJvb2wgLyphcHBlbmREYQogICAgIGJvb2wgZm91
bmROZXdMaW5lID0gZmFsc2U7CiAgICAgCiAgICAgbV9kZXN0ID0gbV9idWZmZXI7Ci0gICAgU2Vn
bWVudGVkU3RyaW5nIHN0ciA9IHM7CisgICAgU2VnbWVudGVkU3RyaW5nIHN0ciA9IHNvdXJjZTsK
ICAgICB3aGlsZSAoIXN0ci5pc0VtcHR5KCkpIHsKICAgICAgICAgVUNoYXIgYyA9ICpzdHI7CiAg
ICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcCBiL1dl
YkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5jcHAKaW5kZXggOWM2MTYxMDc4MzhlYjM2Y2RiYzM2
N2M0M2E5OTM5NzNkOTQ5YTFmOC4uM2JhMWU4NDNhNzVhM2MxYTdkZTc5Yjk4NGE5YjMxMTBkN2I2
M2U1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwCkBAIC0yNSwxMiArMjUsMTIgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIKIAorI2luY2x1ZGUgIkRv
Y3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhUTUxWaWV3U291cmNlRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWdt
ZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJUZXh0LmgiCi0jaW5jbHVkZSAiWE1MRG9jdW1lbnRQ
YXJzZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDUsNyArNDUsOCBAQCBwdWJs
aWM6CiAgICAgVGV4dERvY3VtZW50UGFyc2VyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqKTsKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwg
Ym9vbCBhcHBlbmREYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRl
ZFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5n
Jik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwogICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hX
YXNDYWxsZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0
OwpAQCAtOTksNyArMTAwLDEyIEBAIFRleHREb2N1bWVudFBhcnNlcjo6flRleHREb2N1bWVudFBh
cnNlcigpCiAgICAgQVNTRVJUKCFtX2J1ZmZlcik7CiB9CiAKLXZvaWQgVGV4dERvY3VtZW50UGFy
c2VyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMsIGJvb2wpCit2b2lkIFRleHREb2N1
bWVudFBhcnNlcjo6aW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjphcHBlbmQoY29u
c3QgU2VnbWVudGVkU3RyaW5nJiBzKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKQEAgLTE2
Miw3ICsxNjgsNyBAQCB2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVu
dGVkU3RyaW5nJiBzLCBib29sKQogdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB7
CiAgICAgaWYgKCFtX3ByZUVsZW1lbnQpCi0gICAgICAgIHdyaXRlKFNlZ21lbnRlZFN0cmluZygp
LCB0cnVlKTsgLy8gQ3JlYXRlIGRvY3VtZW50IHN0cnVjdHVyZSBmb3IgYW4gZW1wdHkgdGV4dCBk
b2N1bWVudC4KKyAgICAgICAgYXBwZW5kKFNlZ21lbnRlZFN0cmluZygpKTsgLy8gQ3JlYXRlIGRv
Y3VtZW50IHN0cnVjdHVyZSBmb3IgYW4gZW1wdHkgdGV4dCBkb2N1bWVudC4KICAgICBtX3ByZUVs
ZW1lbnQgPSAwOwogICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKICAgICBtX2J1ZmZlciA9IDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59791</attachid>
            <date>2010-06-25 13:43:55 -0700</date>
            <delta_ts>2010-06-25 13:58:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41197-20100625134353.patch</filename>
            <type>text/plain</type>
            <size>21848</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTNlNTNjZTc1ZmE5MmQwMGY3NWEyMWNiYTMxNDcxZDc5ZWRlODBjYy4uZjg3NzQzN2Y1MmQ1MDA2
NzUxMDUxZDgxODFjYWQ5ODc3YjViZTc3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMC0wNi0yNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBTcGxpdCBEb2N1bWVudFBhcnNlcjo6d3JpdGUgaW50byBzZXBhcmF0
ZSBhcHBlbmQgYW5kIGluc2VydCBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDExOTcKKworICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoaXMgaXMg
c3RpbGwgc29tZXdoYXQgY29uZnVzaW5nIGFzCisgICAgICAgICJpbnNlcnQiIG1lYW5zICJpbnNl
cnQgdGhpcyBkYXRhIGF0IHRoZSBjdXJyZW50CisgICAgICAgIGluc2VydGlvbiBwb2ludCBhbmQg
cnVuIHRoZSBwYXJzZXIgc3luY2hyb25vdXNseQorICAgICAgICB1bmxlc3Mgd2UncmUgaW4gYSBu
ZXN0ZWQgd3JpdGUgY2FsbCIgYW5kICJhcHBlbmQiCisgICAgICAgIG1lYW5zICJhcHBlbmQgdGhp
cyBkYXRhIHRvIHRoZSBlbmQgYW5kIHJ1biB0aGUKKyAgICAgICAgcGFyc2VyIGlmIG5vdCBpbiBh
IG5lc3RlZCBjYWxsIG9yIHVudGlsIHBvc3NpYmx5IHlpZWxkaW5nIi4KKworICAgICAgICBUaGlz
IGF0IGxlYXN0IG1ha2VzIGNsZWFyZXIgd2hpY2ggZG9jdW1lbnQgcGFyc2VycyBpbXBsZW1lbnQK
KyAgICAgICAgd2hpY2ggYmVoYXZpb3IsIGFuZCBwYXZlcyB0aGUgd2F5IGZvciBtb3ZpbmcgdGhl
IGRlY29kaW5nCisgICAgICAgIGxvZ2ljIGludG8gRG9jdW1lbnRQYXJzZXIgZnJvbSBEb2N1bWVu
dFdyaXRlci4KKworICAgICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZXMsIHRodXMgbm8gdGVzdHMu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OndyaXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiBk
b20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpSYXdEYXRhRG9j
dW1lbnRQYXJzZXI6Omluc2VydCk6CisgICAgICAgIChXZWJDb3JlOjpSYXdEYXRhRG9jdW1lbnRQ
YXJzZXI6OmFwcGVuZCk6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCk6CisgICAgICAgICogZG9tL1hNTERvY3Vt
ZW50UGFyc2VyLmg6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZyk6Cisg
ICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
OjpwYXJzZURvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFy
c2VyLmg6CisgICAgICAgICogaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAq
IGh0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyOjpyZXBsYWNl
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OmFkZERhdGEpOgor
ICAgICAgICAqIGxvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJz
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmxvYWRE
b2N1bWVudFRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50
UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAqIGxvYWRlci9UZXh0RG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dERvY3VtZW50UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dERvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorCiAyMDEwLTA2LTI1ICBEYW5pZWwgQ2hlbmcgIDxk
Y2hlbmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCA4OThjYzRiMDExYzYzMzAzODA0OGNlYjYxZGYzOWM1N2E3NWQ4ZjU2Li44
ZGRlZGIzNTZjMWU5Mjg2ZGZmOTVjZGZiZmM1OTk4ZWVjMWIxN2NlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0x
OTk4LDIxICsxOTk4LDcgQEAgdm9pZCBEb2N1bWVudDo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3Ry
aW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICAgICAgb3Blbihvd25lckRv
Y3VtZW50KTsKIAogICAgIEFTU0VSVChtX3BhcnNlcik7Ci0gICAgLy8gRklYTUU6IGZvcmNlU3lu
Y2hyb25vdXMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBhcyB0aGUgYm9vbCBwYXNzZWQgdG8K
LSAgICAvLyB3cml0ZSgpLiAgSG93ZXZlciBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIgdXNlcyB3
cml0ZSgiIiwgZmFsc2UpIHRvIHB1bXAKLSAgICAvLyB0aGUgcGFyc2VyIChhZnRlciBydW5uaW5n
IGV4dGVybmFsIHNjcmlwdHMsIGV0Yy4pIHRodXMgbmVjZXNzaXRhdGluZyBhCi0gICAgLy8gc2Vw
YXJhdGUgc3RhdGUgZm9yIGZvcmNlU3luY2hyb25vdXMuCi0gICAgYm9vbCB3YXNGb3JjZWRTeW5j
aHJvbm91cyA9IGZhbHNlOwotICAgIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0g
bV9wYXJzZXItPmFzSFRNTERvY3VtZW50UGFyc2VyKCk7Ci0gICAgaWYgKHBhcnNlcikgewotICAg
ICAgICB3YXNGb3JjZWRTeW5jaHJvbm91cyA9IHBhcnNlci0+Zm9yY2VTeW5jaHJvbm91cygpOwot
ICAgICAgICBwYXJzZXItPnNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7Ci0gICAgfQotCi0gICAg
bV9wYXJzZXItPndyaXRlKHRleHQsIGZhbHNlKTsKLQotICAgIGlmIChtX3BhcnNlciAmJiBwYXJz
ZXIgJiYgbV9wYXJzZXItPmFzSFRNTERvY3VtZW50UGFyc2VyKCkgPT0gcGFyc2VyKQotICAgICAg
ICBwYXJzZXItPnNldEZvcmNlU3luY2hyb25vdXMod2FzRm9yY2VkU3luY2hyb25vdXMpOworICAg
IG1fcGFyc2VyLT5pbnNlcnQodGV4dCk7CiAKICNpZmRlZiBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hF
RFVMSU5HCiAgICAgaWYgKCFvd25lckVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAK
aW5kZXggNzI4NzQzOTYyNmYyNmQxMGRjYjQyODJkNzUyMDZhZDdhZTg1NzRiOS4uZWNjNTcyNTlm
ZWU4YWUzZWZkNzBiODlkZGY3MDQxZmIzZTVjYzVjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5j
cHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBEb2N1bWVudEZyYWdtZW50OjpwYXJzZUhUTUwoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2kKIAogYm9vbCBEb2N1
bWVudEZyYWdtZW50OjpwYXJzZVhNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCogcGFy
ZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKIHsK
LSAgICByZXR1cm4gcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KHNvdXJjZSwgdGhpcywgcGFyZW50
LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICByZXR1cm4gWE1MRG9jdW1lbnRQYXJzZXI6OnBh
cnNlRG9jdW1lbnRGcmFnbWVudChzb3VyY2UsIHRoaXMsIHBhcmVudCwgc2NyaXB0aW5nUGVybWlz
c2lvbik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCmluZGV4IDg4MTEzNmMzMGVkNzFmZGFiZTNk
MWE0OTJlYjlmNGViMmJhZmZmZWYuLjJiOTBlZjhhZGU4ZGM3ODQ0ZGU3NGU5MjhiMDYzNGI4OTdm
N2JmYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKKysrIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaApAQCAtMzgsMTEgKzM4LDExIEBAIGNsYXNzIERvY3Vt
ZW50UGFyc2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5E
b2N1bWVudFBhcnNlcigpIHsgfQogCi0gICAgLy8gU2NyaXB0IG91dHB1dCBtdXN0IGJlIHByZXBl
bmRlZCwgd2hpbGUgbmV3IGRhdGEKLSAgICAvLyByZWNlaXZlZCBkdXJpbmcgZXhlY3V0aW5nIGEg
c2NyaXB0IG11c3QgYmUgYXBwZW5kZWQsIGhlbmNlIHRoZQotICAgIC8vIGV4dHJhIGJvb2wgdG8g
YmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGJvdGggY2FzZXMuCi0gICAgLy8gZG9jdW1l
bnQud3JpdGUoKSBhbHdheXMgdXNlcyBmYWxzZSwgd2hpbGUgdGhlIGxvYWRlciB1c2VzIHRydWUu
Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgaXNG
cm9tTmV0d29yaykgPSAwOworICAgIC8vIGluc2VydCBpcyB1c2UgYnkgZG9jdW1lbnQud3JpdGUK
KyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpID0gMDsKKyAg
ICAvLyBhcGVuZCBpcyB1c2VkIGJ5IERvY3VtZW50V3JpdGVyICh0aGUgbG9hZGVyKQorICAgIHZp
cnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgPSAwOworCiAgICAgdmly
dHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluaXNoV2FzQ2FsbGVk
KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QgPSAw
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmggYi9XZWJD
b3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaAppbmRleCA3N2QxNDhkZjlkMDE2OTkzM2I3
NzhkYzU2NDVhNzBhY2Q3OTZjZDdlLi5mM2MwNzM5NWY3ZWMyZWU3NDBhNDliMTNiMTQ1OTEyM2Nk
MjMwN2VmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaAor
KysgYi9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaApAQCAtNTEsMTIgKzUxLDE3
IEBAIHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRl
KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wpCisgICAgdmlydHVhbCB2b2lkIGluc2VydChj
b25zdCBTZWdtZW50ZWRTdHJpbmcmKQogICAgIHsKICAgICAgICAgLy8gPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTM5Nz46IEpTIGNvZGUgY2FuIGFsd2F5cyBjYWxs
IGRvY3VtZW50LndyaXRlLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4KICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQorCiAgICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0NhbGxlZCgpCiAgICAgewogICAgICAgICAv
LyBmaW5pc2goKSBhbHdheXMgY2FsbHMgZG9jdW1lbnQoKS0+ZmluaXNoZWRQYXJzaW5nKCkgc28g
d2Ugd2lsbCBiZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3Bw
IGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGFiMDJiYjM0MDI4NjI5
NWM5NjgwMGQ4MTg1YThlNWU0NDM0NDgyNzcuLjNkZGQ2NmJjNmY2MDEzODRiYjBhZTg1MTMwM2Nl
NDAyNGNhNmRhZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNw
cAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTExNiw3ICsxMTYs
MTYgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNrKCkKICAg
ICB9CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYgcywgYm9vbCAvKmFwcGVuZERhdGEqLykKK3ZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Omlu
c2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICAvLyBGSVhNRTogVGhp
cyBpcyBhIGhhY2sgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCBYTUxIdHRwUmVxdWVzdAor
ICAgIC8vIHJlc3BvbnNlWE1MKCkgY2FsbHMgRG9jdW1lbnQ6OndyaXRlKCkgd2hpY2ggaW4gdHVy
biBjYWxscyBpbnNlcnQoKS4gSW4KKyAgICAvLyBIVE1MLCB0aGF0J3MgY29ycmVjdCwgYXMgaW5z
ZXJ0KCkgaW1wbGllcyBhIHN5bmNocm9ub3VzIHBhcnNlLiAgRm9yIFhNTCwKKyAgICAvLyBhbGwg
cGFyc2luZyBpcyBzeW5jaHJvbm91cyBidXQgZG9jdW1lbnQud3JpdGUgc2hvdWxkbid0IGJlIHN1
cHBvcnRlZC4KKyAgICBhcHBlbmQoc291cmNlKTsKK30KKwordm9pZCBYTUxEb2N1bWVudFBhcnNl
cjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcykKIHsKICAgICBTdHJpbmcgcGFyc2VT
dHJpbmcgPSBzLnRvU3RyaW5nKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDk1MjBl
YzRmNWEzNDJmMWQwOGIyNTlmMzk3OGY3ODVmM2NjZDM1MDQuLjlmMzY3OTFiYzYwNTVlYmUyNjk4
NGFkN2Q1MDRkNWIwMjI5ZTEwMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtOTAsOSAr
OTAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGlzV01MRG9jdW1lbnQo
KSBjb25zdDsKICNlbmRpZgogCisgICAgc3RhdGljIGJvb2wgcGFyc2VEb2N1bWVudEZyYWdtZW50
KGNvbnN0IFN0cmluZyYsIERvY3VtZW50RnJhZ21lbnQqLCBFbGVtZW50KiBwYXJlbnQgPSAwLCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwor
CiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gRnJvbSBEb2N1bWVudFBhcnNlcgotICAgICAgICB2
aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBhcHBlbmREYXRh
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZmluaXNo
V2FzQ2FsbGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkg
Y29uc3Q7CkBAIC0xMzgsOCArMTQxLDYgQEAgcHVibGljOgogICAgICAgICB2b2lkIGVuZERvY3Vt
ZW50KCk7CiAjZW5kaWYKICAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQgYm9vbCBwYXJzZVhN
TERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCosIEVsZW1l
bnQqLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwotCiAgICAgICAgIHZvaWQgaW5pdGlh
bGl6ZVBhcnNlckNvbnRleHQoY29uc3QgY2hhciogY2h1bmsgPSAwKTsKIAogICAgICAgICB2b2lk
IHB1c2hDdXJyZW50Tm9kZShOb2RlKik7CkBAIC0yMDYsNyArMjA3LDYgQEAgdm9pZCogeG1sRG9j
UHRyRm9yU3RyaW5nKERvY0xvYWRlciosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJp
bmcmIHVybCk7CiAjZW5kaWYKIAogSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcGFyc2VBdHRyaWJ1
dGVzKGNvbnN0IFN0cmluZyYsIGJvb2wmIGF0dHJzT0spOwotYm9vbCBwYXJzZVhNTERvY3VtZW50
RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCosIEVsZW1lbnQqIHBhcmVu
dCA9IDAsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxs
b3dlZCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMzNiMGEwOTc4M2Q4MjJhZmQ3M2NhNGYxMGEzNDUyNWQ4
ZTZlYTYzOS4uNzg0NmY4ZjdhZjI4ZGIyOWRkMzRkNTcwNDMzZDI2MDQ4NmZmMzFjMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xMzYzLDcgKzEzNjMsNyBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJzaW5nKCkKICAgICAvLyBUaGVuLCB3
cml0ZSBhbnkgcGVuZGluZyBkYXRhCiAgICAgU2VnbWVudGVkU3RyaW5nIHJlc3QgPSBtX3BlbmRp
bmdTcmM7CiAgICAgbV9wZW5kaW5nU3JjLmNsZWFyKCk7Ci0gICAgd3JpdGUocmVzdCwgZmFsc2Up
OworICAgIGFwcGVuZChyZXN0KTsKIAogICAgIC8vIEZpbmFsbHksIGlmIGZpbmlzaCgpIGhhcyBi
ZWVuIGNhbGxlZCBhbmQgd3JpdGUoKSBkaWRuJ3QgcmVzdWx0CiAgICAgLy8gaW4gYW55IGZ1cnRo
ZXIgY2FsbGJhY2tzIGJlaW5nIHF1ZXVlZCwgY2FsbCBlbmQoKQpAQCAtMTM3Myw3ICsxMzczLDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZygpCiAKIC8vIEZJWE1FOiBU
aGlzIG1ldGhvZCBzaG91bGQgYmUgcG9zc2libGUgdG8gaW1wbGVtZW50IHVzaW5nIHRoZSBEb2N1
bWVudFBhcnNlcgogLy8gQVBJLCBpbnN0ZWFkIG9mIG5lZWRpbmcgdG8gZ3JhYiBhdCBsaWJ4bWwy
IHN0YXRlIGRpcmVjdGx5LgotYm9vbCBwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgU3Ry
aW5nJiBjaHVuaywgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudCwg
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCitib29sIFhN
TERvY3VtZW50UGFyc2VyOjpwYXJzZURvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBjaHVu
aywgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudCwgRnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAgaWYgKCFjaHVu
ay5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2Vy
UXQuY3BwCmluZGV4IDNiNjU3ZjFkNzBiNTI4N2U3YmNkZWFkMDAyMzYxNWExYjQwYTE5OTUuLjk3
NjY2MzI1MDFmYzJiNzJiZGFkODQ1MDhkZjQ3YmY0NTQ0ZTRmY2UgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwCkBAIC0yNDUsMjQgKzI0NSwyNCBAQCB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpyZXN1bWVQYXJzaW5nKCkKICAgICAvLyBUaGVuLCB3cml0ZSBhbnkgcGVuZGluZyBkYXRh
CiAgICAgU2VnbWVudGVkU3RyaW5nIHJlc3QgPSBtX3BlbmRpbmdTcmM7CiAgICAgbV9wZW5kaW5n
U3JjLmNsZWFyKCk7Ci0gICAgd3JpdGUocmVzdCwgZmFsc2UpOworICAgIGFwcGVuZChyZXN0KTsK
IAotICAgIC8vIEZpbmFsbHksIGlmIGZpbmlzaCgpIGhhcyBiZWVuIGNhbGxlZCBhbmQgd3JpdGUo
KSBkaWRuJ3QgcmVzdWx0CisgICAgLy8gRmluYWxseSwgaWYgZmluaXNoKCkgaGFzIGJlZW4gY2Fs
bGVkIGFuZCBhcHBlbmQoKSBkaWRuJ3QgcmVzdWx0CiAgICAgLy8gaW4gYW55IGZ1cnRoZXIgY2Fs
bGJhY2tzIGJlaW5nIHF1ZXVlZCwgY2FsbCBlbmQoKQogICAgIGlmIChtX2ZpbmlzaENhbGxlZCAm
JiAhbV9wYXJzZXJQYXVzZWQgJiYgIW1fcGVuZGluZ1NjcmlwdCkKICAgICAgICAgZW5kKCk7CiB9
CiAKLWJvb2wgcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgY2h1bmssIERv
Y3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQsIEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQorYm9vbCBYTUxEb2N1bWVudFBhcnNl
cjo6cGFyc2VEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgY2h1bmssIERvY3VtZW50RnJh
Z21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBwYXJlbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewogICAgIGlmICghY2h1bmsubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgWE1MRG9jdW1lbnRQYXJzZXIgcGFyc2VyKGZyYWdt
ZW50LCBwYXJlbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogCi0gICAgcGFyc2VyLndyaXRlKFN0
cmluZygiPHF4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKLSAgICBwYXJzZXIud3Jp
dGUoY2h1bmssIGZhbHNlKTsKLSAgICBwYXJzZXIud3JpdGUoU3RyaW5nKCI8L3F4bWxzdHJlYW1k
dW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKKyAgICBwYXJzZXIuYXBwZW5kKFN0cmluZygiPHF4bWxz
dHJlYW1kdW1teWVsZW1lbnQ+IikpOworICAgIHBhcnNlci5hcHBlbmQoY2h1bmspOworICAgIHBh
cnNlci5hcHBlbmQoU3RyaW5nKCI8L3F4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IikpOwogICAgIHBh
cnNlci5maW5pc2goKTsKICAgICByZXR1cm4gIXBhcnNlci5oYXNFcnJvcigpOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA1YzMxOGY3MTU5N2E2MzI5MTk4ZTJkMTVkMzg3
YmM1NDFlZTYwZGZkLi4zZWIxMTE4ZWJiMTkzMDdmMGMwZTM2MWUzOWExNDFhNTkwOTcxYmZiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjEzLDI4ICsyMTMsMzYgQEAgdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFB1bXBMZXhlcigpCiAjZW5kaWYKIH0KIAotdm9pZCBI
VE1MRG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBi
b29sIGlzRnJvbU5ldHdvcmspCit2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQogewogICAgIGlmIChtX3BhcnNlclN0b3BwZWQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZl
bEluY3JlbWVudGVyKG1fd3JpdGVOZXN0aW5nTGV2ZWwpOworICAgIG1faW5wdXQuaW5zZXJ0QXRD
dXJyZW50SW5zZXJ0aW9uUG9pbnQoc291cmNlKTsKKyAgICBwdW1wVG9rZW5pemVySWZQb3NzaWJs
ZShGb3JjZVN5bmNocm9ub3VzKTsKKyAgICBlbmRJZkRlbGF5ZWQoKTsKK30KIAotICAgIGlmIChp
c0Zyb21OZXR3b3JrKSB7Ci0gICAgICAgIG1faW5wdXQuYXBwZW5kVG9FbmQoc291cmNlKTsKLSAg
ICAgICAgaWYgKG1fcHJlbG9hZFNjYW5uZXIpCi0gICAgICAgICAgICBtX3ByZWxvYWRTY2FubmVy
LT5hcHBlbmRUb0VuZChzb3VyY2UpOwordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChj
b25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICBpZiAobV9wYXJzZXJTdG9wcGVk
KQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAx
KSB7Ci0gICAgICAgICAgICAvLyBXZSd2ZSBnb3R0ZW4gZGF0YSBvZmYgdGhlIG5ldHdvcmsgaW4g
YSBuZXN0ZWQgY2FsbCB0byB3cml0ZSgpLgotICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBjb25zdW1lIGFueSBtb3JlIG9mIHRoZSBpbnB1dCBzdHJlYW0gbm93LiAgRG8KLSAgICAgICAg
ICAgIC8vIG5vdCB3b3JyeS4gIFdlJ2xsIGNvbnN1bWUgdGhpcyBkYXRhIGluIGEgbGVzcy1uZXN0
ZWQgd3JpdGUoKS4KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0gZWxzZQot
ICAgICAgICBtX2lucHV0Lmluc2VydEF0Q3VycmVudEluc2VydGlvblBvaW50KHNvdXJjZSk7Cisg
ICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV93cml0
ZU5lc3RpbmdMZXZlbCk7CisKKyAgICBtX2lucHV0LmFwcGVuZFRvRW5kKHNvdXJjZSk7CisgICAg
aWYgKG1fcHJlbG9hZFNjYW5uZXIpCisgICAgICAgIG1fcHJlbG9hZFNjYW5uZXItPmFwcGVuZFRv
RW5kKHNvdXJjZSk7CisKKyAgICBpZiAobV93cml0ZU5lc3RpbmdMZXZlbCA+IDEpIHsKKyAgICAg
ICAgLy8gV2UndmUgZ290dGVuIGRhdGEgb2ZmIHRoZSBuZXR3b3JrIGluIGEgbmVzdGVkIHdyaXRl
LgorICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNvbnN1bWUgYW55IG1vcmUgb2YgdGhlIGlu
cHV0IHN0cmVhbSBub3cuICBEbworICAgICAgICAvLyBub3Qgd29ycnkuICBXZSdsbCBjb25zdW1l
IHRoaXMgZGF0YSBpbiBhIGxlc3MtbmVzdGVkIHdyaXRlKCkuCisgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKLSAgICBwdW1wVG9rZW5pemVySWZQb3NzaWJsZShpc0Zyb21OZXR3b3JrID8gQWxsb3dZ
aWVsZCA6IEZvcmNlU3luY2hyb25vdXMpOworICAgIHB1bXBUb2tlbml6ZXJJZlBvc3NpYmxlKEFs
bG93WWllbGQpOwogICAgIGVuZElmRGVsYXllZCgpOwogfQogCkBAIC0zOTgsNyArNDA2LDcgQEAg
U2NyaXB0Q29udHJvbGxlciogSFRNTERvY3VtZW50UGFyc2VyOjpzY3JpcHQoKSBjb25zdAogdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcm
IHNvdXJjZSwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbiBzY3JpcHRpbmdQZXJtaXNzaW9uKQogewogICAgIEhUTUxEb2N1bWVudFBhcnNlciBw
YXJzZXIoZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwotICAgIHBhcnNlci53cml0ZShz
b3VyY2UsIGZhbHNlKTsKKyAgICBwYXJzZXIuaW5zZXJ0KHNvdXJjZSk7IC8vIFVzZSBpbnNlcnQo
KSBzbyB0aGF0IHRoZSBwYXJzZXIgd2lsbCBub3QgeWllbGQuCiAgICAgcGFyc2VyLmZpbmlzaCgp
OwogICAgIEFTU0VSVCghcGFyc2VyLnByb2Nlc3NpbmdEYXRhKCkpOyAvLyBNYWtlIHN1cmUgd2Un
cmUgZG9uZS4gPHJkYXI6Ly9wcm9ibGVtLzM5NjMxNTE+CiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFy
c2VyLmgKaW5kZXggYzJlNzUyZjRlNDJjYzMxMTlmNDM3MzFlMjc3ZDcwNzFjYWI1MzU2NS4uZGI1
ZjVjYzgwMDA2NzE1ZmJlNzVlYjVlMDI1YjBhMjdmODg3MWU2OCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnRQYXJzZXIuaApAQCAtNjQsOCArNjQsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
RG9jdW1lbnRQYXJzZXIKLSAgICB2aXJ0dWFsIHZvaWQgYmVnaW4oKTsKLSAgICB2aXJ0dWFsIHZv
aWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBpc0Zyb21OZXR3b3JrKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpOworICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lk
IGZpbmlzaCgpOwogICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hXYXNDYWxsZWQoKTsKICAgICB2aXJ0
dWFsIGJvb2wgcHJvY2Vzc2luZ0RhdGEoKSBjb25zdDsKQEAgLTEwMSw2ICsxMDEsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgcnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKCk7CiAgICAgdm9p
ZCByZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKTsKIAorICAgIHZvaWQgYmVnaW4o
KTsKICAgICB2b2lkIGF0dGVtcHRUb0VuZCgpOwogICAgIHZvaWQgZW5kSWZEZWxheWVkKCk7CiAg
ICAgdm9pZCBlbmQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1l
bnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5jcHAK
aW5kZXggMzhjOGE3NTJlZDkwNmU3NjhmMTdmMGUyNDI5MzE5OTllMTFmNjRlNS4uMDIyOWIwODM0
NTljZTM4ZmEzMTAzNDFiNjhmOWIwNjQyMGEzYjJiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0xlZ2FjeUhU
TUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTE3OTEsNiArMTc5MSwyMyBAQCB2b2lkIExlZ2FjeUhU
TUxEb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzdHIsIGJvb2wg
YXBwZW5kRGF0YQogICAgIEltYWdlTG9hZGVyOjpkaXNwYXRjaFBlbmRpbmdCZWZvcmVMb2FkRXZl
bnRzKCk7CiB9CiAKK3ZvaWQgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29uc3Qg
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCit7CisgICAgLy8gRklYTUU6IGZvcmNlU3luY2hyb25v
dXMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBhcyB0aGUgYm9vbCBwYXNzZWQgdG8KKyAgICAv
LyB3cml0ZSgpLiAgSG93ZXZlciBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIgdXNlcyB3cml0ZSgi
IiwgZmFsc2UpIHRvIHB1bXAKKyAgICAvLyB0aGUgcGFyc2VyIChhZnRlciBydW5uaW5nIGV4dGVy
bmFsIHNjcmlwdHMsIGV0Yy4pIHRodXMgbmVjZXNzaXRhdGluZyBhCisgICAgLy8gc2VwYXJhdGUg
c3RhdGUgZm9yIGZvcmNlU3luY2hyb25vdXMuCisgICAgYm9vbCB3YXNGb3JjZWRTeW5jaHJvbm91
cyA9IGZvcmNlU3luY2hyb25vdXMoKTsKKyAgICBzZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwor
ICAgIHdyaXRlKHNvdXJjZSwgZmFsc2UpOworICAgIHNldEZvcmNlU3luY2hyb25vdXMod2FzRm9y
Y2VkU3luY2hyb25vdXMpOworfQorCit2b2lkIExlZ2FjeUhUTUxEb2N1bWVudFBhcnNlcjo6YXBw
ZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQoreworICAgIHdyaXRlKHNvdXJjZSwg
dHJ1ZSk7Cit9CisKIHZvaWQgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygp
CiB7CiAgICAgRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvTGVnYWN5
SFRNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggNWI5NmJjMzE3MzQyOTVhMmM5NTFiM2YwN2U5ODM5
N2U4YjQ0YmUyOS4uNDhkMTI4NGIyZWJmYmM3N2M3Y2RhNTA1YzUwMTBhMGE2ZWFkM2Y4MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dl
YkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMTU3LDExICsxNTcsMTIg
QEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gRXhwb3NlZCBmb3IgRlRQRGlyZWN0b3J5
RG9jdW1lbnRQYXJzZXIKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3Ry
aW5nJiwgYm9vbCBhcHBlbmREYXRhKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNl
Z21lbnRlZFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKIAogcHJpdmF0ZToK
ICAgICAvLyBEb2N1bWVudFBhcnNlcgorICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgU2Vn
bWVudGVkU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0NhbGxlZCgpOwogICAg
IHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHN0b3BQYXJzaW5nKCk7CkBAIC0xODMsNiArMTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlc2V0KCk7CiAKICAgICB2b2lkIHdpbGxXcml0ZUhUTUwoY29uc3QgU2VnbWVudGVkU3RyaW5n
Jik7CisgICAgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERh
dGEpOwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBhZHZhbmNlKFN0YXRlJik7CiAgICAgdm9pZCBk
aWRXcml0ZUhUTUwoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDJlYTFhZmQ1
MjE4YzIwYmUyMzYyYjc2ZmZlODk4YWVjZGVlZjMxMWYuLjIwZGM5MTk5NmJmOTk4ODE4ZGQ1NDVk
ZGJmODFmNDVlMjhhMTcxNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6cmVwbGFjZURvY3VtZW50KGNvbnN0IFN0cmlu
ZyYgc291cmNlKQogICAgICAgICAvLyBGSVhNRTogSWYgd2Ugd2FudGVkIHRvIHN1cHBvcnQgdGhl
IDxpbWcgc3JjPSdqYXZhc2NyaXB0OidpbWFnZWRhdGEnPgogICAgICAgICAvLyBjYXNlIHRoZW4g
d2Ugd291bGQgbmVlZCB0byBjYWxsIGFkZERhdGEoY2hhciosIGludCkgaW5zdGVhZC4KICAgICAg
ICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJz
ZXIoKSkKLSAgICAgICAgICAgIHBhcnNlci0+d3JpdGUoc291cmNlLCB0cnVlKTsKKyAgICAgICAg
ICAgIHBhcnNlci0+YXBwZW5kKHNvdXJjZSk7CiAgICAgfQogCiAgICAgZW5kKCk7CkBAIC0yMDMs
NyArMjAzLDcgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBzdHIs
IGludCBsZW4sIGJvb2wgZmx1c2gpCiAKICAgICBpZiAocGFyc2VyKSB7CiAgICAgICAgIEFTU0VS
VCghcGFyc2VyLT53YW50c1Jhd0RhdGEoKSk7Ci0gICAgICAgIHBhcnNlci0+d3JpdGUoZGVjb2Rl
ZCwgdHJ1ZSk7CisgICAgICAgIHBhcnNlci0+YXBwZW5kKGRlY29kZWQpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDJhMTlmYTNkMjk4NjIy
ZTUwZWE3ZmRhZjk3ZmY4MjMwOWJjMDBiMzUuLjkzMTVlNDUwMWNhZDNmMzgzNjRiZjE0MDU3MTdj
M2NkYmU3YzE2ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3Vt
ZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAg
LTUyLDcgKzUyLDcgQEAgY2xhc3MgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXIgOiBwdWJsaWMg
TGVnYWN5SFRNTERvY3VtZW50UGFyc2VyIHsKIHB1YmxpYzoKICAgICBGVFBEaXJlY3RvcnlEb2N1
bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25z
dCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOworICAgIHZpcnR1YWwgdm9pZCBh
cHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgp
OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBGVFBEaXJlY3RvcnlEb2N1bWVudFBh
cnNlcjo6RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCkK
ICAgICAsIG1fc2l6ZSgyNTQpCiAgICAgLCBtX2J1ZmZlcihzdGF0aWNfY2FzdDxVQ2hhcio+KGZh
c3RNYWxsb2Moc2l6ZW9mKFVDaGFyKSAqIG1fc2l6ZSkpKQogICAgICwgbV9kZXN0KG1fYnVmZmVy
KQoteyAgICAKK3sKIH0gICAgCiAKIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFw
cGVuZEVudHJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgc2l6ZSwgY29u
c3QgU3RyaW5nJiBkYXRlLCBib29sIGlzRGlyZWN0b3J5KQpAQCAtMzAxLDExICszMDEsOCBAQCBi
b29sIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpsb2FkRG9jdW1lbnRUZW1wbGF0ZSgpCiAg
ICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGxvYWQgdGVtcGxhdGVEYXRhIik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCi0gICAgLy8gVG9rZW5pemUgdGhlIHRlbXBsYXRl
IGFzIGFuIEhUTUwgZG9jdW1lbnQgc3luY2hyb25vdXNseQotICAgIHNldEZvcmNlU3luY2hyb25v
dXModHJ1ZSk7Ci0gICAgTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyOjp3cml0ZShTdHJpbmcodGVt
cGxhdGVEb2N1bWVudERhdGEtPmRhdGEoKSwgdGVtcGxhdGVEb2N1bWVudERhdGEtPnNpemUoKSks
IHRydWUpOwotICAgIHNldEZvcmNlU3luY2hyb25vdXMoZmFsc2UpOworCisgICAgTGVnYWN5SFRN
TERvY3VtZW50UGFyc2VyOjppbnNlcnQoU3RyaW5nKHRlbXBsYXRlRG9jdW1lbnREYXRhLT5kYXRh
KCksIHRlbXBsYXRlRG9jdW1lbnREYXRhLT5zaXplKCkpKTsKICAgICAKICAgICBSZWZQdHI8RWxl
bWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoImZ0cERpcmVj
dG9yeVRhYmxlIik7CiAgICAgaWYgKCF0YWJsZUVsZW1lbnQpCkBAIC0zNTQsOCArMzUxLDggQEAg
dm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlQmFzaWNEb2N1bWVudCgpCiAg
ICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBlYyk7CiB9CiAKLXZv
aWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYgcywgYm9vbCAvKmFwcGVuZERhdGEqLykKLXsgICAgCit2b2lkIEZUUERpcmVjdG9yeURvY3Vt
ZW50UGFyc2VyOjphcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCit7CiAgICAg
Ly8gTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHRhYmxlIGVsZW1lbnQgdG8gYXBwZW5kIHRvIGJ5IGxv
YWRpbmcgdGhlIHRlbXBsYXRlIHNldCBpbiB0aGUgcHJlZiwgb3IKICAgICAvLyBjcmVhdGluZyBh
IHZlcnkgYmFzaWMgZG9jdW1lbnQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgdGFibGUKICAgICBpZiAo
IW1fdGFibGVFbGVtZW50KSB7CkBAIC0zNjcsNyArMzY0LDcgQEAgdm9pZCBGVFBEaXJlY3RvcnlE
b2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzLCBib29sIC8qYXBw
ZW5kRGEKICAgICBib29sIGZvdW5kTmV3TGluZSA9IGZhbHNlOwogICAgIAogICAgIG1fZGVzdCA9
IG1fYnVmZmVyOwotICAgIFNlZ21lbnRlZFN0cmluZyBzdHIgPSBzOworICAgIFNlZ21lbnRlZFN0
cmluZyBzdHIgPSBzb3VyY2U7CiAgICAgd2hpbGUgKCFzdHIuaXNFbXB0eSgpKSB7CiAgICAgICAg
IFVDaGFyIGMgPSAqc3RyOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1Rl
eHREb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwCmluZGV4IDMz
NjBhY2EwZGI3ZmZlZTY2MmJkNGYxZjNmMTIwMDEyM2E3ZWRlNDAuLjZjZGZiYzJmOTk0OWZkMjMx
YjJkNjdlYzZhOWU1NWFkM2VhODEwODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1RleHRE
b2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcApAQCAtMjUs
MTIgKzI1LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dERvY3VtZW50
LmgiCiAKKyNpbmNsdWRlICJEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVmlld1NvdXJjZURvY3VtZW50
LmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgotI2lu
Y2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAg
LTQ1LDcgKzQ1LDggQEAgcHVibGljOgogICAgIFRleHREb2N1bWVudFBhcnNlcihIVE1MVmlld1Nv
dXJjZURvY3VtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgYXBwZW5kRGF0YSk7CisgICAgdmlydHVhbCB2b2lkIGlu
c2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKICAgICB2
aXJ0dWFsIGJvb2wgZmluaXNoV2FzQ2FsbGVkKCk7CiAgICAgdmlydHVhbCBib29sIGlzV2FpdGlu
Z0ZvclNjcmlwdHMoKSBjb25zdDsKQEAgLTk5LDcgKzEwMCwxMiBAQCBUZXh0RG9jdW1lbnRQYXJz
ZXI6On5UZXh0RG9jdW1lbnRQYXJzZXIoKQogICAgIEFTU0VSVCghbV9idWZmZXIpOwogfQogCi12
b2lkIFRleHREb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzLCBi
b29sKQordm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJp
bmcmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFRleHREb2N1bWVu
dFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcykKIHsKICAgICBFeGNlcHRp
b25Db2RlIGVjOwogCkBAIC0xNjIsNyArMTY4LDcgQEAgdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6
OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCkKIHZvaWQgVGV4dERvY3VtZW50
UGFyc2VyOjpmaW5pc2goKQogewogICAgIGlmICghbV9wcmVFbGVtZW50KQotICAgICAgICB3cml0
ZShTZWdtZW50ZWRTdHJpbmcoKSwgdHJ1ZSk7IC8vIENyZWF0ZSBkb2N1bWVudCBzdHJ1Y3R1cmUg
Zm9yIGFuIGVtcHR5IHRleHQgZG9jdW1lbnQuCisgICAgICAgIGFwcGVuZChTZWdtZW50ZWRTdHJp
bmcoKSk7IC8vIENyZWF0ZSBkb2N1bWVudCBzdHJ1Y3R1cmUgZm9yIGFuIGVtcHR5IHRleHQgZG9j
dW1lbnQuCiAgICAgbV9wcmVFbGVtZW50ID0gMDsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAg
ICAgbV9idWZmZXIgPSAwOwo=
</data>
<flag name="commit-queue"
          id="46873"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>