<?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>39828</bug_id>
          
          <creation_ts>2010-05-27 04:37:35 -0700</creation_ts>
          <short_desc>document.write does not work correctly in the HTML5 parser</short_desc>
          <delta_ts>2010-05-28 03:11:32 -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>39259</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>commit-queue</cc>
    
    <cc>hyatt</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231222</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-27 04:37:35 -0700</bug_when>
    <thetext>document.write does not work correctly in the HTML5 parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231223</commentid>
    <comment_count>1</comment_count>
      <attachid>57222</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-27 04:40:37 -0700</bug_when>
    <thetext>Created attachment 57222
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231225</commentid>
    <comment_count>2</comment_count>
      <attachid>57222</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-27 04:42:36 -0700</bug_when>
    <thetext>Comment on attachment 57222
work in progress

Sorry, forgot the --no-review flag.

This patch has some extra junk in it and is not ready for review.

It passes the simple document.write cases, but hits the ASSERT(scriptElement) in bool HTML5ScriptRunner::execute(PassRefPtr&lt;Element&gt; scriptElement) on more complicated ones.  I think that&apos;s expected, I just need to sort through the exact conditions under which that ASSERT is bogus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231600</commentid>
    <comment_count>3</comment_count>
      <attachid>57303</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-28 01:25:43 -0700</bug_when>
    <thetext>Created attachment 57303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231601</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-28 01:26:47 -0700</bug_when>
    <thetext>This implementation is WAY simpler than the current document.write implementation in the old parser.  Either I did something wrong, or this is validation of our parser design. :)  I&apos;m hopeful for the latter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231603</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-28 01:33:43 -0700</bug_when>
    <thetext>This appears to have fixed our major crash-on-navigation issue which I believe was caused by failing to unregister as a client from a CachedResource and then having it notify a dead pointer. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231605</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-28 01:40:22 -0700</bug_when>
    <thetext>Actually, looking at this more, I think this will be an incomplete solution.  There are other codepaths through which we could re-enter scripting.  The various event dispatches being some.

We may need to move the event dispatch code onto the HTML5ScriptRunnerHost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231606</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-28 01:42:14 -0700</bug_when>
    <thetext>fast/dom/document-clear.html still hits an ASSERT after this change, but many many more layout tests pass. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231609</commentid>
    <comment_count>8</comment_count>
      <attachid>57305</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-28 01:52:09 -0700</bug_when>
    <thetext>Created attachment 57305
Updated to TOT and removed tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231616</commentid>
    <comment_count>9</comment_count>
      <attachid>57305</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-28 02:30:24 -0700</bug_when>
    <thetext>Comment on attachment 57305
Updated to TOT and removed tabs

Wow, that&apos;s very pretty.  :)  Some comments below.

WebCore/ChangeLog:12
 +          before calling ScriptControlle::executeScript to allow safe
ScriptControlle -&gt; ScriptController

WebCore/html/HTML5Tokenizer.cpp:42
 +      , m_docuemnt(document)
m_docuemnt -&gt; m_document

WebCore/html/HTML5Tokenizer.cpp:120
 +      // not an already-loaded CachedResource.
There&apos;s some grammar problems here.

WebCore/html/HTML5Tokenizer.cpp:131
 +      // Not currently possible to execute scripts on frameless documents.
It&apos;s not so much that it&apos;s not possible.  We explicitly don&apos;t want to.

WebCore/html/HTML5Tokenizer.cpp:135
 +      SegmentedString oldInsertionPoint = m_source;
How expensive is this copy?  Maybe we should use OwnPtr and swap?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231620</commentid>
    <comment_count>10</comment_count>
      <attachid>57308</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-28 02:54:41 -0700</bug_when>
    <thetext>Created attachment 57308
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231624</commentid>
    <comment_count>11</comment_count>
      <attachid>57308</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-28 03:11:25 -0700</bug_when>
    <thetext>Comment on attachment 57308
Patch for landing

Clearing flags on attachment: 57308

Committed r60347: &lt;http://trac.webkit.org/changeset/60347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231625</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-28 03:11:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57222</attachid>
            <date>2010-05-27 04:40:37 -0700</date>
            <delta_ts>2010-05-28 01:25:39 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-39828-20100527044035.patch</filename>
            <type>text/plain</type>
            <size>17285</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTQ4MjQzNzhiYmUxYWY4MjE3ZmJhZjRhODJiMjk5OTZmYzExZTE1Mi4uNTcwMWRmMzM3YWRmYTBl
OTQyMjZmZDM0YTIyNTdlYmFjZjliODMwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMSBAQAogMjAxMC0wNS0yNyAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgZG9jdW1lbnQud3JpdGUgZG9lcyBub3Qgd29yayBjb3JyZWN0
bHkgaW4gdGhlIEhUTUw1IHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzk4MjgKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUw1U2NyaXB0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpIVE1MNVNjcmlwdFJ1bm5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MNVNjcmlwdFJ1bm5lcjo6c291cmNlRnJvbVBlbmRpbmdTY3JpcHQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpyZXF1ZXN0U2NyaXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpydW5TY3JpcHQpOgorICAgICAgICAqIGh0
bWwvSFRNTDVTY3JpcHRSdW5uZXIuaDoKKyAgICAgICAgKiBodG1sL0hUTUw1U2NyaXB0UnVubmVy
SG9zdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVySG9zdDo6
fkhUTUw1U2NyaXB0UnVubmVySG9zdCk6CisgICAgICAgICogaHRtbC9IVE1MNVRva2VuaXplci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6SFRNTDVUb2tlbml6ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OndhdGNoRm9yTG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6c3RvcFdhdGNoaW5nRm9yTG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6ZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgICogaHRt
bC9IVE1MNVRva2VuaXplci5oOgorCisyMDEwLTA1LTI3ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgogCiAgICAgICAgIEFk
ZCA8cHJlPi88bGlzdGluZz4gaGFjayB0byBIVE1MNUxleGVyIHRvIGZpeCB0aGUgbGFzdCByZW1h
aW5pbmcgSFRNTDUgdGVzdCBzdWl0ZSByZWdyZXNzaW9ucwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZWJhYzRhZDE5ODEzOGVjZGU2NzEzMDAxZTJlYmY0
Y2E1MTMyNWU3Li4xMjczYjA5MTVjZWIzYWUyMWRhZjg1N2NkMzcyMTc1ZDViNGNjYzY2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAxNSw2ICszMDE1
LDcgQEAKIAkJQTg3MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZFMTBBMTUz
NzZCMDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0LmNwcCAqLzsgfTsKIAkJQTg3OUM2MjUxMUE5RDFG
NzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1
VHJlZUJ1aWxkZXIuY3BwICovOyB9OwogCQlBODc5QzYyNjExQTlEMUY3MDA1OTIzN0EgLyogSFRN
TDVUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTg3OUM2MjQxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCAqLzsg
fTsKKwkJQTg3RjE2MzUxMUFFODQxMzAwQ0JCMkU1IC8qIEhUTUw1U2NyaXB0UnVubmVySG9zdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3RjE2MzQx
MUFFODQxMzAwQ0JCMkU1IC8qIEhUTUw1U2NyaXB0UnVubmVySG9zdC5oICovOyB9OwogCQlBODgz
REYyNzBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODgzREYyNTBGM0QwNDVEMDBGMTlC
RjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi87IH07CiAJCUE4ODNERjI4MEYzRDA0NUQwMEYx
OUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODgzREYyNjBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVj
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE4OEFENTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVC
QTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTg0NTksNiArODQ2
MCw3IEBACiAJCUE4NzFERkUxMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcldpZGdldC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzlDNjIzMTFBOUQxRjcwMDU5MjM3QSAvKiBI
VE1MNVRyZWVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUw1VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc5
QzYyNDExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MNVRyZWVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE4N0YxNjM0MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5l
ckhvc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTDVTY3JpcHRSdW5u
ZXJIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI1MEYzRDA0NUQw
MEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFZpc2libGVTZWxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBODgzREYyNjBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4OERENDg2MEI0NjI5QTMwMEMwMjk5MCAvKiBQYXRo
VHJhdmVyc2FsU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aFRy
YXZlcnNhbFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM3Niw2ICsx
MzM3OCw3IEBACiAJCQkJOTdFOEIzNTUxMUEyM0NFMjAwMTY5NDA5IC8qIEhUTUw1TGV4ZXIuaCAq
LywKIAkJCQlBODNCM0FFRTExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuY3Bw
ICovLAogCQkJCUE4M0IzQUVGMTFBREVGRjUwMDQ1ODgwOSAvKiBIVE1MNVNjcmlwdFJ1bm5lci5o
ICovLAorCQkJCUE4N0YxNjM0MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5lckhv
c3QuaCAqLywKIAkJCQk5N0U4QjNDMjExQTI4OTA4MDAxNjk0MDkgLyogSFRNTDVUb2tlbi5oICov
LAogCQkJCUE4NzEwMzg4MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRva2VuaXplci5jcHAgKi8s
CiAJCQkJQTg3MTAzODkxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1VG9rZW5pemVyLmggKi8sCkBA
IC0xOTM3MCw2ICsxOTM3Myw3IEBACiAJCQkJQjY2OTNFRUUxMUFENjNFNjAwM0YyNzcwIC8qIElE
Qk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY2OTNFRjMxMUFENjQ4
NjAwM0YyNzcwIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODNCM0FGMTExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE4N0YxNjM1MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5l
ckhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1U2Ny
aXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5jcHAKaW5kZXgg
YWU2MzE2M2NiMTIzZTRjZGZjZGJmNWI3OTgxYjVjNDkzYzRmMzc3Zi4uZTU5NDZkNzZhOTkwMDU4
YmI3ZjYzYmQwNTE0ZGQ3MTQ5NWM4ZWRhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1
U2NyaXB0UnVubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3Bw
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lckhvc3Qu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKQEAgLTQxLDkgKzQyLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MNVNjcmlwdFJ1bm5l
cjo6SFRNTDVTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBDYWNoZWRSZXNvdXJjZUNs
aWVudCogbG9hZE5vdGlmaWVyKQorSFRNTDVTY3JpcHRSdW5uZXI6OkhUTUw1U2NyaXB0UnVubmVy
KERvY3VtZW50KiBkb2N1bWVudCwgSFRNTDVTY3JpcHRSdW5uZXJIb3N0KiBob3N0KQogICAgIDog
bV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fbG9hZE5vdGlmaWVyKGxvYWROb3RpZmllcikK
KyAgICAsIG1faG9zdChob3N0KQogICAgICwgbV9zY3JpcHROZXN0aW5nTGV2ZWwoMCkKIHsKIH0K
QEAgLTUyLDkgKzUzLDEzIEBAIEhUTUw1U2NyaXB0UnVubmVyOjp+SFRNTDVTY3JpcHRSdW5uZXIo
KQogewogfQogCi1GcmFtZSogSFRNTDVTY3JpcHRSdW5uZXI6OmZyYW1lKCkgY29uc3QKK3N0YXRp
YyBLVVJMIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKERvY3VtZW50KiBkb2N1bWVudCkK
IHsKLSAgICByZXR1cm4gbV9kb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8
ICFkb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIEtVUkwoKTsKKworICAgIC8vIFVz
ZSB0aGUgVVJMIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGRvY3VtZW50IGZvciB0aGlzIGZyYW1l
LgorICAgIHJldHVybiBkb2N1bWVudC0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCk7CiB9CiAK
IGlubGluZSBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGVTY3JpcHRMb2FkRXZlbnQoKQpAQCAtNzYs
OCArODEsNyBAQCBTY3JpcHRTb3VyY2VDb2RlIEhUTUw1U2NyaXB0UnVubmVyOjpzb3VyY2VGcm9t
UGVuZGluZ1NjcmlwdChjb25zdCBQZW5kaW5nU2NyaXB0JgogICAgIH0KICAgICBlcnJvck9jY3Vy
cmVkID0gZmFsc2U7CiAgICAgLy8gRklYTUU6IExpbmUgbnVtYmVycyBhcmUgd3JvbmcuCi0gICAg
S1VSTCBkb2N1bWVudFVSTCA9IGZyYW1lKCkgPyBmcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKSA6
IEtVUkwoKTsKLSAgICByZXR1cm4gU2NyaXB0U291cmNlQ29kZShzY3JpcHQuZWxlbWVudC0+dGV4
dENvbnRlbnQoKSwgZG9jdW1lbnRVUkwpOworICAgIHJldHVybiBTY3JpcHRTb3VyY2VDb2RlKHNj
cmlwdC5lbGVtZW50LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlv
bihtX2RvY3VtZW50KSk7CiB9CiAKIGJvb2wgSFRNTDVTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1Nj
cmlwdFJlYWR5KGNvbnN0IFBlbmRpbmdTY3JpcHQmIHNjcmlwdCkKQEAgLTEwNSwyMiArMTA5LDM0
IEBAIHZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCkKICAgICBD
YWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmNhY2hl
ZFNjcmlwdC5nZXQoKTsKICAgICBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQg
PSAwOwogCi0gICAgLy8gcmVtb3ZlQ2xpZW50IGJlZm9yZSBleGVjdXRpb24gdG8gcHJldmVudCBy
ZWN1cnNpb24gaWYgdGhlIHNjcmlwdCByZWxvYWRzIGl0c2VsZi4KKyAgICAvLyBzdG9wIHdhdGNo
aW5nIGxvYWRzIGJlZm9yZSBleGVjdXRpb24gdG8gcHJldmVudCByZWN1cnNpb24gaWYgdGhlIHNj
cmlwdCByZWxvYWRzIGl0c2VsZi4KICAgICBpZiAoY2FjaGVkU2NyaXB0KQotICAgICAgICBjYWNo
ZWRTY3JpcHQtPnJlbW92ZUNsaWVudChtX2xvYWROb3RpZmllcik7CisgICAgICAgIG1faG9zdC0+
c3RvcFdhdGNoaW5nRm9yTG9hZChjYWNoZWRTY3JpcHQpOwogCiAgICAgbV9zY3JpcHROZXN0aW5n
TGV2ZWwrKzsKICAgICBpZiAoZXJyb3JPY2N1cnJlZCkKICAgICAgICAgc2NyaXB0RWxlbWVudC0+
ZGlzcGF0Y2hFdmVudChjcmVhdGVTY3JpcHRFcnJvckV2ZW50KCkpOwogICAgIGVsc2UgewotICAg
ICAgICBpZiAodG9TY3JpcHRFbGVtZW50KHNjcmlwdEVsZW1lbnQuZ2V0KCkpLT5zaG91bGRFeGVj
dXRlQXNKYXZhU2NyaXB0KCkpCi0gICAgICAgICAgICBmcmFtZSgpLT5zY3JpcHQoKS0+ZXhlY3V0
ZVNjcmlwdChzb3VyY2VDb2RlKTsKKyAgICAgICAgZXhlY3V0ZVNjcmlwdChzY3JpcHRFbGVtZW50
LmdldCgpLCBzb3VyY2VDb2RlKTsKICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZGlzcGF0Y2hFdmVu
dChjcmVhdGVTY3JpcHRMb2FkRXZlbnQoKSk7CiAgICAgfQogICAgIG1fc2NyaXB0TmVzdGluZ0xl
dmVsLS07CiAgICAgQVNTRVJUKCFtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CiB9CiAKK3ZvaWQgSFRN
TDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50ID0gdG9TY3JpcHRFbGVtZW50KGVsZW1lbnQpOworICAgIEFTU0VSVChzY3JpcHRFbGVt
ZW50KTsKKyAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQWx3YXlzIHVzZSB0aGUgZGVsZWdhdGUgdG8g
ZXhlY3V0ZSB0aGUgc2NyaXB0IHNvIHRoYXQgaXQgY2FuIHNhdmUgYW55CisgICAgLy8gbmVjZXNz
YXJ5IHN0YXRlIHRvIHByZXBhcmUKKyAgICBtX2hvc3QtPmV4ZWN1dGVTY3JpcHQoc291cmNlQ29k
ZSk7Cit9CisKKwogLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggMTAuMi41LjExICJBbiBl
bmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdzY3JpcHQnIgogLy8gU2NyaXB0IGhhbmRsaW5nIGxp
dmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRlciB0byBrZWVwIHRoZSBlYWNoIGNsYXNzIHNpbXBs
ZS4KIGJvb2wgSFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBz
Y3JpcHRFbGVtZW50KQpAQCAtMTc0LDcgKzE5MCw4IEBAIHZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6
OnJlcXVlc3RTY3JpcHQoRWxlbWVudCogc2NyaXB0KQogICAgIH0KICAgICBtX3BhcnNpbmdCbG9j
a2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQgPSBjYWNoZWRTY3JpcHQ7CiAgICAgLy8gTk9URTogVGhp
cyBtYXkgY2F1c2UgaW1tZWRpYXRlIGV4ZWN1dGlvbiBvZiB0aGUgc2NyaXB0LgotICAgIGNhY2hl
ZFNjcmlwdC0+YWRkQ2xpZW50KG1fbG9hZE5vdGlmaWVyKTsKKyAgICAvLyBGSVhNRTogRXhlY3V0
aW9uIGhlcmUgaGl0cyBBU1NFUlQoIW1fc2NyaXB0TmVzdGluZ0xldmVsKSBpbiBleGVjdXRlUGVu
ZGluZ1NjcmlwdC4KKyAgICBtX2hvc3QtPndhdGNoRm9yTG9hZChjYWNoZWRTY3JpcHQpOwogfQog
CiB2b2lkIEhUTUw1U2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0KQpAQCAt
MTkwLDEwICsyMDcsOSBAQCB2b2lkIEhUTUw1U2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVu
dCogc2NyaXB0KQogICAgIH0gZWxzZSBpZiAoIW1fZG9jdW1lbnQtPmhhdmVTdHlsZXNoZWV0c0xv
YWRlZCgpKSB7CiAgICAgICAgIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmVsZW1lbnQgPSBzY3Jp
cHQ7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgS1VSTCBkb2N1bWVudFVSTCA9IGZyYW1lKCkgPyBm
cmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKSA6IEtVUkwoKTsKICAgICAgICAgLy8gRklYTUU6IE5l
ZWQgYSBsaW5lIG51bWJlcnMgaW1wbGVtZW5hdGlvbi4KLSAgICAgICAgU2NyaXB0U291cmNlQ29k
ZSBzb3VyY2VDb2RlID0gU2NyaXB0U291cmNlQ29kZShzY3JpcHQtPnRleHRDb250ZW50KCksIGRv
Y3VtZW50VVJMLCAwKTsKLSAgICAgICAgZnJhbWUoKS0+c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQo
c291cmNlQ29kZSk7CisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShzY3JpcHQt
PnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQp
LCAwKTsKKyAgICAgICAgZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHNvdXJjZUNvZGUpOwogICAgIH0K
ICAgICBtX3NjcmlwdE5lc3RpbmdMZXZlbC0tOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUw1U2NyaXB0UnVubmVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuaApp
bmRleCA1YTM1ZjFiZmY0NGE4YTljMjAwYWZhMTMzNDgwODk4OWNiOGMyMTNjLi4yMmNkM2U0ZGZj
NGYzNmQ0OTViZGRhMDgyYmZjMTRkZmI2YmUxY2JjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTDVTY3JpcHRSdW5uZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIu
aApAQCAtMzgsMTEgKzM4LDEyIEBAIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERvY3VtZW50
OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOworY2xhc3MgSFRNTDVTY3JpcHRSdW5uZXJI
b3N0OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIAogY2xhc3MgSFRNTDVTY3JpcHRSdW5uZXIg
OiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgotICAgIEhUTUw1U2NyaXB0UnVubmVyKERv
Y3VtZW50KiwgQ2FjaGVkUmVzb3VyY2VDbGllbnQqKTsKKyAgICBIVE1MNVNjcmlwdFJ1bm5lcihE
b2N1bWVudCosIEhUTUw1U2NyaXB0UnVubmVySG9zdCopOwogICAgIH5IVE1MNVNjcmlwdFJ1bm5l
cigpOwogCiAgICAgLy8gUHJvY2Vzc2VzIHRoZSBwYXNzZWQgaW4gc2NyaXB0IGFuZCBhbnkgcGVu
ZGluZyBzY3JpcHRzIGlmIHBvc3NpYmxlLgpAQCAtNjUsMTIgKzY2LDEzIEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHJlcXVlc3RTY3JpcHQoRWxlbWVudCopOwogICAgIHZvaWQgcnVuU2NyaXB0KEVs
ZW1lbnQqKTsKKyAgICB2b2lkIGV4ZWN1dGVTY3JpcHQoRWxlbWVudCosIGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmKTsKIAogICAgIGJvb2wgaXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGlu
Z1NjcmlwdCYpOwogICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlRnJvbVBlbmRpbmdTY3JpcHQo
Y29uc3QgUGVuZGluZ1NjcmlwdCYsIGJvb2wmIGVycm9yT2NjdXJyZWQpOwogCiAgICAgRG9jdW1l
bnQqIG1fZG9jdW1lbnQ7Ci0gICAgQ2FjaGVkUmVzb3VyY2VDbGllbnQqIG1fbG9hZE5vdGlmaWVy
OworICAgIEhUTUw1U2NyaXB0UnVubmVySG9zdCogbV9ob3N0OwogICAgIFBlbmRpbmdTY3JpcHQg
bV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQ7CiAgICAgdW5zaWduZWQgbV9zY3JpcHROZXN0aW5nTGV2
ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1U2NyaXB0UnVubmVySG9zdC5o
IGIvV2ViQ29yZS9odG1sL0hUTUw1U2NyaXB0UnVubmVySG9zdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMGUw
ZmMwYWJhN2ZmZWZlYTMwNjVlYWM0ODJjYTIwNGVmYzcyOTMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXJIb3N0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSFRN
TDVTY3JpcHRSdW5uZXJIb3N0X2gKKyNkZWZpbmUgSFRNTDVTY3JpcHRSdW5uZXJIb3N0X2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNzIFNjcmlw
dFNvdXJjZUNvZGU7CisKK2NsYXNzIEhUTUw1U2NyaXB0UnVubmVySG9zdCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+SFRNTDVTY3JpcHRSdW5uZXJIb3N0KCkgeyB9CisKKyAgICAvLyBJbXBsZW1l
bnRvcnMgc2hvdWxkIGNhbGwgY2FjaGVkUmVzb3VyY2UtPmFkZENsaWVudCgpIGhlcmUgb3Igc29v
biBhZnRlci4KKyAgICB2aXJ0dWFsIHZvaWQgd2F0Y2hGb3JMb2FkKENhY2hlZFJlc291cmNlKikg
PSAwOworICAgIC8vIEltcGxlbWVudG9ycyBtdXN0IGNhbGwgY2FjaGVkUmVzb3VyY2UtPnJlbW92
ZUNsaWVudCgpIGltbWVkaWF0ZWx5LgorICAgIHZpcnR1YWwgdm9pZCBzdG9wV2F0Y2hpbmdGb3JM
b2FkKENhY2hlZFJlc291cmNlKikgPSAwOworCisgICAgLy8gSW1wbGVtZW50b3JzIHNob3VsZCBo
YW5kbGUgcG9zc2libGUgcmVudHJ5IGJlZm9yZS9hZnRlciBjYWxsaW5nIFNjcmlwdENvbnRyb2xs
ZXI6OmV4ZWN1dGVTY3JpcHQKKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNjcmlwdChjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJikgPSAwOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6
ZXIuY3BwCmluZGV4IDU4NDhkOTkwOGIxOGEyZjdkMzdlZWVkMzMxMWU5YTVmYjIwMzVmZGEuLmIw
ZTU0NzZkNGYzNDQxODFkOWUzYTVlNTFhZjBkOTUwNzIxNTRlMzIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5p
emVyLmNwcApAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkhUTUw1VG9rZW5pemVyLmgiCiAK
ICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1M
NUxleGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVTY3JpcHRSdW5uZXIuaCIKLSNpbmNsdWRlICJIVE1M
NVRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBIVE1MNVRva2VuaXplcjo6SFRNTDVUb2tlbml6ZXIoSFRNTERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBUb2tlbml6ZXIoKQorICAgICwg
bV9kb2N1ZW1udChkb2N1bWVudCkKICAgICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIpCiAgICAg
LCBtX3NjcmlwdFJ1bm5lcihuZXcgSFRNTDVTY3JpcHRSdW5uZXIoZG9jdW1lbnQsIHRoaXMpKQog
ICAgICwgbV90cmVlQnVpbGRlcihuZXcgSFRNTDVUcmVlQnVpbGRlcihtX2xleGVyLmdldCgpLCBk
b2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKQEAgLTExNSw2ICsxMTYsMzAgQEAgdm9pZCBIVE1MNVRv
a2VuaXplcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCkKICAgICAgICAgZW5k
KCk7IC8vIFRoZSBkb2N1bWVudCBhbHJlYWR5IGZpbmlzaGVkIHBhcnNpbmcgd2Ugd2VyZSBqdXN0
IHdhaXRpbmcgb24gc2NyaXB0cyB3aGVuIGZpbmlzaGVkKCkgd2FzIGNhbGxlZC4KIH0KIAordm9p
ZCBIVE1MNVRva2VuaXplcjo6d2F0Y2hGb3JMb2FkKENhY2hlZFJlc291cmNlKiBjYWNoZWRTY3Jp
cHQpCit7CisgICAgLy8gTm90ZSwgdGhpcyB3aWxsIGNhbGwgbm90aWZ5RmluaXNoZWQoKSBpbW1l
ZGlhdGVseSBpZiB0aGUgcmVzb3VyY2UgaXMgYWxyZWFkeSBsb2FkZWQuCisgICAgY2FjaGVkU2Ny
aXB0LT5hZGRDbGllbnQodGhpcyk7Cit9CisKK3ZvaWQgSFRNTDVUb2tlbml6ZXI6OnN0b3BXYXRj
aGluZ0ZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFNjcmlwdCkKK3sKKyAgICBjYWNoZWRT
Y3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKK30KKwordm9pZCBIVE1MNVRva2VuaXplcjo6ZXhl
Y3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIC8v
IE5vdCBjdXJyZW50bHkgcG9zc2libGUgdG8gZXhlY3V0ZSBzY3JpcHRzIG9uIGZyYW1lbGVzcyBk
b2N1bWVudHMuCisgICAgaWYgKCFtX2RvY3VlbW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBTZWdtZW50ZWRTdHJpbmcgb2xkSW5zZXJ0aW9uUG9pbnQgPSBtX3NvdXJjZTsKKyAg
ICBtX3NvdXJjZSA9IFNlZ21lbnRlZFN0cmluZygpOworICAgIG1fZG9jdWVtbnQtPmZyYW1lKCkt
PnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KHNvdXJjZUNvZGUpOworICAgIG9sZEluc2VydGlvblBv
aW50LnByZXBlbmQobV9zb3VyY2UpOworICAgIG1fc291cmNlID0gb2xkSW5zZXJ0aW9uUG9pbnQ7
Cit9CisKIHZvaWQgSFRNTDVUb2tlbml6ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
KiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBib29sIHNob3VsZENvbnRpbnVlUGFyc2luZyA9IG1f
c2NyaXB0UnVubmVyLT5leGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKGNhY2hlZFJlc291cmNl
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5oIGIvV2ViQ29yZS9o
dG1sL0hUTUw1VG9rZW5pemVyLmgKaW5kZXggYTg0NThmM2U4ZTFlNDJhNWQ4Zjg3NDNlYmFiNDZk
ZWFlYTIyNWJjYi4uMzhlNDA5YzJjNjc2NjM5ODQ0YjIyZjQ5MDk5YzhhZDIzNWFjODM0YSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUw1VG9rZW5pemVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSFRNTDVUb2tlbml6
ZXJfaAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1M
NVNjcmlwdFJ1bm5lckhvc3QuaCIKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAi
U2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiVG9rZW5pemVyLmgiCkBAIC0zOCwxNSArMzks
MTcgQEAgY2xhc3MgSFRNTDVMZXhlcjsKIGNsYXNzIEhUTUw1U2NyaXB0UnVubmVyOwogY2xhc3Mg
SFRNTDVUcmVlQnVpbGRlcjsKIGNsYXNzIEhUTUxEb2N1bWVudDsKK2NsYXNzIFNjcmlwdFNvdXJj
ZUNvZGU7CiAKIC8vIEZJWE1FOiBUaGUgd2hvbGUgVG9rZW5pemVyIGNsYXNzIHN5c3RlbSBzaG91
bGQgYmUgcmVuYW1lZCAiUGFyc2VyIgogLy8gb3IgIlBhcnNlckNvbnRyb2xsZXIiIGFzIHRoZSBq
b2Igb2YgdGhpcyBjbGFzcyBpcyB0byBkcml2ZSBwYXJzaW5nIHByb2Nlc3MKIC8vIGJ1dCBpdCBk
b2VzIG5vdCBpdHNlbGYgVG9rZW5pemUuCi1jbGFzcyBIVE1MNVRva2VuaXplciA6ICBwdWJsaWMg
VG9rZW5pemVyLCBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CitjbGFzcyBIVE1MNVRva2VuaXplciA6
ICBwdWJsaWMgVG9rZW5pemVyLCBIVE1MNVNjcmlwdFJ1bm5lckhvc3QsIENhY2hlZFJlc291cmNl
Q2xpZW50IHsKIHB1YmxpYzoKICAgICBIVE1MNVRva2VuaXplcihIVE1MRG9jdW1lbnQqLCBib29s
IHJlcG9ydEVycm9ycyk7CiAgICAgdmlydHVhbCB+SFRNTDVUb2tlbml6ZXIoKTsKIAorICAgIC8v
IFRva2VuaXplcgogICAgIHZpcnR1YWwgdm9pZCBiZWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCB3
cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOwogICAgIHZpcnR1
YWwgdm9pZCBlbmQoKTsKQEAgLTU0LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBleGVjdXRl
U2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpOwogCisgICAgLy8gSFRNTDVTY3JpcHRSdW5u
ZXJIb3N0CisgICAgdmlydHVhbCB2b2lkIHdhdGNoRm9yTG9hZChDYWNoZWRSZXNvdXJjZSopOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wV2F0Y2hpbmdGb3JMb2FkKENhY2hlZFJlc291cmNlKik7Cisg
ICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwor
CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIApAQCAtNjIsMTAgKzcwLDE4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKTsKIAogICAgIFNlZ21l
bnRlZFN0cmluZyBtX3NvdXJjZTsKKyAgICAKKyAgICAvLyBJbnB1dCB3ZSB3aWxsIHBhcnNlIGFm
dGVyIHRoZSBleHRlcm5hbCBzY3JpcHQgd2UgYXJlIHdhaXRpbmcgZm9yIGhhcyBsb2FkZWQuCisg
ICAgLy8gV2UgY2FuJ3QganVzdCBhcHBlbmQgdG8gbV9zb3VyY2Ugd2hpbGUgd2UncmUgd2FpdGlu
ZyBhcyB0aGUgZXh0ZXJuYWwgc2NyaXB0CisgICAgLy8gd2UncmUgbG9hZGluZyBtaWdodCBkb2N1
bWVudC53cml0ZSgpIGFuZCB0aGF0IHNob3VsZCBnbyBvbiB0aGUgZW5kIG9mIG1fc291cmNlLgor
ICAgIFNlZ21lbnRlZFN0cmluZyBtX3BlbmRpbmdTb3VyY2U7CisKKyAgICAKIAogICAgIC8vIFdl
IGhvbGQgbV90b2tlbiBoZXJlIGJlY2F1c2UgaXQgbWlnaHQgYmUgcGFydGlhbGx5IGNvbXBsZXRl
LgogICAgIEhUTUw1VG9rZW4gbV90b2tlbjsKIAorICAgIEhUTUxEb2N1bWVudCogbV9kb2N1ZW1u
dDsKICAgICBPd25QdHI8SFRNTDVMZXhlcj4gbV9sZXhlcjsKICAgICBPd25QdHI8SFRNTDVTY3Jp
cHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogICAgIE93blB0cjxIVE1MNVRyZWVCdWlsZGVyPiBt
X3RyZWVCdWlsZGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57303</attachid>
            <date>2010-05-28 01:25:43 -0700</date>
            <delta_ts>2010-05-28 01:52:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39828-20100528012542.patch</filename>
            <type>text/plain</type>
            <size>25763</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZTdlZjIyMzQzNWQ1ZjJiYzI5YTExNWIyOGRhZjMzOGJmYzViNzJlLi42ZTc1OGI1
YTZiMTY4NGVkMDBlNjIyYmUzZGNhOWE4OTM4NDRhM2M3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMjggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGRvY3VtZW50LndyaXRlIGRvZXMg
bm90IHdvcmsgY29ycmVjdGx5IGluIHRoZSBIVE1MNSBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODI4CisKKyAgICAgICAgQWRkIHR3byB0
ZXN0cyBmb3IgZG9jdW1lbnQud3JpdGUgYmVoYXZpb3IgYW5kIHVwZGF0ZQorICAgICAgICBvdXIg
ZXhwZWN0ZWQgcmVzdWx0cyB0byByZW1vdmUgdHdvIHBhcnNlIGVycm9ycyBub3cgdGhhdAorICAg
ICAgICBkb2N1bWVudC53cml0ZSBpcyBmdW5jdGlvbmluZyBjb3JyZWN0bHkuCisKKyAgICAgICAg
KiBodG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0OgorICAgICAgICAqIGh0bWw1bGliL3J1
bm5lci1leHBlY3RlZC1odG1sNS50eHQ6CisKIDIwMTAtMDUtMjcgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0IGIvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAppbmRleCBhMjgyMDFjMzQyNTUy
MzQ0MzBlZTE4Yjk2YmRiMjBkZDkyMDhmZGE4Li5mMmNiN2QzZTQyZTAwZWZlYTZkNTEyNGFkMzNl
ZWUzOWFiZDMyOGNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMv
d2Via2l0MDEuZGF0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQw
MS5kYXQKQEAgLTEyNywzICsxMjcsMzIgQEAgY29uc29sZS5sb2coIkZPTzxzcGFuPkJBUjwvc3Bh
bj5CQVoiKTsKIHwgICA8Ym9keT4KIHwgICAgIDxmb28+CiB8ICAgICA8cG90YXRvPgorCisjZGF0
YQorMTxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoIjIiKTwvc2NyaXB0PjMKKyNlcnJvcnMKKyNkb2N1
bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIxIgorfCAgICAg
PHNjcmlwdD4KK3wgICAgICAgImRvY3VtZW50LndyaXRlKCIyIikiCit8ICAgICAiMjMiCisKKyNk
YXRhCisxPHNjcmlwdD5kb2N1bWVudC53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC53cml0ZSgnMicp
PC9zY3IiKyAiaXB0PjxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzMnKTwvc2NyIiArICJpcHQ+Iik8
L3NjcmlwdD40CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAg
PGJvZHk+Cit8ICAgICAiMSIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICJkb2N1bWVudC53cml0
ZSgiPHNjcmlwdD5kb2N1bWVudC53cml0ZSgnMicpPC9zY3IiKyAiaXB0PjxzY3JpcHQ+ZG9jdW1l
bnQud3JpdGUoJzMnKTwvc2NyIiArICJpcHQ+IikiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAi
ZG9jdW1lbnQud3JpdGUoJzInKSIKK3wgICAgICIyIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAg
ImRvY3VtZW50LndyaXRlKCczJykiCit8ICAgICAiMzQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVzdHMvaHRtbDVs
aWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAppbmRleCA1NmIwYmJjOGVmODg5M2FhOGMwNjM0
NjhhZDU5ZDMxZjMxNjViOWEyLi44Mzg2Y2EwYzhiNTJhODVlNzRkYmUyOTYxNzM4YTg5ZDM2MjUz
YTkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRt
bDUudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50
eHQKQEAgLTIsOCArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBTeW50YXhFcnJvcjog
UGFyc2UgZXJyb3IKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IKIENPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBQQVNTCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjogRk9PPHNwYW4+QkFSPC9zcGFuPkJBWgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFN5
bnRheEVycm9yOiBQYXJzZSBlcnJvcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFN5bnRheEVy
cm9yOiBQYXJzZSBlcnJvcgogQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCiByZXNvdXJjZXMvdGVz
dHMxLmRhdDoKIDI1CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDk0ODI0Mzc4YmJlMWFmODIxN2ZiYWY0YTgyYjI5OTk2ZmMxMWUxNTIuLjJk
NjU3YjA1MTNkNTE1YWM3NDJkN2RlZThmZWJhYTBmZjM0NjYwZjYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIw
MTAtMDUtMjggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGRvY3VtZW50LndyaXRlIGRvZXMgbm90
IHdvcmsgY29ycmVjdGx5IGluIHRoZSBIVE1MNSBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODI4CisKKyAgICAgICAgQWRkZWQgYSBuZXcg
SFRNTDVTY3JpcHRSdW5uZXJIb3N0IGludGVyZmFjZSB3aGljaAorICAgICAgICBIVE1MNVRva2Vu
aXplciBpbXBsZW1lbnRzLiAgVGhpcyBhbGxvd3MgSFRNTDVTY3JpcHRDb250cm9sbGVyCisgICAg
ICAgIHRvIGRlbGVnYXRlIHRoZSBhY3R1YWwgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlw
dCBiYWNrIHRvCisgICAgICAgIEhUTUw1VG9rZW5pemVyLiAgSFRNTDVUb2tlbml6ZXIgc2F2ZXMg
b2ZmIHRoZSBjdXJyZW50IG1fc291cmNlCisgICAgICAgIGJlZm9yZSBjYWxsaW5nIFNjcmlwdENv
bnRyb2xsZTo6ZXhlY3V0ZVNjcmlwdCB0byBhbGxvdyBzYWZlCisgICAgICAgIHJlZW50cmFuY3kg
dGhyb3VnaCBkb2N1bWVudC53cml0ZSgpLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAgLSBBZGRlZCBIVE1MNVNjcmlwdFJ1bm5lckhvc3Qu
aAorICAgICAgICAqIGh0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTDVTY3JpcHRSdW5uZXI6OkhUTUw1U2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1U2NyaXB0UnVubmVyOjp+SFRNTDVTY3JpcHRSdW5uZXIpOgorICAgICAgICAgLSBV
bnJlZ2lzdGVyIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0IGlmIHN0b3BwZWQgYmVmb3JlCisgICAg
ICAgICAgIGxvYWQgY29tcGxldGlvbi4gIFRoaXMgd2FzIHByb2JhYmx5IGNhdXNpbmcgc29tZSBv
ZiB0aGUKKyAgICAgICAgICAgY3Jhc2hlcyBvbiBwYWdlIG5hdmlnYXRpb24gd2Ugc2F3IGR1cmlu
ZyBMYXlvdXRUZXN0IHJ1bnMuCisgICAgICAgIChXZWJDb3JlOjpkb2N1bWVudFVSTEZvclNjcmlw
dEV4ZWN1dGlvbik6CisgICAgICAgICAtIFVuaWZ5IG91ciBkb2N1bWVudFVSTCBoYW5kbGluZyBz
byBhbGwgY2FsbHNpdGVzIGdldCBpdCByaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2Ny
aXB0UnVubmVyOjpzb3VyY2VGcm9tUGVuZGluZ1NjcmlwdCk6CisgICAgICAgICAtIFVzZSBkb2N1
bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVTY3JpcHRS
dW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0KToKKyAgICAgICAgIC0gQ2FsbCBzdG9wV2F0Y2hp
bmdGb3JMb2FkIGluc3RlYWQgb2YgcmVtb3ZlQ2xpZW50KCkKKyAgICAgICAgIC0gQ2FsbCBleGVj
dXRlU2NyaXB0IGluc3RlYWQgb2YgU2NyaXB0Q29udHJvbGxlciBkaXJlY3RseS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0KToKKyAgICAgICAgIC0g
V3JhcHMgY2FsbHMgdG8gSFRNTDVTY3JpcHRSdW5uZXJIb3N0OjpleGVjdXRlU2NyaXB0CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MNVNjcmlwdFJ1bm5lcjo6d2F0Y2hGb3JMb2FkKToKKyAgICAgICAg
IC0gV3JhcHMgY2FsbHMgdG8gSFRNTDVTY3JpcHRSdW5uZXJIb3N0Ojp3YXRjaEZvckxvYWQKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKToK
KyAgICAgICAgIC0gV3JhcHMgY2FsbHMgdG8gSFRNTDVTY3JpcHRSdW5uZXJIb3N0OjpzdG9wV2F0
Y2hpbmdGb3JMb2FkCisgICAgICAgIChXZWJDb3JlOjpIVE1MNVNjcmlwdFJ1bm5lcjo6cmVxdWVz
dFNjcmlwdCk6CisgICAgICAgICAtIE9ubHkgd2F0Y2ggZm9yIGxvYWQgaWYgdGhlIENhY2hlZFNj
cmlwdCBpc24ndCBhbHJlYWR5IGxvYWRlZC4KKyAgICAgICAgICAgVGhpcyBnZXRzIHJpZCBvZiBy
ZW50cmFuY3kgZHVlIHRvIGFkZENsaWVudCBjYWxscywgYW5kIGFzIGEgcmVzdWx0CisgICAgICAg
ICAgIGFsc28gc3RvcHMgdXMgZnJvbSBoaXR0aW5nIEFTU0VSVChtX3NjcmlwdE5lc3RpbmdMZXZl
bCkKKyAgICAgICAgICAgaW4gZXhlY3V0ZVBlbmRpbmdTY3JpcHQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNVNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KToKKyAgICAgICAgIC0gVXNlIHRoZSBuZXcg
ZmFuY3kgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRpb24gYW5kIGV4ZWN1dGVTY3JpcHQuCisg
ICAgICAgICogaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TDVTY3JpcHRSdW5uZXI6OlBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQpOgorICAgICAgICAg
LSBBZGQgYSB3YXRjaGluZ0ZvckxvYWQgYm9vbCBzbyB3ZSBrbm93IGlmIHdlIGV2ZXIgY2FsbGVk
IHdhdGNoRm9yTG9hZAorICAgICAgICAgICB3aXRoIHRoaXMgQ2FjaGVkU2NyaXB0Ki4KKyAgICAg
ICAgKiBodG1sL0hUTUw1U2NyaXB0UnVubmVySG9zdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1U2NyaXB0UnVubmVySG9zdDo6fkhUTUw1U2NyaXB0UnVubmVySG9zdCk6CisgICAg
ICAgICogaHRtbC9IVE1MNVRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRv
a2VuaXplcjo6SFRNTDVUb2tlbml6ZXIpOgorICAgICAgICAgLSBTdG9yZSBhbiBtX2RvY3VtZW50
IHBvaW50ZXIgc2luY2Ugd2UgbmVlZCB0byBhY2Nlc3MKKyAgICAgICAgICAgbV9kb2N1bWVudC0+
ZnJhbWUoKS0+c2NyaXB0KCkgZm9yIHNjcmlwdCBleGVjdXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNVRva2VuaXplcjo6cHVtcExleGVyKToKKwkgLSBBbHdheXMgcGF1c2Ugb3IgdW5wYXVz
ZSB0aGUgVHJlZUJ1aWxkZXIgYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvbi4KKyAgICAgICAgICAgUHJl
dmlvdXNseSBuZXN0ZWQgc2NyaXB0IGV4ZWN1dGlvbiB3b3VsZCBsZWF2ZSB0aGUgVHJlZUJ1aWxk
ZXIKKyAgICAgICAgICAgcGF1c2VkIGV2ZW4gdGhvdWdoIHRoZSB0b3AtbGV2ZWwgbG9vcCB3YW50
ZWQgdG8gcmVzdW1lIHBhcnNpbmcuCisgICAgICAgICAgIE5vdyB3aGVuZXZlciBtX3NjcmlwdFJ1
bm5lci0+ZXhlY3V0ZSByZXR1cm5zICJjb250aW51ZSBwYXJzaW5nIgorICAgICAgICAgICBwYXJz
aW5nIHdpbGwgYWN0dWFsbHkgY29udGludWUuICBUaGlzIGZpeGVkIGNhc2VzIHdoZXJlIHdlIHdv
dWxkCisgICAgICAgICAgIGlnbm9yZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQgYWZ0ZXIgZG9j
dW1lbnQud3JpdGUoKSBvZiBhIHNjcmlwdCB0YWcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRv
a2VuaXplcjo6d3JpdGUpOgorICAgICAgICAgLSBFeHBsYWluIGhvdyBkb2N1bWVudC53cml0ZSgp
IHJlZW50cmFuY3kgaXMgc2FmZSBpbiB0aGUgbmV3IHdvcmxkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTDVUb2tlbml6ZXI6OndhdGNoRm9yTG9hZCk6CisgICAgICAgICAtIEhUTUw1U2NyaXB0UnVu
bmVySG9zdCBpbXBsZW1lbnRhdGlvbi4gIFdlIGFzc2VydCB0aGF0IHRoaXMKKyAgICAgICAgICAg
Y2FsbCB3aWxsIG5ldmVyIGNhdXNlIHNjcmlwdCBleGVjdXRpb24gc2luY2UgdGhhdCdzIG91ciBj
dXJyZW50IGRlc2lnbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW5pemVyOjpzdG9wV2F0
Y2hpbmdGb3JMb2FkKToKKyAgICAgICAgIC0gSFRNTDVTY3JpcHRSdW5uZXJIb3N0IGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OmV4ZWN1dGVTY3JpcHQp
OgorCSAtIEhUTUw1U2NyaXB0UnVubmVySG9zdCBpbXBsZW1lbnRhdGlvbi4gU2F2ZSBvZmYgdGhl
IGN1cnJlbnQgc291cmNlCisJICAgYmVmb3JlIGV4ZWN1dGluZyBzY3JpcHRzIGluIGNhc2UgZG9j
dW1lbnQud3JpdGUgaXMgY2FsbGVkIGR1cmluZworICAgICAgICAgICBzY3JpcHQgZXhlY3V0aW9u
LgorICAgICAgICAqIGh0bWwvSFRNTDVUb2tlbml6ZXIuaDoKKyAgICAgICAgIC0gSW1wbGVtZW50
IEhUTUw1U2NyaXB0UnVubmVySG9zdC4KKwogMjAxMC0wNS0yNyAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2ViYWM0YWQxOTgxMzhlY2Rl
NjcxMzAwMWUyZWJmNGNhNTEzMjVlNy4uMTI3M2IwOTE1Y2ViM2FlMjFkYWY4NTdjZDM3MjE3NWQ1
YjRjY2M2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTMwMTUsNiArMzAxNSw3IEBACiAJCUE4NzFERkU1MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJX
aWRnZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgKi87IH07CiAJCUE4
NzlDNjI1MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjIzMTFBOUQxRjcwMDU5
MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmNwcCAqLzsgfTsKIAkJQTg3OUM2MjYxMUE5RDFGNzAw
NTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVC
dWlsZGVyLmggKi87IH07CisJCUE4N0YxNjM1MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlw
dFJ1bm5lckhvc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4N0YxNjM0MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5lckhvc3QuaCAq
LzsgfTsKIAkJQTg4M0RGMjcwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4M0RGMjUw
RjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwICovOyB9OwogCQlBODgzREYy
ODBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4M0RGMjYwRjNEMDQ1RDAwRjE5QkY2IC8q
IFZpc2libGVTZWxlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBODhBRDUyRjA5NTI0QjkyMDAxREQxOTYgLyogUXVhcnR6Q29yZS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi87IH07CkBA
IC04NDU5LDYgKzg0NjAsNyBAQAogCQlBODcxREZFMTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVy
V2lkZ2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJX
aWRnZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc5QzYyMzExQTlEMUY3
MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIVE1MNVRyZWVCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTg3OUM2MjQxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTDVUcmVlQnVpbGRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODdGMTYzNDExQUU4NDEzMDBDQkIyRTUgLyogSFRN
TDVTY3JpcHRSdW5uZXJIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhU
TUw1U2NyaXB0UnVubmVySG9zdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODgz
REYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4M0RGMjYwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVT
ZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlzaWJsZVNlbGVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODhERDQ4NjBCNDYyOUEzMDBD
MDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhdGhUcmF2ZXJzYWxTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTMzNzYsNiArMTMzNzgsNyBAQAogCQkJCTk3RThCMzU1MTFBMjNDRTIwMDE2OTQwOSAvKiBI
VE1MNUxleGVyLmggKi8sCiAJCQkJQTgzQjNBRUUxMUFERUZGNTAwNDU4ODA5IC8qIEhUTUw1U2Ny
aXB0UnVubmVyLmNwcCAqLywKIAkJCQlBODNCM0FFRjExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVT
Y3JpcHRSdW5uZXIuaCAqLywKKwkJCQlBODdGMTYzNDExQUU4NDEzMDBDQkIyRTUgLyogSFRNTDVT
Y3JpcHRSdW5uZXJIb3N0LmggKi8sCiAJCQkJOTdFOEIzQzIxMUEyODkwODAwMTY5NDA5IC8qIEhU
TUw1VG9rZW4uaCAqLywKIAkJCQlBODcxMDM4ODExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tl
bml6ZXIuY3BwICovLAogCQkJCUE4NzEwMzg5MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRva2Vu
aXplci5oICovLApAQCAtMTkzNzAsNiArMTkzNzMsNyBAQAogCQkJCUI2NjkzRUVFMTFBRDYzRTYw
MDNGMjc3MCAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2
NjkzRUYzMTFBRDY0ODYwMDNGMjc3MCAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgzQjNBRjExMUFERUZGNTAwNDU4ODA5IC8qIEhUTUw1U2NyaXB0UnVu
bmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBODdGMTYzNTExQUU4NDEzMDBDQkIyRTUgLyogSFRN
TDVTY3JpcHRSdW5uZXJIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5u
ZXIuY3BwCmluZGV4IGFlNjMxNjNjYjEyM2U0Y2RmY2RiZjViNzk4MWI1YzQ5M2M0ZjM3N2YuLmEy
MDQ2NDFiYmM0ZDA4OTViMGNmNzhhODA3NjEwZGI0NTBhY2E3ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1U2Ny
aXB0UnVubmVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTDVTY3Jp
cHRSdW5uZXJIb3N0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCkBAIC00MSwyMCArNDIsMjcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1I
VE1MNVNjcmlwdFJ1bm5lcjo6SFRNTDVTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBD
YWNoZWRSZXNvdXJjZUNsaWVudCogbG9hZE5vdGlmaWVyKQorSFRNTDVTY3JpcHRSdW5uZXI6OkhU
TUw1U2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1bWVudCwgSFRNTDVTY3JpcHRSdW5uZXJIb3N0
KiBob3N0KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fbG9hZE5vdGlmaWVy
KGxvYWROb3RpZmllcikKKyAgICAsIG1faG9zdChob3N0KQogICAgICwgbV9zY3JpcHROZXN0aW5n
TGV2ZWwoMCkKIHsKIH0KIAogSFRNTDVTY3JpcHRSdW5uZXI6On5IVE1MNVNjcmlwdFJ1bm5lcigp
CiB7CisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBiZSBwYXNzZWQgYSAiZG9uZSBsb2FkaW5nL3Bh
cnNpbmciIGNhbGxiYWNrIHNvb25lciB0aGFuIGRlc3RydWN0aW9uPworICAgIGlmIChtX3BhcnNp
bmdCbG9ja2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQgJiYgbV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQu
d2F0Y2hpbmdGb3JMb2FkKQorICAgICAgICBzdG9wV2F0Y2hpbmdGb3JMb2FkKG1fcGFyc2luZ0Js
b2NraW5nU2NyaXB0KTsKIH0KIAotRnJhbWUqIEhUTUw1U2NyaXB0UnVubmVyOjpmcmFtZSgpIGNv
bnN0CitzdGF0aWMgS1VSTCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihEb2N1bWVudCog
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIG1fZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgaWYgKCFk
b2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgICAgIHJldHVybiBLVVJMKCk7CisK
KyAgICAvLyBVc2UgdGhlIFVSTCBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBkb2N1bWVudCBmb3Ig
dGhpcyBmcmFtZS4KKyAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmRvY3VtZW50KCktPnVy
bCgpOwogfQogCiBpbmxpbmUgUGFzc1JlZlB0cjxFdmVudD4gY3JlYXRlU2NyaXB0TG9hZEV2ZW50
KCkKQEAgLTc2LDggKzg0LDcgQEAgU2NyaXB0U291cmNlQ29kZSBIVE1MNVNjcmlwdFJ1bm5lcjo6
c291cmNlRnJvbVBlbmRpbmdTY3JpcHQoY29uc3QgUGVuZGluZ1NjcmlwdCYKICAgICB9CiAgICAg
ZXJyb3JPY2N1cnJlZCA9IGZhbHNlOwogICAgIC8vIEZJWE1FOiBMaW5lIG51bWJlcnMgYXJlIHdy
b25nLgotICAgIEtVUkwgZG9jdW1lbnRVUkwgPSBmcmFtZSgpID8gZnJhbWUoKS0+ZG9jdW1lbnQo
KS0+dXJsKCkgOiBLVVJMKCk7Ci0gICAgcmV0dXJuIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LmVs
ZW1lbnQtPnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMKTsKKyAgICByZXR1cm4gU2NyaXB0U291
cmNlQ29kZShzY3JpcHQuZWxlbWVudC0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxGb3JTY3Jp
cHRFeGVjdXRpb24obV9kb2N1bWVudCkpOwogfQogCiBib29sIEhUTUw1U2NyaXB0UnVubmVyOjpp
c1BlbmRpbmdTY3JpcHRSZWFkeShjb25zdCBQZW5kaW5nU2NyaXB0JiBzY3JpcHQpCkBAIC0xMDEs
MjYgKzEwOCw1MSBAQCB2b2lkIEhUTUw1U2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1Njcmlw
dCgpCiAgICAgQVNTRVJUKGlzUGVuZGluZ1NjcmlwdFJlYWR5KG1fcGFyc2luZ0Jsb2NraW5nU2Ny
aXB0KSk7CiAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlID0gc291cmNlRnJvbVBlbmRp
bmdTY3JpcHQobV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQsIGVycm9yT2NjdXJyZWQpOwogCi0gICAg
UmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQgPSBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5l
bGVtZW50LnJlbGVhc2UoKTsKLSAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IG1fcGFy
c2luZ0Jsb2NraW5nU2NyaXB0LmNhY2hlZFNjcmlwdC5nZXQoKTsKLSAgICBtX3BhcnNpbmdCbG9j
a2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQgPSAwOworICAgIC8vIFN0b3Agd2F0Y2hpbmcgbG9hZHMg
YmVmb3JlIGV4ZWN1dGVTY3JpcHQgdG8gcHJldmVudCByZWN1cnNpb24gaWYgdGhlIHNjcmlwdCBy
ZWxvYWRzIGl0c2VsZi4KKyAgICBpZiAobV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQuY2FjaGVkU2Ny
aXB0ICYmIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LndhdGNoaW5nRm9yTG9hZCkKKyAgICAgICAg
c3RvcFdhdGNoaW5nRm9yTG9hZChtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdCk7CiAKLSAgICAvLyBy
ZW1vdmVDbGllbnQgYmVmb3JlIGV4ZWN1dGlvbiB0byBwcmV2ZW50IHJlY3Vyc2lvbiBpZiB0aGUg
c2NyaXB0IHJlbG9hZHMgaXRzZWxmLgotICAgIGlmIChjYWNoZWRTY3JpcHQpCi0gICAgICAgIGNh
Y2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KG1fbG9hZE5vdGlmaWVyKTsKKyAgICAvLyBDbGVhciB0
aGUgcGVuZGluZyBzY3JpcHQgYmVmb3JlIHBvc3NpYmxlIHJlbnRyYW5jeSBmcm9tIGV4ZWN1dGVT
Y3JpcHQoKQorICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0gbV9wYXJzaW5nQmxv
Y2tpbmdTY3JpcHQuZWxlbWVudC5yZWxlYXNlKCk7CisgICAgbV9wYXJzaW5nQmxvY2tpbmdTY3Jp
cHQgPSBQZW5kaW5nU2NyaXB0KCk7CiAKICAgICBtX3NjcmlwdE5lc3RpbmdMZXZlbCsrOwogICAg
IGlmIChlcnJvck9jY3VycmVkKQogICAgICAgICBzY3JpcHRFbGVtZW50LT5kaXNwYXRjaEV2ZW50
KGNyZWF0ZVNjcmlwdEVycm9yRXZlbnQoKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICh0b1Nj
cmlwdEVsZW1lbnQoc2NyaXB0RWxlbWVudC5nZXQoKSktPnNob3VsZEV4ZWN1dGVBc0phdmFTY3Jp
cHQoKSkKLSAgICAgICAgICAgIGZyYW1lKCktPnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KHNvdXJj
ZUNvZGUpOworICAgICAgICBleGVjdXRlU2NyaXB0KHNjcmlwdEVsZW1lbnQuZ2V0KCksIHNvdXJj
ZUNvZGUpOwogICAgICAgICBzY3JpcHRFbGVtZW50LT5kaXNwYXRjaEV2ZW50KGNyZWF0ZVNjcmlw
dExvYWRFdmVudCgpKTsKICAgICB9CiAgICAgbV9zY3JpcHROZXN0aW5nTGV2ZWwtLTsKICAgICBB
U1NFUlQoIW1fc2NyaXB0TmVzdGluZ0xldmVsKTsKIH0KIAordm9pZCBIVE1MNVNjcmlwdFJ1bm5l
cjo6ZXhlY3V0ZVNjcmlwdChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiBzb3VyY2VDb2RlKQoreworICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1Nj
cmlwdEVsZW1lbnQoZWxlbWVudCk7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOworICAgIGlm
ICghc2NyaXB0RWxlbWVudC0+c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBBbHdheXMgdXNlIHRoZSBkZWxlZ2F0ZSB0byBleGVjdXRlIHRoZSBz
Y3JpcHQgc28gdGhhdCBpdCBjYW4gc2F2ZSBhbnkKKyAgICAvLyBuZWNlc3Nhcnkgc3RhdGUgdG8g
cHJlcGFyZSBmb3IgcmVudHJhbmN5LgorICAgIG1faG9zdC0+ZXhlY3V0ZVNjcmlwdChzb3VyY2VD
b2RlKTsKK30KKwordm9pZCBIVE1MNVNjcmlwdFJ1bm5lcjo6d2F0Y2hGb3JMb2FkKFBlbmRpbmdT
Y3JpcHQmIHBlbmRpbmdTY3JpcHQpCit7CisgICAgQVNTRVJUKCFwZW5kaW5nU2NyaXB0LndhdGNo
aW5nRm9yTG9hZCk7CisgICAgbV9ob3N0LT53YXRjaEZvckxvYWQocGVuZGluZ1NjcmlwdC5jYWNo
ZWRTY3JpcHQuZ2V0KCkpOworICAgIHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdGb3JMb2FkID0gdHJ1
ZTsKK30KKwordm9pZCBIVE1MNVNjcmlwdFJ1bm5lcjo6c3RvcFdhdGNoaW5nRm9yTG9hZChQZW5k
aW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQoreworICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0Lndh
dGNoaW5nRm9yTG9hZCk7CisgICAgbV9ob3N0LT5zdG9wV2F0Y2hpbmdGb3JMb2FkKHBlbmRpbmdT
Y3JpcHQuY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICBwZW5kaW5nU2NyaXB0LndhdGNoaW5nRm9y
TG9hZCA9IGZhbHNlOworfQorCiAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBtYXRjaCAxMC4yLjUu
MTEgIkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMgJ3NjcmlwdCciCiAvLyBTY3JpcHQgaGFu
ZGxpbmcgbGl2ZXMgb3V0c2lkZSB0aGUgdHJlZSBidWlsZGVyIHRvIGtlZXAgdGhlIGVhY2ggY2xh
c3Mgc2ltcGxlLgogYm9vbCBIVE1MNVNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShQYXNzUmVmUHRyPEVs
ZW1lbnQ+IHNjcmlwdEVsZW1lbnQpCkBAIC0xNzMsMTAgKzIwNSwxNiBAQCB2b2lkIEhUTUw1U2Ny
aXB0UnVubmVyOjpyZXF1ZXN0U2NyaXB0KEVsZW1lbnQqIHNjcmlwdCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQgPSBjYWNo
ZWRTY3JpcHQ7Ci0gICAgLy8gTk9URTogVGhpcyBtYXkgY2F1c2UgaW1tZWRpYXRlIGV4ZWN1dGlv
biBvZiB0aGUgc2NyaXB0LgotICAgIGNhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KG1fbG9hZE5vdGlm
aWVyKTsKKworICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCBhIGxvYWQgY2FsbGJhY2sgaWYgY2Fj
aGVkU2NyaXB0IGlzIG5vdCBhbHJlYWR5CisgICAgLy8gaW4gdGhlIGNhY2hlLiAgQ2FsbGVycyB3
aWxsIGF0dGVtcHQgdG8gcnVuIHRoZSBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdAorICAgIC8vIGlm
IHBvc3NpYmxlIGJlZm9yZSByZXR1cm5pbmcgY29udHJvbCB0byB0aGUgcGFyc2VyLgorICAgIGlm
ICghbV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQuY2FjaGVkU2NyaXB0LT5pc0xvYWRlZCgpKQorICAg
ICAgICB3YXRjaEZvckxvYWQobV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQpOwogfQogCisvLyBUaGlz
IG1ldGhvZCBpcyBtZWFudCB0byBtYXRjaCB0aGUgSFRNTDUgZGVmaW5pdGlvbiBvZiAicnVubmlu
ZyBhIHNjcmlwdCIKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjcnVubmluZy1hLXNjcmlwdAogdm9p
ZCBIVE1MNVNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCkKIHsKICAgICBB
U1NFUlQoIW1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmVsZW1lbnQpOwpAQCAtMTkwLDEwICsyMjgs
OSBAQCB2b2lkIEhUTUw1U2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0KQog
ICAgIH0gZWxzZSBpZiAoIW1fZG9jdW1lbnQtPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKSB7CiAg
ICAgICAgIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmVsZW1lbnQgPSBzY3JpcHQ7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgS1VSTCBkb2N1bWVudFVSTCA9IGZyYW1lKCkgPyBmcmFtZSgpLT5kb2N1
bWVudCgpLT51cmwoKSA6IEtVUkwoKTsKICAgICAgICAgLy8gRklYTUU6IE5lZWQgYSBsaW5lIG51
bWJlcnMgaW1wbGVtZW5hdGlvbi4KLSAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2Rl
ID0gU2NyaXB0U291cmNlQ29kZShzY3JpcHQtPnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMLCAw
KTsKLSAgICAgICAgZnJhbWUoKS0+c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQoc291cmNlQ29kZSk7
CisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShzY3JpcHQtPnRleHRDb250ZW50
KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCAwKTsKKyAgICAg
ICAgZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHNvdXJjZUNvZGUpOwogICAgIH0KICAgICBtX3Njcmlw
dE5lc3RpbmdMZXZlbC0tOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1U2NyaXB0
UnVubmVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuaAppbmRleCA1YTM1ZjFi
ZmY0NGE4YTljMjAwYWZhMTMzNDgwODk4OWNiOGMyMTNjLi5lNjdhODA0YjI4NGI3YmE2OGZiMGFl
YTE4Zjg4OTUzZjJhZjMyMzc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRS
dW5uZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuaApAQCAtMzgsMTEg
KzM4LDEyIEBAIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKIGNsYXNzIEZyYW1lOworY2xhc3MgSFRNTDVTY3JpcHRSdW5uZXJIb3N0OwogY2xhc3Mg
U2NyaXB0U291cmNlQ29kZTsKIAogY2xhc3MgSFRNTDVTY3JpcHRSdW5uZXIgOiBwdWJsaWMgTm9u
Y29weWFibGUgewogcHVibGljOgotICAgIEhUTUw1U2NyaXB0UnVubmVyKERvY3VtZW50KiwgQ2Fj
aGVkUmVzb3VyY2VDbGllbnQqKTsKKyAgICBIVE1MNVNjcmlwdFJ1bm5lcihEb2N1bWVudCosIEhU
TUw1U2NyaXB0UnVubmVySG9zdCopOwogICAgIH5IVE1MNVNjcmlwdFJ1bm5lcigpOwogCiAgICAg
Ly8gUHJvY2Vzc2VzIHRoZSBwYXNzZWQgaW4gc2NyaXB0IGFuZCBhbnkgcGVuZGluZyBzY3JpcHRz
IGlmIHBvc3NpYmxlLgpAQCAtNTIsOCArNTMsMTQgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IHN0cnVjdCBQZW5kaW5nU2NyaXB0IHsKKyAgICAgICAgUGVuZGluZ1NjcmlwdCgpCisgICAgICAg
ICAgICA6IHdhdGNoaW5nRm9yTG9hZChmYWxzZSkKKyAgICAgICAgeworICAgICAgICB9CisKICAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAgICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0OworICAgICAgICBib29sIHdhdGNoaW5nRm9y
TG9hZDsgLy8gRGlkIHdlIHBhc3MgdGhlIGNhY2hlZFNjcmlwdCB0byB0aGUgSFRNTDVTY3JpcHRS
dW5uZXJIb3N0LgogICAgICAgICAvLyBIVE1MNSBoYXMgYW4gaXNSZWFkeSBwYXJhbWV0ZXIsIGhv
d2V2ZXIgaXNSZWFkeSBlbmRzIHVwIGVxdWl2YWxlbnQgdG8KICAgICAgICAgLy8gbV9kb2N1bWVu
dC0+aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkgJiYgY2FjaGVkU2NyaXB0LT5pc0xvYWRlZCgpCiAg
ICAgfTsKQEAgLTY2LDExICs3MywxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFNjcmlw
dChFbGVtZW50Kik7CiAgICAgdm9pZCBydW5TY3JpcHQoRWxlbWVudCopOwogCisgICAgLy8gSGVs
cGVycyBmb3IgZGVhbGluZyB3aXRoIEhUTUw1U2NyaXB0UnVubmVySG9zdAorICAgIHZvaWQgd2F0
Y2hGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKKyAgICB2b2lkIHN0b3BXYXRjaGluZ0ZvckxvYWQo
UGVuZGluZ1NjcmlwdCYpOworICAgIHZvaWQgZXhlY3V0ZVNjcmlwdChFbGVtZW50KiwgY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYpOworCiAgICAgYm9vbCBpc1BlbmRpbmdTY3JpcHRSZWFkeShjb25z
dCBQZW5kaW5nU2NyaXB0Jik7CiAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VGcm9tUGVuZGlu
Z1NjcmlwdChjb25zdCBQZW5kaW5nU2NyaXB0JiwgYm9vbCYgZXJyb3JPY2N1cnJlZCk7CiAKICAg
ICBEb2N1bWVudCogbV9kb2N1bWVudDsKLSAgICBDYWNoZWRSZXNvdXJjZUNsaWVudCogbV9sb2Fk
Tm90aWZpZXI7CisgICAgSFRNTDVTY3JpcHRSdW5uZXJIb3N0KiBtX2hvc3Q7CiAgICAgUGVuZGlu
Z1NjcmlwdCBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdDsKICAgICB1bnNpZ25lZCBtX3NjcmlwdE5l
c3RpbmdMZXZlbDsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5u
ZXJIb3N0LmggYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXJIb3N0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzMwZTBmYzBhYmE3ZmZlZmVhMzA2NWVhYzQ4MmNhMjA0ZWZjNzI5MwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lckhvc3QuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBIVE1MNVNjcmlwdFJ1bm5lckhvc3RfaAorI2RlZmluZSBIVE1MNVNjcmlwdFJ1bm5lckhv
c3RfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFJlc291cmNlOworY2xh
c3MgU2NyaXB0U291cmNlQ29kZTsKKworY2xhc3MgSFRNTDVTY3JpcHRSdW5uZXJIb3N0IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5IVE1MNVNjcmlwdFJ1bm5lckhvc3QoKSB7IH0KKworICAgIC8v
IEltcGxlbWVudG9ycyBzaG91bGQgY2FsbCBjYWNoZWRSZXNvdXJjZS0+YWRkQ2xpZW50KCkgaGVy
ZSBvciBzb29uIGFmdGVyLgorICAgIHZpcnR1YWwgdm9pZCB3YXRjaEZvckxvYWQoQ2FjaGVkUmVz
b3VyY2UqKSA9IDA7CisgICAgLy8gSW1wbGVtZW50b3JzIG11c3QgY2FsbCBjYWNoZWRSZXNvdXJj
ZS0+cmVtb3ZlQ2xpZW50KCkgaW1tZWRpYXRlbHkuCisgICAgdmlydHVhbCB2b2lkIHN0b3BXYXRj
aGluZ0ZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqKSA9IDA7CisKKyAgICAvLyBJbXBsZW1lbnRvcnMg
c2hvdWxkIGhhbmRsZSBwb3NzaWJsZSByZW50cnkgYmVmb3JlL2FmdGVyIGNhbGxpbmcgU2NyaXB0
Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdAorICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlU2NyaXB0
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKSA9IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
NVRva2VuaXplci5jcHAKaW5kZXggNTg0OGQ5OTA4YjE4YTJmN2QzN2VlZWQzMzExZTlhNWZiMjAz
NWZkYS4uM2JiMzlkZDM1MmUzYmQ5Y2EzZWZlZDNiNmQ4ZGMxMDI3NTA3ZDIwMyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TDVUb2tlbml6ZXIuY3BwCkBAIC0yNyw5ICsyNyw5IEBACiAjaW5jbHVkZSAiSFRNTDVUb2tlbml6
ZXIuaCIKIAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkhUTUw1TGV4ZXIuaCIKICNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lci5oIgotI2luY2x1
ZGUgIkhUTUw1VG9rZW4uaCIKICNpbmNsdWRlICJIVE1MNVRyZWVCdWlsZGVyLmgiCiAjaW5jbHVk
ZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtMzksNiArMzksNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIEhUTUw1VG9rZW5pemVyOjpIVE1MNVRva2VuaXplcihIVE1M
RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycykKICAgICA6IFRva2VuaXplcigp
CisgICAgLCBtX2RvY3VlbW50KGRvY3VtZW50KQogICAgICwgbV9sZXhlcihuZXcgSFRNTDVMZXhl
cikKICAgICAsIG1fc2NyaXB0UnVubmVyKG5ldyBIVE1MNVNjcmlwdFJ1bm5lcihkb2N1bWVudCwg
dGhpcykpCiAgICAgLCBtX3RyZWVCdWlsZGVyKG5ldyBIVE1MNVRyZWVCdWlsZGVyKG1fbGV4ZXIu
Z2V0KCksIGRvY3VtZW50LCByZXBvcnRFcnJvcnMpKQpAQCAtNjcsMTkgKzY4LDE1IEBAIHZvaWQg
SFRNTDVUb2tlbml6ZXI6OnB1bXBMZXhlcigpCiAgICAgICAgIC8vIFRoZSBwYXJzZXIgd2lsbCBw
YXVzZSBpdHNlbGYgd2hlbiB3YWl0aW5nIG9uIGEgc2NyaXB0IHRvIGxvYWQgb3IgcnVuLgogICAg
ICAgICAvLyBTY3JpcHRSdW5uZXIgZXhlY3V0ZXMgc2NyaXB0cyBhdCB0aGUgcmlnaHQgdGltZXMg
YW5kIGhhbmRsZXMgcmVlbnRyYW5jeS4KICAgICAgICAgYm9vbCBzaG91bGRDb250aW51ZVBhcnNp
bmcgPSBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShtX3RyZWVCdWlsZGVyLT50YWtlU2NyaXB0VG9Q
cm9jZXNzKCkpOwotICAgICAgICBpZiAoIXNob3VsZENvbnRpbnVlUGFyc2luZykgewotICAgICAg
ICAgICAgLy8gQVNTRVJUKG1fc291cmNlLmlzRW1wdHkoKSB8fCBtX3RyZWVCdWlsZGVyLT5pc1Bh
dXNlZCgpKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgc2NyaXB0IHJ1bm5lciBzaG91bGQg
ZWl0aGVyIG1ha2UgdGhpcyBjYWxsIG9yIHJldHVybiBhIHNwZWNpYWwKLSAgICAgICAgICAgIC8v
IHZhbHVlIHRvIGluZGljYXRlIHdlIHNob3VsZCBwYXVzZS4KLSAgICAgICAgICAgIG1fdHJlZUJ1
aWxkZXItPnNldFBhdXNlZCh0cnVlKTsKKyAgICAgICAgbV90cmVlQnVpbGRlci0+c2V0UGF1c2Vk
KCFzaG91bGRDb250aW51ZVBhcnNpbmcpOworICAgICAgICBpZiAoIXNob3VsZENvbnRpbnVlUGFy
c2luZykKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogICAgIH0KIH0KIAogdm9pZCBI
VE1MNVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wp
CiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgeWV0IGNvcnJlY3RseSBoYW5kbGUgcmVl
bnRyYW50IHdyaXRlcy4KKyAgICAvLyBIVE1MNVRva2VuaXplcjo6ZXhlY3V0ZVNjcmlwdCBpcyBy
ZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgc2F2aW5nIG1fc291cmNlIGJlZm9yZSByZS1lbnRyeS4K
ICAgICBtX3NvdXJjZS5hcHBlbmQoc291cmNlKTsKICAgICBpZiAoIW1fdHJlZUJ1aWxkZXItPmlz
UGF1c2VkKCkpCiAgICAgICAgIHB1bXBMZXhlcigpOwpAQCAtMTE1LDYgKzExMiwzMyBAQCB2b2lk
IEhUTUw1VG9rZW5pemVyOjpyZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKQogICAg
ICAgICBlbmQoKTsgLy8gVGhlIGRvY3VtZW50IGFscmVhZHkgZmluaXNoZWQgcGFyc2luZyB3ZSB3
ZXJlIGp1c3Qgd2FpdGluZyBvbiBzY3JpcHRzIHdoZW4gZmluaXNoZWQoKSB3YXMgY2FsbGVkLgog
fQogCit2b2lkIEhUTUw1VG9rZW5pemVyOjp3YXRjaEZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFNjcmlwdCkKK3sKKyAgICBBU1NFUlQoIWNhY2hlZFNjcmlwdC0+aXNMb2FkZWQoKSk7Cisg
ICAgLy8gYWRkQ2xpZW50IHdvdWxkIGNhbGwgbm90aWZ5RmluaXNoZWQgaWYgdGhlIGxvYWQgd2Vy
ZSBjb21wbGV0ZS4KKyAgICAvLyBDYWxsZXJzIGRvIG5vdCBleHBlY3QgdG8gYmUgcmUtZW50ZXJl
ZCBmcm9tIHRoaXMgY2FsbCwgc28gdGhleSBzaG91bGQKKyAgICAvLyBub3QgYW4gYWxyZWFkeS1s
b2FkZWQgQ2FjaGVkUmVzb3VyY2UuCisgICAgY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7
Cit9CisKK3ZvaWQgSFRNTDVUb2tlbml6ZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFNjcmlwdCkKK3sKKyAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0
aGlzKTsKK30KKwordm9pZCBIVE1MNVRva2VuaXplcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIC8vIE5vdCBjdXJyZW50bHkgcG9zc2li
bGUgdG8gZXhlY3V0ZSBzY3JpcHRzIG9uIGZyYW1lbGVzcyBkb2N1bWVudHMuCisgICAgaWYgKCFt
X2RvY3VlbW50LT5mcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTZWdtZW50ZWRTdHJp
bmcgb2xkSW5zZXJ0aW9uUG9pbnQgPSBtX3NvdXJjZTsKKyAgICBtX3NvdXJjZSA9IFNlZ21lbnRl
ZFN0cmluZygpOworICAgIG1fZG9jdWVtbnQtPmZyYW1lKCktPnNjcmlwdCgpLT5leGVjdXRlU2Ny
aXB0KHNvdXJjZUNvZGUpOworICAgIG9sZEluc2VydGlvblBvaW50LnByZXBlbmQobV9zb3VyY2Up
OworICAgIG1fc291cmNlID0gb2xkSW5zZXJ0aW9uUG9pbnQ7Cit9CisKIHZvaWQgSFRNTDVUb2tl
bml6ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsK
ICAgICBib29sIHNob3VsZENvbnRpbnVlUGFyc2luZyA9IG1fc2NyaXB0UnVubmVyLT5leGVjdXRl
U2NyaXB0c1dhaXRpbmdGb3JMb2FkKGNhY2hlZFJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MNVRva2VuaXplci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmgK
aW5kZXggYTg0NThmM2U4ZTFlNDJhNWQ4Zjg3NDNlYmFiNDZkZWFlYTIyNWJjYi4uYjRmMzBhNjg5
YTExZjZiOTRiOGE1NDFlZWFjNjZmZWNiNjU0MzE4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUw1VG9rZW5pemVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmgKQEAg
LTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSFRNTDVUb2tlbml6ZXJfaAogCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lckhvc3QuaCIK
ICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAj
aW5jbHVkZSAiVG9rZW5pemVyLmgiCkBAIC0zOCwxNSArMzksMTcgQEAgY2xhc3MgSFRNTDVMZXhl
cjsKIGNsYXNzIEhUTUw1U2NyaXB0UnVubmVyOwogY2xhc3MgSFRNTDVUcmVlQnVpbGRlcjsKIGNs
YXNzIEhUTUxEb2N1bWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKIC8vIEZJWE1FOiBU
aGUgd2hvbGUgVG9rZW5pemVyIGNsYXNzIHN5c3RlbSBzaG91bGQgYmUgcmVuYW1lZCAiUGFyc2Vy
IgogLy8gb3IgIlBhcnNlckNvbnRyb2xsZXIiIGFzIHRoZSBqb2Igb2YgdGhpcyBjbGFzcyBpcyB0
byBkcml2ZSBwYXJzaW5nIHByb2Nlc3MKIC8vIGJ1dCBpdCBkb2VzIG5vdCBpdHNlbGYgVG9rZW5p
emUuCi1jbGFzcyBIVE1MNVRva2VuaXplciA6ICBwdWJsaWMgVG9rZW5pemVyLCBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7CitjbGFzcyBIVE1MNVRva2VuaXplciA6ICBwdWJsaWMgVG9rZW5pemVyLCBI
VE1MNVNjcmlwdFJ1bm5lckhvc3QsIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICBIVE1MNVRva2VuaXplcihIVE1MRG9jdW1lbnQqLCBib29sIHJlcG9ydEVycm9ycyk7CiAgICAg
dmlydHVhbCB+SFRNTDVUb2tlbml6ZXIoKTsKIAorICAgIC8vIFRva2VuaXplcgogICAgIHZpcnR1
YWwgdm9pZCBiZWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZShjb25zdCBTZWdtZW50ZWRT
dHJpbmcmLCBib29sIGFwcGVuZERhdGEpOwogICAgIHZpcnR1YWwgdm9pZCBlbmQoKTsKQEAgLTU0
LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0
cygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JTdHls
ZXNoZWV0cygpOwogCisgICAgLy8gSFRNTDVTY3JpcHRSdW5uZXJIb3N0CisgICAgdmlydHVhbCB2
b2lkIHdhdGNoRm9yTG9hZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZpcnR1YWwgdm9pZCBzdG9w
V2F0Y2hpbmdGb3JMb2FkKENhY2hlZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIGV4ZWN1
dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCiAgICAgLy8gQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
KTsKIApAQCAtNjYsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlIGhvbGQgbV90b2tlbiBo
ZXJlIGJlY2F1c2UgaXQgbWlnaHQgYmUgcGFydGlhbGx5IGNvbXBsZXRlLgogICAgIEhUTUw1VG9r
ZW4gbV90b2tlbjsKIAorICAgIEhUTUxEb2N1bWVudCogbV9kb2N1ZW1udDsKICAgICBPd25QdHI8
SFRNTDVMZXhlcj4gbV9sZXhlcjsKICAgICBPd25QdHI8SFRNTDVTY3JpcHRSdW5uZXI+IG1fc2Ny
aXB0UnVubmVyOwogICAgIE93blB0cjxIVE1MNVRyZWVCdWlsZGVyPiBtX3RyZWVCdWlsZGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57305</attachid>
            <date>2010-05-28 01:52:09 -0700</date>
            <delta_ts>2010-05-28 02:54:29 -0700</delta_ts>
            <desc>Updated to TOT and removed tabs</desc>
            <filename>bug-39828-20100528015207.patch</filename>
            <type>text/plain</type>
            <size>25788</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NDRkNzQ4NjA2ZDMwZTQ5YTk5YjEwNzMzMzgyOGRhNTgxYWRiZGVhLi41OGI0MGNh
MjRjNzBlZjUwYzA3NGNhZmM3YjFmZTc3OTA5ZWRhM2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMjggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGRvY3VtZW50LndyaXRlIGRvZXMg
bm90IHdvcmsgY29ycmVjdGx5IGluIHRoZSBIVE1MNSBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODI4CisKKyAgICAgICAgQWRkIHR3byB0
ZXN0cyBmb3IgZG9jdW1lbnQud3JpdGUgYmVoYXZpb3IgYW5kIHVwZGF0ZQorICAgICAgICBvdXIg
ZXhwZWN0ZWQgcmVzdWx0cyB0byByZW1vdmUgdHdvIHBhcnNlIGVycm9ycyBub3cgdGhhdAorICAg
ICAgICBkb2N1bWVudC53cml0ZSBpcyBmdW5jdGlvbmluZyBjb3JyZWN0bHkuCisKKyAgICAgICAg
KiBodG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0OgorICAgICAgICAqIGh0bWw1bGliL3J1
bm5lci1leHBlY3RlZC1odG1sNS50eHQ6CisKIDIwMTAtMDUtMjcgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMS5kYXQgYi9M
YXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0CmluZGV4IGEyODIwMWMz
NDI1NTIzNDQzMGVlMThiOTZiZGIyMGRkOTIwOGZkYTguLmYyY2I3ZDNlNDJlMDBlZmVhNmQ1MTI0
YWQzM2VlZTM5YWJkMzI4Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291
cmNlcy93ZWJraXQwMS5kYXQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dl
YmtpdDAxLmRhdApAQCAtMTI3LDMgKzEyNywzMiBAQCBjb25zb2xlLmxvZygiRk9PPHNwYW4+QkFS
PC9zcGFuPkJBWiIpOwogfCAgIDxib2R5PgogfCAgICAgPGZvbz4KIHwgICAgIDxwb3RhdG8+CisK
KyNkYXRhCisxPHNjcmlwdD5kb2N1bWVudC53cml0ZSgiMiIpPC9zY3JpcHQ+MworI2Vycm9ycwor
I2RvY3VtZW50Cit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgIjEiCit8
ICAgICA8c2NyaXB0PgorfCAgICAgICAiZG9jdW1lbnQud3JpdGUoIjIiKSIKK3wgICAgICIyMyIK
KworI2RhdGEKKzE8c2NyaXB0PmRvY3VtZW50LndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LndyaXRl
KCcyJyk8L3NjciIrICJpcHQ+PHNjcmlwdD5kb2N1bWVudC53cml0ZSgnMycpPC9zY3IiICsgImlw
dD4iKTwvc2NyaXB0PjQKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4K
K3wgICA8Ym9keT4KK3wgICAgICIxIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgImRvY3VtZW50
LndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LndyaXRlKCcyJyk8L3NjciIrICJpcHQ+PHNjcmlwdD5k
b2N1bWVudC53cml0ZSgnMycpPC9zY3IiICsgImlwdD4iKSIKK3wgICAgIDxzY3JpcHQ+Cit8ICAg
ICAgICJkb2N1bWVudC53cml0ZSgnMicpIgorfCAgICAgIjIiCit8ICAgICA8c2NyaXB0PgorfCAg
ICAgICAiZG9jdW1lbnQud3JpdGUoJzMnKSIKK3wgICAgICIzNCIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQgYi9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0CmluZGV4IDU2YjBiYmM4ZWY4ODkzYWE4
YzA2MzQ2OGFkNTlkMzFmMzE2NWI5YTIuLjgzODZjYTBjOGI1MmE4NWU3NGRiZTI5NjE3MzhhODlk
MzYyNTNhOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC1odG1sNS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0
bWw1LnR4dApAQCAtMiw4ICsyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFN5bnRheEVy
cm9yOiBQYXJzZSBlcnJvcgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFN5bnRheEVycm9yOiBQ
YXJzZSBlcnJvcgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6IFBBU1MKIENPTlNPTEUgTUVTU0FH
RTogbGluZSAyOiBGT088c3Bhbj5CQVI8L3NwYW4+QkFaCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogU3lu
dGF4RXJyb3I6IFBhcnNlIGVycm9yCiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KIHJlc291cmNl
cy90ZXN0czEuZGF0OgogMjUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDkwZTEzMzA1ZWE2YmU2ZjU2MzFmYTNiNmJjMDIyYjkwZTE2ODQy
ZS4uMjhmNWU2ZTlhODNmODM4OTdhZjFkMjhmYzA0ZjM1ZTAxOWM0ODJmOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NiBA
QAorMjAxMC0wNS0yOCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZG9jdW1lbnQud3JpdGUgZG9l
cyBub3Qgd29yayBjb3JyZWN0bHkgaW4gdGhlIEhUTUw1IHBhcnNlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk4MjgKKworICAgICAgICBBZGRlZCBh
IG5ldyBIVE1MNVNjcmlwdFJ1bm5lckhvc3QgaW50ZXJmYWNlIHdoaWNoCisgICAgICAgIEhUTUw1
VG9rZW5pemVyIGltcGxlbWVudHMuICBUaGlzIGFsbG93cyBIVE1MNVNjcmlwdENvbnRyb2xsZXIK
KyAgICAgICAgdG8gZGVsZWdhdGUgdGhlIGFjdHVhbCBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRl
U2NyaXB0IGJhY2sgdG8KKyAgICAgICAgSFRNTDVUb2tlbml6ZXIuICBIVE1MNVRva2VuaXplciBz
YXZlcyBvZmYgdGhlIGN1cnJlbnQgbV9zb3VyY2UKKyAgICAgICAgYmVmb3JlIGNhbGxpbmcgU2Ny
aXB0Q29udHJvbGxlOjpleGVjdXRlU2NyaXB0IHRvIGFsbG93IHNhZmUKKyAgICAgICAgcmVlbnRy
YW5jeSB0aHJvdWdoIGRvY3VtZW50LndyaXRlKCkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICAtIEFkZGVkIEhUTUw1U2NyaXB0UnVubmVy
SG9zdC5oCisgICAgICAgICogaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MNVNjcmlwdFJ1bm5lcjo6SFRNTDVTY3JpcHRSdW5uZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXI6On5IVE1MNVNjcmlwdFJ1bm5lcik6CisgICAgICAg
ICAtIFVucmVnaXN0ZXIgbV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQgaWYgc3RvcHBlZCBiZWZvcmUK
KyAgICAgICAgICAgbG9hZCBjb21wbGV0aW9uLiAgVGhpcyB3YXMgcHJvYmFibHkgY2F1c2luZyBz
b21lIG9mIHRoZQorICAgICAgICAgICBjcmFzaGVzIG9uIHBhZ2UgbmF2aWdhdGlvbiB3ZSBzYXcg
ZHVyaW5nIExheW91dFRlc3QgcnVucy4KKyAgICAgICAgKFdlYkNvcmU6OmRvY3VtZW50VVJMRm9y
U2NyaXB0RXhlY3V0aW9uKToKKyAgICAgICAgIC0gVW5pZnkgb3VyIGRvY3VtZW50VVJMIGhhbmRs
aW5nIHNvIGFsbCBjYWxsc2l0ZXMgZ2V0IGl0IHJpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TDVTY3JpcHRSdW5uZXI6OnNvdXJjZUZyb21QZW5kaW5nU2NyaXB0KToKKyAgICAgICAgIC0gVXNl
IGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uCisgICAgICAgIChXZWJDb3JlOjpIVE1MNVNj
cmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHQpOgorICAgICAgICAgLSBDYWxsIHN0b3BX
YXRjaGluZ0ZvckxvYWQgaW5zdGVhZCBvZiByZW1vdmVDbGllbnQoKQorICAgICAgICAgLSBDYWxs
IGV4ZWN1dGVTY3JpcHQgaW5zdGVhZCBvZiBTY3JpcHRDb250cm9sbGVyIGRpcmVjdGx5LgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAg
ICAgLSBXcmFwcyBjYWxscyB0byBIVE1MNVNjcmlwdFJ1bm5lckhvc3Q6OmV4ZWN1dGVTY3JpcHQK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjp3YXRjaEZvckxvYWQpOgorICAg
ICAgICAgLSBXcmFwcyBjYWxscyB0byBIVE1MNVNjcmlwdFJ1bm5lckhvc3Q6OndhdGNoRm9yTG9h
ZAorICAgICAgICAoV2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGluZ0Zvckxv
YWQpOgorICAgICAgICAgLSBXcmFwcyBjYWxscyB0byBIVE1MNVNjcmlwdFJ1bm5lckhvc3Q6OnN0
b3BXYXRjaGluZ0ZvckxvYWQKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpy
ZXF1ZXN0U2NyaXB0KToKKyAgICAgICAgIC0gT25seSB3YXRjaCBmb3IgbG9hZCBpZiB0aGUgQ2Fj
aGVkU2NyaXB0IGlzbid0IGFscmVhZHkgbG9hZGVkLgorICAgICAgICAgICBUaGlzIGdldHMgcmlk
IG9mIHJlbnRyYW5jeSBkdWUgdG8gYWRkQ2xpZW50IGNhbGxzLCBhbmQgYXMgYSByZXN1bHQKKyAg
ICAgICAgICAgYWxzbyBzdG9wcyB1cyBmcm9tIGhpdHRpbmcgQVNTRVJUKG1fc2NyaXB0TmVzdGlu
Z0xldmVsKQorICAgICAgICAgICBpbiBleGVjdXRlUGVuZGluZ1NjcmlwdC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpydW5TY3JpcHQpOgorICAgICAgICAgLSBVc2UgdGhl
IG5ldyBmYW5jeSBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbiBhbmQgZXhlY3V0ZVNjcmlw
dC4KKyAgICAgICAgKiBodG1sL0hUTUw1U2NyaXB0UnVubmVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MNVNjcmlwdFJ1bm5lcjo6UGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdCk6CisgICAg
ICAgICAtIEFkZCBhIHdhdGNoaW5nRm9yTG9hZCBib29sIHNvIHdlIGtub3cgaWYgd2UgZXZlciBj
YWxsZWQgd2F0Y2hGb3JMb2FkCisgICAgICAgICAgIHdpdGggdGhpcyBDYWNoZWRTY3JpcHQqLgor
ICAgICAgICAqIGh0bWwvSFRNTDVTY3JpcHRSdW5uZXJIb3N0Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXJIb3N0Ojp+SFRNTDVTY3JpcHRSdW5uZXJIb3N0KToK
KyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUw1VG9rZW5pemVyOjpIVE1MNVRva2VuaXplcik6CisgICAgICAgICAtIFN0b3JlIGFuIG1fZG9j
dW1lbnQgcG9pbnRlciBzaW5jZSB3ZSBuZWVkIHRvIGFjY2VzcworICAgICAgICAgICBtX2RvY3Vt
ZW50LT5mcmFtZSgpLT5zY3JpcHQoKSBmb3Igc2NyaXB0IGV4ZWN1dGlvbi4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1VG9rZW5pemVyOjpwdW1wTGV4ZXIpOgorICAgICAgICAgLSBBbHdheXMgcGF1
c2Ugb3IgdW5wYXVzZSB0aGUgVHJlZUJ1aWxkZXIgYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvbi4KKyAg
ICAgICAgICAgUHJldmlvdXNseSBuZXN0ZWQgc2NyaXB0IGV4ZWN1dGlvbiB3b3VsZCBsZWF2ZSB0
aGUgVHJlZUJ1aWxkZXIKKyAgICAgICAgICAgcGF1c2VkIGV2ZW4gdGhvdWdoIHRoZSB0b3AtbGV2
ZWwgbG9vcCB3YW50ZWQgdG8gcmVzdW1lIHBhcnNpbmcuCisgICAgICAgICAgIE5vdyB3aGVuZXZl
ciBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZSByZXR1cm5zICJjb250aW51ZSBwYXJzaW5nIgorICAg
ICAgICAgICBwYXJzaW5nIHdpbGwgYWN0dWFsbHkgY29udGludWUuICBUaGlzIGZpeGVkIGNhc2Vz
IHdoZXJlIHdlIHdvdWxkCisgICAgICAgICAgIGlnbm9yZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1l
bnQgYWZ0ZXIgZG9jdW1lbnQud3JpdGUoKSBvZiBhIHNjcmlwdCB0YWcuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MNVRva2VuaXplcjo6d3JpdGUpOgorICAgICAgICAgLSBFeHBsYWluIGhvdyBkb2N1
bWVudC53cml0ZSgpIHJlZW50cmFuY3kgaXMgc2FmZSBpbiB0aGUgbmV3IHdvcmxkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OndhdGNoRm9yTG9hZCk6CisgICAgICAgICAtIEhU
TUw1U2NyaXB0UnVubmVySG9zdCBpbXBsZW1lbnRhdGlvbi4gIFdlIGFzc2VydCB0aGF0IHRoaXMg
Y2FsbCB3aWxsCisgICAgICAgICAgIG5ldmVyIGNhdXNlIHNjcmlwdCBleGVjdXRpb24gc2luY2Ug
dGhhdCdzIG91ciBjdXJyZW50IGRlc2lnbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW5p
emVyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKToKKyAgICAgICAgIC0gSFRNTDVTY3JpcHRSdW5uZXJI
b3N0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OmV4
ZWN1dGVTY3JpcHQpOgorICAgICAgICAgLSBIVE1MNVNjcmlwdFJ1bm5lckhvc3QgaW1wbGVtZW50
YXRpb24uIFNhdmUgb2ZmIHRoZSBjdXJyZW50IHNvdXJjZQorICAgICAgICAgICBiZWZvcmUgZXhl
Y3V0aW5nIHNjcmlwdHMgaW4gY2FzZSBkb2N1bWVudC53cml0ZSBpcyBjYWxsZWQgZHVyaW5nCisg
ICAgICAgICAgIHNjcmlwdCBleGVjdXRpb24uCisgICAgICAgICogaHRtbC9IVE1MNVRva2VuaXpl
ci5oOgorICAgICAgICAgLSBJbXBsZW1lbnQgSFRNTDVTY3JpcHRSdW5uZXJIb3N0LgorCiAyMDEw
LTA1LTI4ICBOYXRoYW4gTGF3cmVuY2UgIDxubGF3cmVuY2VAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA0MzgyZTkzMmJiNTBjZThhM2I1NmY1MDFiODhjOWVhZDc5MGZh
MDUxLi41Njk3YWY5NzFhZTJjZWRlYTJjMTc1NTQ5OWRhYjY1ZmQwY2FjNmVlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAxNyw2ICszMDE3LDcgQEAK
IAkJQTg3MURGRTUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZFMTBBMTUzNzZCMDBC
MTJBNjggLyogUmVuZGVyV2lkZ2V0LmNwcCAqLzsgfTsKIAkJQTg3OUM2MjUxMUE5RDFGNzAwNTky
MzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTg3OUM2MjMxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1
aWxkZXIuY3BwICovOyB9OwogCQlBODc5QzYyNjExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVl
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg3OUM2MjQxMUE5RDFGNzAwNTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuaCAqLzsgfTsKKwkJ
QTg3RjE2MzUxMUFFODQxMzAwQ0JCMkU1IC8qIEhUTUw1U2NyaXB0UnVubmVySG9zdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3RjE2MzQxMUFFODQx
MzAwQ0JCMkU1IC8qIEhUTUw1U2NyaXB0UnVubmVySG9zdC5oICovOyB9OwogCQlBODgzREYyNzBG
M0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODgzREYyNTBGM0QwNDVEMDBGMTlCRjYgLyog
VmlzaWJsZVNlbGVjdGlvbi5jcHAgKi87IH07CiAJCUE4ODNERjI4MEYzRDA0NUQwMEYxOUJGNiAv
KiBWaXNpYmxlU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODgzREYyNjBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4OEFE
NTJGMDk1MjRCOTIwMDFERDE5NiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QTJGMDg3OUVCQTkwMDZB
OTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTg0NjMsNiArODQ2NCw3IEBA
CiAJCUE4NzFERkUxMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcldpZGdldC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzlDNjIzMTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRy
ZWVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUw1
VHJlZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc5QzYyNDEx
QTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MNVRyZWVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE4N0YxNjM0MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5lckhvc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTDVTY3JpcHRSdW5uZXJIb3N0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI1MEYzRDA0NUQwMEYxOUJG
NiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFZpc2libGVTZWxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODgzREYyNjBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4OERENDg2MEI0NjI5QTMwMEMwMjk5MCAvKiBQYXRoVHJhdmVy
c2FsU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF0aFRyYXZlcnNh
bFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM4MSw2ICsxMzM4Myw3
IEBACiAJCQkJOTdFOEIzNTUxMUEyM0NFMjAwMTY5NDA5IC8qIEhUTUw1TGV4ZXIuaCAqLywKIAkJ
CQlBODNCM0FFRTExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuY3BwICovLAog
CQkJCUE4M0IzQUVGMTFBREVGRjUwMDQ1ODgwOSAvKiBIVE1MNVNjcmlwdFJ1bm5lci5oICovLAor
CQkJCUE4N0YxNjM0MTFBRTg0MTMwMENCQjJFNSAvKiBIVE1MNVNjcmlwdFJ1bm5lckhvc3QuaCAq
LywKIAkJCQk5N0U4QjNDMjExQTI4OTA4MDAxNjk0MDkgLyogSFRNTDVUb2tlbi5oICovLAogCQkJ
CUE4NzEwMzg4MTFBMjk0NzAwMERCRDUwRSAvKiBIVE1MNVRva2VuaXplci5jcHAgKi8sCiAJCQkJ
QTg3MTAzODkxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1VG9rZW5pemVyLmggKi8sCkBAIC0xOTM3
Nyw2ICsxOTM4MCw3IEBACiAJCQkJQjY2OTNFRjMxMUFENjQ4NjAwM0YyNzcwIC8qIEpTSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODNCM0FGMTExQURFRkY1MDA0
NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyMUQ0NkY4
MTFBRUM5QjEwMDUxNDYxMyAvKiBLaWxsUmluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTg3RjE2
MzUxMUFFODQxMzAwQ0JCMkU1IC8qIEhUTUw1U2NyaXB0UnVubmVySG9zdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUw1U2NyaXB0UnVubmVyLmNwcAppbmRleCBhZTYzMTYzY2IxMjNlNGNkZmNk
YmY1Yjc5ODFiNWM0OTNjNGYzNzdmLi5hMjA0NjQxYmJjNGQwODk1YjBjZjc4YTgwNzYxMGRiNDUw
YWNhN2YxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkhUTUw1U2NyaXB0UnVubmVySG9zdC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxl
bWVudC5oIgpAQCAtNDEsMjAgKzQyLDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTDVTY3JpcHRSdW5uZXI6OkhUTUw1U2NyaXB0UnVu
bmVyKERvY3VtZW50KiBkb2N1bWVudCwgQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGxvYWROb3RpZmll
cikKK0hUTUw1U2NyaXB0UnVubmVyOjpIVE1MNVNjcmlwdFJ1bm5lcihEb2N1bWVudCogZG9jdW1l
bnQsIEhUTUw1U2NyaXB0UnVubmVySG9zdCogaG9zdCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1l
bnQpCi0gICAgLCBtX2xvYWROb3RpZmllcihsb2FkTm90aWZpZXIpCisgICAgLCBtX2hvc3QoaG9z
dCkKICAgICAsIG1fc2NyaXB0TmVzdGluZ0xldmVsKDApCiB7CiB9CiAKIEhUTUw1U2NyaXB0UnVu
bmVyOjp+SFRNTDVTY3JpcHRSdW5uZXIoKQogeworICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgYmUg
cGFzc2VkIGEgImRvbmUgbG9hZGluZy9wYXJzaW5nIiBjYWxsYmFjayBzb29uZXIgdGhhbiBkZXN0
cnVjdGlvbj8KKyAgICBpZiAobV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQuY2FjaGVkU2NyaXB0ICYm
IG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LndhdGNoaW5nRm9yTG9hZCkKKyAgICAgICAgc3RvcFdh
dGNoaW5nRm9yTG9hZChtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdCk7CiB9CiAKLUZyYW1lKiBIVE1M
NVNjcmlwdFJ1bm5lcjo6ZnJhbWUoKSBjb25zdAorc3RhdGljIEtVUkwgZG9jdW1lbnRVUkxGb3JT
Y3JpcHRFeGVjdXRpb24oRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIHJldHVybiBtX2RvY3Vt
ZW50LT5mcmFtZSgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKQor
ICAgICAgICByZXR1cm4gS1VSTCgpOworCisgICAgLy8gVXNlIHRoZSBVUkwgb2YgdGhlIGN1cnJl
bnRseSBhY3RpdmUgZG9jdW1lbnQgZm9yIHRoaXMgZnJhbWUuCisgICAgcmV0dXJuIGRvY3VtZW50
LT5mcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKTsKIH0KIAogaW5saW5lIFBhc3NSZWZQdHI8RXZl
bnQ+IGNyZWF0ZVNjcmlwdExvYWRFdmVudCgpCkBAIC03Niw4ICs4NCw3IEBAIFNjcmlwdFNvdXJj
ZUNvZGUgSFRNTDVTY3JpcHRSdW5uZXI6OnNvdXJjZUZyb21QZW5kaW5nU2NyaXB0KGNvbnN0IFBl
bmRpbmdTY3JpcHQmCiAgICAgfQogICAgIGVycm9yT2NjdXJyZWQgPSBmYWxzZTsKICAgICAvLyBG
SVhNRTogTGluZSBudW1iZXJzIGFyZSB3cm9uZy4KLSAgICBLVVJMIGRvY3VtZW50VVJMID0gZnJh
bWUoKSA/IGZyYW1lKCktPmRvY3VtZW50KCktPnVybCgpIDogS1VSTCgpOwotICAgIHJldHVybiBT
Y3JpcHRTb3VyY2VDb2RlKHNjcmlwdC5lbGVtZW50LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVS
TCk7CisgICAgcmV0dXJuIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LmVsZW1lbnQtPnRleHRDb250
ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpKTsKIH0KIAog
Ym9vbCBIVE1MNVNjcmlwdFJ1bm5lcjo6aXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGlu
Z1NjcmlwdCYgc2NyaXB0KQpAQCAtMTAxLDI2ICsxMDgsNTEgQEAgdm9pZCBIVE1MNVNjcmlwdFJ1
bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKQogICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRS
ZWFkeShtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdCkpOwogICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZSA9IHNvdXJjZUZyb21QZW5kaW5nU2NyaXB0KG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0
LCBlcnJvck9jY3VycmVkKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0g
bV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQuZWxlbWVudC5yZWxlYXNlKCk7Ci0gICAgQ2FjaGVkU2Ny
aXB0KiBjYWNoZWRTY3JpcHQgPSBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQu
Z2V0KCk7Ci0gICAgbV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQuY2FjaGVkU2NyaXB0ID0gMDsKKyAg
ICAvLyBTdG9wIHdhdGNoaW5nIGxvYWRzIGJlZm9yZSBleGVjdXRlU2NyaXB0IHRvIHByZXZlbnQg
cmVjdXJzaW9uIGlmIHRoZSBzY3JpcHQgcmVsb2FkcyBpdHNlbGYuCisgICAgaWYgKG1fcGFyc2lu
Z0Jsb2NraW5nU2NyaXB0LmNhY2hlZFNjcmlwdCAmJiBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC53
YXRjaGluZ0ZvckxvYWQpCisgICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQobV9wYXJzaW5nQmxv
Y2tpbmdTY3JpcHQpOwogCi0gICAgLy8gcmVtb3ZlQ2xpZW50IGJlZm9yZSBleGVjdXRpb24gdG8g
cHJldmVudCByZWN1cnNpb24gaWYgdGhlIHNjcmlwdCByZWxvYWRzIGl0c2VsZi4KLSAgICBpZiAo
Y2FjaGVkU2NyaXB0KQotICAgICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudChtX2xvYWRO
b3RpZmllcik7CisgICAgLy8gQ2xlYXIgdGhlIHBlbmRpbmcgc2NyaXB0IGJlZm9yZSBwb3NzaWJs
ZSByZW50cmFuY3kgZnJvbSBleGVjdXRlU2NyaXB0KCkKKyAgICBSZWZQdHI8RWxlbWVudD4gc2Ny
aXB0RWxlbWVudCA9IG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmVsZW1lbnQucmVsZWFzZSgpOwor
ICAgIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdCgpOwogCiAgICAgbV9z
Y3JpcHROZXN0aW5nTGV2ZWwrKzsKICAgICBpZiAoZXJyb3JPY2N1cnJlZCkKICAgICAgICAgc2Ny
aXB0RWxlbWVudC0+ZGlzcGF0Y2hFdmVudChjcmVhdGVTY3JpcHRFcnJvckV2ZW50KCkpOwogICAg
IGVsc2UgewotICAgICAgICBpZiAodG9TY3JpcHRFbGVtZW50KHNjcmlwdEVsZW1lbnQuZ2V0KCkp
LT5zaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkpCi0gICAgICAgICAgICBmcmFtZSgpLT5zY3Jp
cHQoKS0+ZXhlY3V0ZVNjcmlwdChzb3VyY2VDb2RlKTsKKyAgICAgICAgZXhlY3V0ZVNjcmlwdChz
Y3JpcHRFbGVtZW50LmdldCgpLCBzb3VyY2VDb2RlKTsKICAgICAgICAgc2NyaXB0RWxlbWVudC0+
ZGlzcGF0Y2hFdmVudChjcmVhdGVTY3JpcHRMb2FkRXZlbnQoKSk7CiAgICAgfQogICAgIG1fc2Ny
aXB0TmVzdGluZ0xldmVsLS07CiAgICAgQVNTRVJUKCFtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CiB9
CiAKK3ZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHQoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBTY3JpcHRFbGVt
ZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50KGVsZW1lbnQpOworICAgIEFTU0VS
VChzY3JpcHRFbGVtZW50KTsKKyAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPnNob3VsZEV4ZWN1dGVB
c0phdmFTY3JpcHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQWx3YXlzIHVzZSB0aGUg
ZGVsZWdhdGUgdG8gZXhlY3V0ZSB0aGUgc2NyaXB0IHNvIHRoYXQgaXQgY2FuIHNhdmUgYW55Cisg
ICAgLy8gbmVjZXNzYXJ5IHN0YXRlIHRvIHByZXBhcmUgZm9yIHJlbnRyYW5jeS4KKyAgICBtX2hv
c3QtPmV4ZWN1dGVTY3JpcHQoc291cmNlQ29kZSk7Cit9CisKK3ZvaWQgSFRNTDVTY3JpcHRSdW5u
ZXI6OndhdGNoRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQoreworICAgIEFT
U0VSVCghcGVuZGluZ1NjcmlwdC53YXRjaGluZ0ZvckxvYWQpOworICAgIG1faG9zdC0+d2F0Y2hG
b3JMb2FkKHBlbmRpbmdTY3JpcHQuY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICBwZW5kaW5nU2Ny
aXB0LndhdGNoaW5nRm9yTG9hZCA9IHRydWU7Cit9CisKK3ZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6
OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKK3sKKyAg
ICBBU1NFUlQocGVuZGluZ1NjcmlwdC53YXRjaGluZ0ZvckxvYWQpOworICAgIG1faG9zdC0+c3Rv
cFdhdGNoaW5nRm9yTG9hZChwZW5kaW5nU2NyaXB0LmNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAg
cGVuZGluZ1NjcmlwdC53YXRjaGluZ0ZvckxvYWQgPSBmYWxzZTsKK30KKwogLy8gVGhpcyBmdW5j
dGlvbiBzaG91bGQgbWF0Y2ggMTAuMi41LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlz
ICdzY3JpcHQnIgogLy8gU2NyaXB0IGhhbmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVp
bGRlciB0byBrZWVwIHRoZSBlYWNoIGNsYXNzIHNpbXBsZS4KIGJvb2wgSFRNTDVTY3JpcHRSdW5u
ZXI6OmV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50KQpAQCAtMTczLDEw
ICsyMDUsMTYgQEAgdm9pZCBIVE1MNVNjcmlwdFJ1bm5lcjo6cmVxdWVzdFNjcmlwdChFbGVtZW50
KiBzY3JpcHQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9wYXJzaW5nQmxvY2tpbmdT
Y3JpcHQuY2FjaGVkU2NyaXB0ID0gY2FjaGVkU2NyaXB0OwotICAgIC8vIE5PVEU6IFRoaXMgbWF5
IGNhdXNlIGltbWVkaWF0ZSBleGVjdXRpb24gb2YgdGhlIHNjcmlwdC4KLSAgICBjYWNoZWRTY3Jp
cHQtPmFkZENsaWVudChtX2xvYWROb3RpZmllcik7CisKKyAgICAvLyBXZSBvbmx5IGNhcmUgYWJv
dXQgYSBsb2FkIGNhbGxiYWNrIGlmIGNhY2hlZFNjcmlwdCBpcyBub3QgYWxyZWFkeQorICAgIC8v
IGluIHRoZSBjYWNoZS4gIENhbGxlcnMgd2lsbCBhdHRlbXB0IHRvIHJ1biB0aGUgbV9wYXJzaW5n
QmxvY2tpbmdTY3JpcHQKKyAgICAvLyBpZiBwb3NzaWJsZSBiZWZvcmUgcmV0dXJuaW5nIGNvbnRy
b2wgdG8gdGhlIHBhcnNlci4KKyAgICBpZiAoIW1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmNhY2hl
ZFNjcmlwdC0+aXNMb2FkZWQoKSkKKyAgICAgICAgd2F0Y2hGb3JMb2FkKG1fcGFyc2luZ0Jsb2Nr
aW5nU2NyaXB0KTsKIH0KIAorLy8gVGhpcyBtZXRob2QgaXMgbWVhbnQgdG8gbWF0Y2ggdGhlIEhU
TUw1IGRlZmluaXRpb24gb2YgInJ1bm5pbmcgYSBzY3JpcHQiCisvLyBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5o
dG1sI3J1bm5pbmctYS1zY3JpcHQKIHZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChF
bGVtZW50KiBzY3JpcHQpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5l
bGVtZW50KTsKQEAgLTE5MCwxMCArMjI4LDkgQEAgdm9pZCBIVE1MNVNjcmlwdFJ1bm5lcjo6cnVu
U2NyaXB0KEVsZW1lbnQqIHNjcmlwdCkKICAgICB9IGVsc2UgaWYgKCFtX2RvY3VtZW50LT5oYXZl
U3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5l
bGVtZW50ID0gc2NyaXB0OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEtVUkwgZG9jdW1lbnRVUkwg
PSBmcmFtZSgpID8gZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCkgOiBLVVJMKCk7CiAgICAgICAg
IC8vIEZJWE1FOiBOZWVkIGEgbGluZSBudW1iZXJzIGltcGxlbWVuYXRpb24uCi0gICAgICAgIFNj
cmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZSA9IFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT50ZXh0
Q29udGVudCgpLCBkb2N1bWVudFVSTCwgMCk7Ci0gICAgICAgIGZyYW1lKCktPnNjcmlwdCgpLT5l
eGVjdXRlU2NyaXB0KHNvdXJjZUNvZGUpOworICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJj
ZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlv
bihtX2RvY3VtZW50KSwgMCk7CisgICAgICAgIGV4ZWN1dGVTY3JpcHQoc2NyaXB0LCBzb3VyY2VD
b2RlKTsKICAgICB9CiAgICAgbV9zY3JpcHROZXN0aW5nTGV2ZWwtLTsKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1U2Ny
aXB0UnVubmVyLmgKaW5kZXggNWEzNWYxYmZmNDRhOGE5YzIwMGFmYTEzMzQ4MDg5ODljYjhjMjEz
Yy4uZTY3YTgwNGIyODRiN2JhNjhmYjBhZWExOGY4ODk1M2YyYWYzMjM3NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUw1U2NyaXB0UnVubmVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1
U2NyaXB0UnVubmVyLmgKQEAgLTM4LDExICszOCwxMiBAQCBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEhUTUw1
U2NyaXB0UnVubmVySG9zdDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKIGNsYXNzIEhUTUw1
U2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBIVE1MNVNj
cmlwdFJ1bm5lcihEb2N1bWVudCosIENhY2hlZFJlc291cmNlQ2xpZW50Kik7CisgICAgSFRNTDVT
Y3JpcHRSdW5uZXIoRG9jdW1lbnQqLCBIVE1MNVNjcmlwdFJ1bm5lckhvc3QqKTsKICAgICB+SFRN
TDVTY3JpcHRSdW5uZXIoKTsKIAogICAgIC8vIFByb2Nlc3NlcyB0aGUgcGFzc2VkIGluIHNjcmlw
dCBhbmQgYW55IHBlbmRpbmcgc2NyaXB0cyBpZiBwb3NzaWJsZS4KQEAgLTUyLDggKzUzLDE0IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgUGVuZGluZ1NjcmlwdCB7CisgICAgICAg
IFBlbmRpbmdTY3JpcHQoKQorICAgICAgICAgICAgOiB3YXRjaGluZ0ZvckxvYWQoZmFsc2UpCisg
ICAgICAgIHsKKyAgICAgICAgfQorCiAgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50Owog
ICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdDsK
KyAgICAgICAgYm9vbCB3YXRjaGluZ0ZvckxvYWQ7IC8vIERpZCB3ZSBwYXNzIHRoZSBjYWNoZWRT
Y3JpcHQgdG8gdGhlIEhUTUw1U2NyaXB0UnVubmVySG9zdC4KICAgICAgICAgLy8gSFRNTDUgaGFz
IGFuIGlzUmVhZHkgcGFyYW1ldGVyLCBob3dldmVyIGlzUmVhZHkgZW5kcyB1cCBlcXVpdmFsZW50
IHRvCiAgICAgICAgIC8vIG1fZG9jdW1lbnQtPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpICYmIGNh
Y2hlZFNjcmlwdC0+aXNMb2FkZWQoKQogICAgIH07CkBAIC02NiwxMSArNzMsMTYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlcXVlc3RTY3JpcHQoRWxlbWVudCopOwogICAgIHZvaWQgcnVuU2NyaXB0
KEVsZW1lbnQqKTsKIAorICAgIC8vIEhlbHBlcnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1MNVNjcmlw
dFJ1bm5lckhvc3QKKyAgICB2b2lkIHdhdGNoRm9yTG9hZChQZW5kaW5nU2NyaXB0Jik7CisgICAg
dm9pZCBzdG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKKyAgICB2b2lkIGV4ZWN1
dGVTY3JpcHQoRWxlbWVudCosIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKwogICAgIGJvb2wg
aXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYpOwogICAgIFNjcmlwdFNv
dXJjZUNvZGUgc291cmNlRnJvbVBlbmRpbmdTY3JpcHQoY29uc3QgUGVuZGluZ1NjcmlwdCYsIGJv
b2wmIGVycm9yT2NjdXJyZWQpOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Ci0gICAgQ2Fj
aGVkUmVzb3VyY2VDbGllbnQqIG1fbG9hZE5vdGlmaWVyOworICAgIEhUTUw1U2NyaXB0UnVubmVy
SG9zdCogbV9ob3N0OwogICAgIFBlbmRpbmdTY3JpcHQgbV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQ7
CiAgICAgdW5zaWduZWQgbV9zY3JpcHROZXN0aW5nTGV2ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUw1U2NyaXB0UnVubmVySG9zdC5oIGIvV2ViQ29yZS9odG1sL0hUTUw1U2Ny
aXB0UnVubmVySG9zdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMGUwZmMwYWJhN2ZmZWZlYTMwNjVlYWM0ODJj
YTIwNGVmYzcyOTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRS
dW5uZXJIb3N0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSFRNTDVTY3JpcHRSdW5uZXJIb3N0X2gKKyNk
ZWZpbmUgSFRNTDVTY3JpcHRSdW5uZXJIb3N0X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKK2NsYXNzIEhU
TUw1U2NyaXB0UnVubmVySG9zdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+SFRNTDVTY3JpcHRS
dW5uZXJIb3N0KCkgeyB9CisKKyAgICAvLyBJbXBsZW1lbnRvcnMgc2hvdWxkIGNhbGwgY2FjaGVk
UmVzb3VyY2UtPmFkZENsaWVudCgpIGhlcmUgb3Igc29vbiBhZnRlci4KKyAgICB2aXJ0dWFsIHZv
aWQgd2F0Y2hGb3JMb2FkKENhY2hlZFJlc291cmNlKikgPSAwOworICAgIC8vIEltcGxlbWVudG9y
cyBtdXN0IGNhbGwgY2FjaGVkUmVzb3VyY2UtPnJlbW92ZUNsaWVudCgpIGltbWVkaWF0ZWx5Lgor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wV2F0Y2hpbmdGb3JMb2FkKENhY2hlZFJlc291cmNlKikgPSAw
OworCisgICAgLy8gSW1wbGVtZW50b3JzIHNob3VsZCBoYW5kbGUgcG9zc2libGUgcmVudHJ5IGJl
Zm9yZS9hZnRlciBjYWxsaW5nIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQKKyAgICB2
aXJ0dWFsIHZvaWQgZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJikgPSAwOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXpl
ci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCmluZGV4IDU4NDhkOTkwOGIx
OGEyZjdkMzdlZWVkMzMxMWU5YTVmYjIwMzVmZGEuLjNiYjM5ZGQzNTJlM2JkOWNhM2VmZWQzYjZk
OGRjMTAyNzUwN2QyMDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcApAQCAtMjcsOSArMjcsOSBA
QAogI2luY2x1ZGUgIkhUTUw1VG9rZW5pemVyLmgiCiAKICNpbmNsdWRlICJFbGVtZW50LmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCiAjaW5jbHVkZSAiSFRN
TDVTY3JpcHRSdW5uZXIuaCIKLSNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiSFRN
TDVUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5v
ZGUuaCIKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBIVE1MNVRva2Vu
aXplcjo6SFRNTDVUb2tlbml6ZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRF
cnJvcnMpCiAgICAgOiBUb2tlbml6ZXIoKQorICAgICwgbV9kb2N1ZW1udChkb2N1bWVudCkKICAg
ICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIpCiAgICAgLCBtX3NjcmlwdFJ1bm5lcihuZXcgSFRN
TDVTY3JpcHRSdW5uZXIoZG9jdW1lbnQsIHRoaXMpKQogICAgICwgbV90cmVlQnVpbGRlcihuZXcg
SFRNTDVUcmVlQnVpbGRlcihtX2xleGVyLmdldCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkK
QEAgLTY3LDE5ICs2OCwxNSBAQCB2b2lkIEhUTUw1VG9rZW5pemVyOjpwdW1wTGV4ZXIoKQogICAg
ICAgICAvLyBUaGUgcGFyc2VyIHdpbGwgcGF1c2UgaXRzZWxmIHdoZW4gd2FpdGluZyBvbiBhIHNj
cmlwdCB0byBsb2FkIG9yIHJ1bi4KICAgICAgICAgLy8gU2NyaXB0UnVubmVyIGV4ZWN1dGVzIHNj
cmlwdHMgYXQgdGhlIHJpZ2h0IHRpbWVzIGFuZCBoYW5kbGVzIHJlZW50cmFuY3kuCiAgICAgICAg
IGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nID0gbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUobV90
cmVlQnVpbGRlci0+dGFrZVNjcmlwdFRvUHJvY2VzcygpKTsKLSAgICAgICAgaWYgKCFzaG91bGRD
b250aW51ZVBhcnNpbmcpIHsKLSAgICAgICAgICAgIC8vIEFTU0VSVChtX3NvdXJjZS5pc0VtcHR5
KCkgfHwgbV90cmVlQnVpbGRlci0+aXNQYXVzZWQoKSk7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
dGhlIHNjcmlwdCBydW5uZXIgc2hvdWxkIGVpdGhlciBtYWtlIHRoaXMgY2FsbCBvciByZXR1cm4g
YSBzcGVjaWFsCi0gICAgICAgICAgICAvLyB2YWx1ZSB0byBpbmRpY2F0ZSB3ZSBzaG91bGQgcGF1
c2UuCi0gICAgICAgICAgICBtX3RyZWVCdWlsZGVyLT5zZXRQYXVzZWQodHJ1ZSk7CisgICAgICAg
IG1fdHJlZUJ1aWxkZXItPnNldFBhdXNlZCghc2hvdWxkQ29udGludWVQYXJzaW5nKTsKKyAgICAg
ICAgaWYgKCFzaG91bGRDb250aW51ZVBhcnNpbmcpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KICAgICB9CiB9CiAKIHZvaWQgSFRNTDVUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBib29sKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90
IHlldCBjb3JyZWN0bHkgaGFuZGxlIHJlZW50cmFudCB3cml0ZXMuCisgICAgLy8gSFRNTDVUb2tl
bml6ZXI6OmV4ZWN1dGVTY3JpcHQgaXMgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIHNhdmluZyBt
X3NvdXJjZSBiZWZvcmUgcmUtZW50cnkuCiAgICAgbV9zb3VyY2UuYXBwZW5kKHNvdXJjZSk7CiAg
ICAgaWYgKCFtX3RyZWVCdWlsZGVyLT5pc1BhdXNlZCgpKQogICAgICAgICBwdW1wTGV4ZXIoKTsK
QEAgLTExNSw2ICsxMTIsMzMgQEAgdm9pZCBIVE1MNVRva2VuaXplcjo6cmVzdW1lUGFyc2luZ0Fm
dGVyU2NyaXB0RXhlY3V0aW9uKCkKICAgICAgICAgZW5kKCk7IC8vIFRoZSBkb2N1bWVudCBhbHJl
YWR5IGZpbmlzaGVkIHBhcnNpbmcgd2Ugd2VyZSBqdXN0IHdhaXRpbmcgb24gc2NyaXB0cyB3aGVu
IGZpbmlzaGVkKCkgd2FzIGNhbGxlZC4KIH0KIAordm9pZCBIVE1MNVRva2VuaXplcjo6d2F0Y2hG
b3JMb2FkKENhY2hlZFJlc291cmNlKiBjYWNoZWRTY3JpcHQpCit7CisgICAgQVNTRVJUKCFjYWNo
ZWRTY3JpcHQtPmlzTG9hZGVkKCkpOworICAgIC8vIGFkZENsaWVudCB3b3VsZCBjYWxsIG5vdGlm
eUZpbmlzaGVkIGlmIHRoZSBsb2FkIHdlcmUgY29tcGxldGUuCisgICAgLy8gQ2FsbGVycyBkbyBu
b3QgZXhwZWN0IHRvIGJlIHJlLWVudGVyZWQgZnJvbSB0aGlzIGNhbGwsIHNvIHRoZXkgc2hvdWxk
CisgICAgLy8gbm90IGFuIGFscmVhZHktbG9hZGVkIENhY2hlZFJlc291cmNlLgorICAgIGNhY2hl
ZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworfQorCit2b2lkIEhUTUw1VG9rZW5pemVyOjpzdG9w
V2F0Y2hpbmdGb3JMb2FkKENhY2hlZFJlc291cmNlKiBjYWNoZWRTY3JpcHQpCit7CisgICAgY2Fj
aGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7Cit9CisKK3ZvaWQgSFRNTDVUb2tlbml6ZXI6
OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAg
ICAvLyBOb3QgY3VycmVudGx5IHBvc3NpYmxlIHRvIGV4ZWN1dGUgc2NyaXB0cyBvbiBmcmFtZWxl
c3MgZG9jdW1lbnRzLgorICAgIGlmICghbV9kb2N1ZW1udC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgU2VnbWVudGVkU3RyaW5nIG9sZEluc2VydGlvblBvaW50ID0gbV9zb3VyY2U7
CisgICAgbV9zb3VyY2UgPSBTZWdtZW50ZWRTdHJpbmcoKTsKKyAgICBtX2RvY3VlbW50LT5mcmFt
ZSgpLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChzb3VyY2VDb2RlKTsKKyAgICBvbGRJbnNlcnRp
b25Qb2ludC5wcmVwZW5kKG1fc291cmNlKTsKKyAgICBtX3NvdXJjZSA9IG9sZEluc2VydGlvblBv
aW50OworfQorCiB2b2lkIEhUTUw1VG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgYm9vbCBzaG91bGRDb250aW51ZVBhcnNpbmcg
PSBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChjYWNoZWRSZXNv
dXJjZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MNVRva2VuaXplci5oCmluZGV4IGE4NDU4ZjNlOGUxZTQyYTVkOGY4NzQzZWJh
YjQ2ZGVhZWEyMjViY2IuLmI0ZjMwYTY4OWExMWY2Yjk0YjhhNTQxZWVhYzY2ZmVjYjY1NDMxOGQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MNVRva2VuaXplci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEhUTUw1VG9r
ZW5pemVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAi
SFRNTDVTY3JpcHRSdW5uZXJIb3N0LmgiCiAjaW5jbHVkZSAiSFRNTDVUb2tlbi5oIgogI2luY2x1
ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlRva2VuaXplci5oIgpAQCAtMzgsMTUg
KzM5LDE3IEBAIGNsYXNzIEhUTUw1TGV4ZXI7CiBjbGFzcyBIVE1MNVNjcmlwdFJ1bm5lcjsKIGNs
YXNzIEhUTUw1VHJlZUJ1aWxkZXI7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CitjbGFzcyBTY3JpcHRT
b3VyY2VDb2RlOwogCiAvLyBGSVhNRTogVGhlIHdob2xlIFRva2VuaXplciBjbGFzcyBzeXN0ZW0g
c2hvdWxkIGJlIHJlbmFtZWQgIlBhcnNlciIKIC8vIG9yICJQYXJzZXJDb250cm9sbGVyIiBhcyB0
aGUgam9iIG9mIHRoaXMgY2xhc3MgaXMgdG8gZHJpdmUgcGFyc2luZyBwcm9jZXNzCiAvLyBidXQg
aXQgZG9lcyBub3QgaXRzZWxmIFRva2VuaXplLgotY2xhc3MgSFRNTDVUb2tlbml6ZXIgOiAgcHVi
bGljIFRva2VuaXplciwgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xhc3MgSFRNTDVUb2tlbml6
ZXIgOiAgcHVibGljIFRva2VuaXplciwgSFRNTDVTY3JpcHRSdW5uZXJIb3N0LCBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTDVUb2tlbml6ZXIoSFRNTERvY3VtZW50Kiwg
Ym9vbCByZXBvcnRFcnJvcnMpOwogICAgIHZpcnR1YWwgfkhUTUw1VG9rZW5pemVyKCk7CiAKKyAg
ICAvLyBUb2tlbml6ZXIKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW4oKTsKICAgICB2aXJ0dWFsIHZv
aWQgd3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiwgYm9vbCBhcHBlbmREYXRhKTsKICAgICB2
aXJ0dWFsIHZvaWQgZW5kKCk7CkBAIC01NCw2ICs1NywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZXhl
Y3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKTsKIAorICAgIC8vIEhUTUw1U2NyaXB0
UnVubmVySG9zdAorICAgIHZpcnR1YWwgdm9pZCB3YXRjaEZvckxvYWQoQ2FjaGVkUmVzb3VyY2Uq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFdhdGNoaW5nRm9yTG9hZChDYWNoZWRSZXNvdXJjZSop
OworICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
KTsKKwogICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAKQEAgLTY2LDYgKzc0LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBXZSBob2xkIG1fdG9rZW4gaGVyZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRpYWxs
eSBjb21wbGV0ZS4KICAgICBIVE1MNVRva2VuIG1fdG9rZW47CiAKKyAgICBIVE1MRG9jdW1lbnQq
IG1fZG9jdWVtbnQ7CiAgICAgT3duUHRyPEhUTUw1TGV4ZXI+IG1fbGV4ZXI7CiAgICAgT3duUHRy
PEhUTUw1U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKICAgICBPd25QdHI8SFRNTDVUcmVl
QnVpbGRlcj4gbV90cmVlQnVpbGRlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57308</attachid>
            <date>2010-05-28 02:54:41 -0700</date>
            <delta_ts>2010-05-28 03:11:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39828-20100528025440.patch</filename>
            <type>text/plain</type>
            <size>25267</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDM0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzYgQEAKKzIwMTAtMDUtMjggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgZG9jdW1lbnQu
d3JpdGUgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgaW4gdGhlIEhUTUw1IHBhcnNlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk4MjgKKworICAgICAg
ICBBZGRlZCBhIG5ldyBIVE1MNVNjcmlwdFJ1bm5lckhvc3QgaW50ZXJmYWNlIHdoaWNoCisgICAg
ICAgIEhUTUw1VG9rZW5pemVyIGltcGxlbWVudHMuICBUaGlzIGFsbG93cyBIVE1MNVNjcmlwdENv
bnRyb2xsZXIKKyAgICAgICAgdG8gZGVsZWdhdGUgdGhlIGFjdHVhbCBTY3JpcHRDb250cm9sbGVy
OjpleGVjdXRlU2NyaXB0IGJhY2sgdG8KKyAgICAgICAgSFRNTDVUb2tlbml6ZXIuICBIVE1MNVRv
a2VuaXplciBzYXZlcyBvZmYgdGhlIGN1cnJlbnQgbV9zb3VyY2UKKyAgICAgICAgYmVmb3JlIGNh
bGxpbmcgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdCB0byBhbGxvdyBzYWZlCisgICAg
ICAgIHJlZW50cmFuY3kgdGhyb3VnaCBkb2N1bWVudC53cml0ZSgpLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAgLSBBZGRlZCBIVE1MNVNj
cmlwdFJ1bm5lckhvc3QuaAorICAgICAgICAqIGh0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXI6OkhUTUw1U2NyaXB0UnVubmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjp+SFRNTDVTY3JpcHRSdW5uZXIp
OgorICAgICAgICAgLSBVbnJlZ2lzdGVyIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0IGlmIHN0b3Bw
ZWQgYmVmb3JlCisgICAgICAgICAgIGxvYWQgY29tcGxldGlvbi4gIFRoaXMgd2FzIHByb2JhYmx5
IGNhdXNpbmcgc29tZSBvZiB0aGUKKyAgICAgICAgICAgY3Jhc2hlcyBvbiBwYWdlIG5hdmlnYXRp
b24gd2Ugc2F3IGR1cmluZyBMYXlvdXRUZXN0IHJ1bnMuCisgICAgICAgIChXZWJDb3JlOjpkb2N1
bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbik6CisgICAgICAgICAtIFVuaWZ5IG91ciBkb2N1bWVu
dFVSTCBoYW5kbGluZyBzbyBhbGwgY2FsbHNpdGVzIGdldCBpdCByaWdodC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpzb3VyY2VGcm9tUGVuZGluZ1NjcmlwdCk6CisgICAg
ICAgICAtIFVzZSBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0KToKKyAgICAgICAgIC0g
Q2FsbCBzdG9wV2F0Y2hpbmdGb3JMb2FkIGluc3RlYWQgb2YgcmVtb3ZlQ2xpZW50KCkKKyAgICAg
ICAgIC0gQ2FsbCBleGVjdXRlU2NyaXB0IGluc3RlYWQgb2YgU2NyaXB0Q29udHJvbGxlciBkaXJl
Y3RseS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0
KToKKyAgICAgICAgIC0gV3JhcHMgY2FsbHMgdG8gSFRNTDVTY3JpcHRSdW5uZXJIb3N0OjpleGVj
dXRlU2NyaXB0CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVNjcmlwdFJ1bm5lcjo6d2F0Y2hGb3JM
b2FkKToKKyAgICAgICAgIC0gV3JhcHMgY2FsbHMgdG8gSFRNTDVTY3JpcHRSdW5uZXJIb3N0Ojp3
YXRjaEZvckxvYWQKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVyOjpzdG9wV2F0
Y2hpbmdGb3JMb2FkKToKKyAgICAgICAgIC0gV3JhcHMgY2FsbHMgdG8gSFRNTDVTY3JpcHRSdW5u
ZXJIb3N0OjpzdG9wV2F0Y2hpbmdGb3JMb2FkCisgICAgICAgIChXZWJDb3JlOjpIVE1MNVNjcmlw
dFJ1bm5lcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgICAtIE9ubHkgd2F0Y2ggZm9yIGxvYWQg
aWYgdGhlIENhY2hlZFNjcmlwdCBpc24ndCBhbHJlYWR5IGxvYWRlZC4KKyAgICAgICAgICAgVGhp
cyBnZXRzIHJpZCBvZiByZW50cmFuY3kgZHVlIHRvIGFkZENsaWVudCBjYWxscywgYW5kIGFzIGEg
cmVzdWx0CisgICAgICAgICAgIGFsc28gc3RvcHMgdXMgZnJvbSBoaXR0aW5nIEFTU0VSVChtX3Nj
cmlwdE5lc3RpbmdMZXZlbCkKKyAgICAgICAgICAgaW4gZXhlY3V0ZVBlbmRpbmdTY3JpcHQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MNVNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KToKKyAgICAgICAg
IC0gVXNlIHRoZSBuZXcgZmFuY3kgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRpb24gYW5kIGV4
ZWN1dGVTY3JpcHQuCisgICAgICAgICogaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVTY3JpcHRSdW5uZXI6OlBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3Jp
cHQpOgorICAgICAgICAgLSBBZGQgYSB3YXRjaGluZ0ZvckxvYWQgYm9vbCBzbyB3ZSBrbm93IGlm
IHdlIGV2ZXIgY2FsbGVkIHdhdGNoRm9yTG9hZAorICAgICAgICAgICB3aXRoIHRoaXMgQ2FjaGVk
U2NyaXB0Ki4KKyAgICAgICAgKiBodG1sL0hUTUw1U2NyaXB0UnVubmVySG9zdC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUw1U2NyaXB0UnVubmVySG9zdDo6fkhUTUw1U2NyaXB0UnVu
bmVySG9zdCk6CisgICAgICAgICogaHRtbC9IVE1MNVRva2VuaXplci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6SFRNTDVUb2tlbml6ZXIpOgorICAgICAgICAgLSBTdG9y
ZSBhbiBtX2RvY3VtZW50IHBvaW50ZXIgc2luY2Ugd2UgbmVlZCB0byBhY2Nlc3MKKyAgICAgICAg
ICAgbV9kb2N1bWVudC0+ZnJhbWUoKS0+c2NyaXB0KCkgZm9yIHNjcmlwdCBleGVjdXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6cHVtcExleGVyKToKKyAgICAgICAgIC0g
QWx3YXlzIHBhdXNlIG9yIHVucGF1c2UgdGhlIFRyZWVCdWlsZGVyIGFmdGVyIHNjcmlwdCBleGVj
dXRpb24uCisgICAgICAgICAgIFByZXZpb3VzbHkgbmVzdGVkIHNjcmlwdCBleGVjdXRpb24gd291
bGQgbGVhdmUgdGhlIFRyZWVCdWlsZGVyCisgICAgICAgICAgIHBhdXNlZCBldmVuIHRob3VnaCB0
aGUgdG9wLWxldmVsIGxvb3Agd2FudGVkIHRvIHJlc3VtZSBwYXJzaW5nLgorICAgICAgICAgICBO
b3cgd2hlbmV2ZXIgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUgcmV0dXJucyAiY29udGludWUgcGFy
c2luZyIKKyAgICAgICAgICAgcGFyc2luZyB3aWxsIGFjdHVhbGx5IGNvbnRpbnVlLiAgVGhpcyBm
aXhlZCBjYXNlcyB3aGVyZSB3ZSB3b3VsZAorICAgICAgICAgICBpZ25vcmUgdGhlIHJlc3Qgb2Yg
dGhlIGRvY3VtZW50IGFmdGVyIGRvY3VtZW50LndyaXRlKCkgb2YgYSBzY3JpcHQgdGFnLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OndyaXRlKToKKyAgICAgICAgIC0gRXhwbGFp
biBob3cgZG9jdW1lbnQud3JpdGUoKSByZWVudHJhbmN5IGlzIHNhZmUgaW4gdGhlIG5ldyB3b3Js
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW5pemVyOjp3YXRjaEZvckxvYWQpOgorICAg
ICAgICAgLSBIVE1MNVNjcmlwdFJ1bm5lckhvc3QgaW1wbGVtZW50YXRpb24uICBXZSBhc3NlcnQg
dGhhdCB0aGlzIGNhbGwgd2lsbAorICAgICAgICAgICBuZXZlciBjYXVzZSBzY3JpcHQgZXhlY3V0
aW9uIHNpbmNlIHRoYXQncyBvdXIgY3VycmVudCBkZXNpZ24uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MNVRva2VuaXplcjo6c3RvcFdhdGNoaW5nRm9yTG9hZCk6CisgICAgICAgICAtIEhUTUw1U2Ny
aXB0UnVubmVySG9zdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1VG9r
ZW5pemVyOjpleGVjdXRlU2NyaXB0KToKKyAgICAgICAgIC0gSFRNTDVTY3JpcHRSdW5uZXJIb3N0
IGltcGxlbWVudGF0aW9uLiBTYXZlIG9mZiB0aGUgY3VycmVudCBzb3VyY2UKKyAgICAgICAgICAg
YmVmb3JlIGV4ZWN1dGluZyBzY3JpcHRzIGluIGNhc2UgZG9jdW1lbnQud3JpdGUgaXMgY2FsbGVk
IGR1cmluZworICAgICAgICAgICBzY3JpcHQgZXhlY3V0aW9uLgorICAgICAgICAqIGh0bWwvSFRN
TDVUb2tlbml6ZXIuaDoKKyAgICAgICAgIC0gSW1wbGVtZW50IEhUTUw1U2NyaXB0UnVubmVySG9z
dC4KKwogMjAxMC0wNS0yOCAgTmF0aGFuIExhd3JlbmNlICA8bmxhd3JlbmNlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2MDM0NikKKysrIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
MDE3LDYgKzMwMTcsNyBAQAogCQlBODcxREZFNTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyV2lk
Z2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
NzFERkUxMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwICovOyB9OwogCQlBODc5
QzYyNTExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVpbGRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc5QzYyMzExQTlEMUY3MDA1OTIz
N0EgLyogSFRNTDVUcmVlQnVpbGRlci5jcHAgKi87IH07CiAJCUE4NzlDNjI2MTFBOUQxRjcwMDU5
MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODc5QzYyNDExQTlEMUY3MDA1OTIzN0EgLyogSFRNTDVUcmVlQnVp
bGRlci5oICovOyB9OworCQlBODdGMTYzNTExQUU4NDEzMDBDQkIyRTUgLyogSFRNTDVTY3JpcHRS
dW5uZXJIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODdGMTYzNDExQUU4NDEzMDBDQkIyRTUgLyogSFRNTDVTY3JpcHRSdW5uZXJIb3N0LmggKi87
IH07CiAJCUE4ODNERjI3MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODNERjI1MEYz
RDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmNwcCAqLzsgfTsKIAkJQTg4M0RGMjgw
RjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAvKiBW
aXNpYmxlU2VsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1
RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovOyB9OwpAQCAt
ODQ2Myw2ICs4NDY0LDcgQEAKIAkJQTg3MURGRTEwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldp
ZGdldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyV2lk
Z2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3OUM2MjMxMUE5RDFGNzAw
NTkyMzdBIC8qIEhUTUw1VHJlZUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSFRNTDVUcmVlQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4NzlDNjI0MTFBOUQxRjcwMDU5MjM3QSAvKiBIVE1MNVRyZWVCdWlsZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUw1VHJlZUJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg3RjE2MzQxMUFFODQxMzAwQ0JCMkU1IC8qIEhUTUw1
U2NyaXB0UnVubmVySG9zdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
NVNjcmlwdFJ1bm5lckhvc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4M0RG
MjUwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaWJsZVNlbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4ODNERjI2MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2Vs
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2libGVTZWxlY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4REQ0ODYwQjQ2MjlBMzAwQzAy
OTkwIC8qIFBhdGhUcmF2ZXJzYWxTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXRoVHJhdmVyc2FsU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzMzgxLDYgKzEzMzgzLDcgQEAKIAkJCQk5N0U4QjM1NTExQTIzQ0UyMDAxNjk0MDkgLyogSFRN
TDVMZXhlci5oICovLAogCQkJCUE4M0IzQUVFMTFBREVGRjUwMDQ1ODgwOSAvKiBIVE1MNVNjcmlw
dFJ1bm5lci5jcHAgKi8sCiAJCQkJQTgzQjNBRUYxMUFERUZGNTAwNDU4ODA5IC8qIEhUTUw1U2Ny
aXB0UnVubmVyLmggKi8sCisJCQkJQTg3RjE2MzQxMUFFODQxMzAwQ0JCMkU1IC8qIEhUTUw1U2Ny
aXB0UnVubmVySG9zdC5oICovLAogCQkJCTk3RThCM0MyMTFBMjg5MDgwMDE2OTQwOSAvKiBIVE1M
NVRva2VuLmggKi8sCiAJCQkJQTg3MTAzODgxMUEyOTQ3MDAwREJENTBFIC8qIEhUTUw1VG9rZW5p
emVyLmNwcCAqLywKIAkJCQlBODcxMDM4OTExQTI5NDcwMDBEQkQ1MEUgLyogSFRNTDVUb2tlbml6
ZXIuaCAqLywKQEAgLTE5Mzc3LDYgKzE5MzgwLDcgQEAKIAkJCQlCNjY5M0VGMzExQUQ2NDg2MDAz
RjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
M0IzQUYxMTFBREVGRjUwMDQ1ODgwOSAvKiBIVE1MNVNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTIxRDQ2RjgxMUFFQzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBODdGMTYzNTExQUU4NDEzMDBDQkIyRTUgLyogSFRNTDVTY3JpcHRSdW5uZXJI
b3N0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5l
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUw1U2NyaXB0UnVubmVyLmNwcAko
cmV2aXNpb24gNjAzNDYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MNVNjcmlw
dFJ1bm5lckhvc3QuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKQEAgLTQxLDIwICs0MiwyNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhU
TUw1U2NyaXB0UnVubmVyOjpIVE1MNVNjcmlwdFJ1bm5lcihEb2N1bWVudCogZG9jdW1lbnQsIENh
Y2hlZFJlc291cmNlQ2xpZW50KiBsb2FkTm90aWZpZXIpCitIVE1MNVNjcmlwdFJ1bm5lcjo6SFRN
TDVTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MNVNjcmlwdFJ1bm5lckhvc3Qq
IGhvc3QpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV9sb2FkTm90aWZpZXIo
bG9hZE5vdGlmaWVyKQorICAgICwgbV9ob3N0KGhvc3QpCiAgICAgLCBtX3NjcmlwdE5lc3RpbmdM
ZXZlbCgwKQogewogfQogCiBIVE1MNVNjcmlwdFJ1bm5lcjo6fkhUTUw1U2NyaXB0UnVubmVyKCkK
IHsKKyAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGJlIHBhc3NlZCBhICJkb25lIGxvYWRpbmcvcGFy
c2luZyIgY2FsbGJhY2sgc29vbmVyIHRoYW4gZGVzdHJ1Y3Rpb24/CisgICAgaWYgKG1fcGFyc2lu
Z0Jsb2NraW5nU2NyaXB0LmNhY2hlZFNjcmlwdCAmJiBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC53
YXRjaGluZ0ZvckxvYWQpCisgICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQobV9wYXJzaW5nQmxv
Y2tpbmdTY3JpcHQpOwogfQogCi1GcmFtZSogSFRNTDVTY3JpcHRSdW5uZXI6OmZyYW1lKCkgY29u
c3QKK3N0YXRpYyBLVVJMIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKERvY3VtZW50KiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gbV9kb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIEtVUkwoKTsKKwor
ICAgIC8vIFVzZSB0aGUgVVJMIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGRvY3VtZW50IGZvciB0
aGlzIGZyYW1lLgorICAgIHJldHVybiBkb2N1bWVudC0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJs
KCk7CiB9CiAKIGlubGluZSBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGVTY3JpcHRMb2FkRXZlbnQo
KQpAQCAtNzYsOCArODQsNyBAQCBTY3JpcHRTb3VyY2VDb2RlIEhUTUw1U2NyaXB0UnVubmVyOjpz
b3VyCiAgICAgfQogICAgIGVycm9yT2NjdXJyZWQgPSBmYWxzZTsKICAgICAvLyBGSVhNRTogTGlu
ZSBudW1iZXJzIGFyZSB3cm9uZy4KLSAgICBLVVJMIGRvY3VtZW50VVJMID0gZnJhbWUoKSA/IGZy
YW1lKCktPmRvY3VtZW50KCktPnVybCgpIDogS1VSTCgpOwotICAgIHJldHVybiBTY3JpcHRTb3Vy
Y2VDb2RlKHNjcmlwdC5lbGVtZW50LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTCk7CisgICAg
cmV0dXJuIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LmVsZW1lbnQtPnRleHRDb250ZW50KCksIGRv
Y3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpKTsKIH0KIAogYm9vbCBIVE1M
NVNjcmlwdFJ1bm5lcjo6aXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYg
c2NyaXB0KQpAQCAtMTAxLDI2ICsxMDgsNTEgQEAgdm9pZCBIVE1MNVNjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVBlbmRpbmdTYwogICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRSZWFkeShtX3BhcnNpbmdC
bG9ja2luZ1NjcmlwdCkpOwogICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZSA9IHNvdXJj
ZUZyb21QZW5kaW5nU2NyaXB0KG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LCBlcnJvck9jY3VycmVk
KTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0gbV9wYXJzaW5nQmxvY2tp
bmdTY3JpcHQuZWxlbWVudC5yZWxlYXNlKCk7Ci0gICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3Jp
cHQgPSBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQuZ2V0KCk7Ci0gICAgbV9w
YXJzaW5nQmxvY2tpbmdTY3JpcHQuY2FjaGVkU2NyaXB0ID0gMDsKKyAgICAvLyBTdG9wIHdhdGNo
aW5nIGxvYWRzIGJlZm9yZSBleGVjdXRlU2NyaXB0IHRvIHByZXZlbnQgcmVjdXJzaW9uIGlmIHRo
ZSBzY3JpcHQgcmVsb2FkcyBpdHNlbGYuCisgICAgaWYgKG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0
LmNhY2hlZFNjcmlwdCAmJiBtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdC53YXRjaGluZ0ZvckxvYWQp
CisgICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQobV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQpOwog
Ci0gICAgLy8gcmVtb3ZlQ2xpZW50IGJlZm9yZSBleGVjdXRpb24gdG8gcHJldmVudCByZWN1cnNp
b24gaWYgdGhlIHNjcmlwdCByZWxvYWRzIGl0c2VsZi4KLSAgICBpZiAoY2FjaGVkU2NyaXB0KQot
ICAgICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudChtX2xvYWROb3RpZmllcik7CisgICAg
Ly8gQ2xlYXIgdGhlIHBlbmRpbmcgc2NyaXB0IGJlZm9yZSBwb3NzaWJsZSByZW50cmFuY3kgZnJv
bSBleGVjdXRlU2NyaXB0KCkKKyAgICBSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCA9IG1f
cGFyc2luZ0Jsb2NraW5nU2NyaXB0LmVsZW1lbnQucmVsZWFzZSgpOworICAgIG1fcGFyc2luZ0Js
b2NraW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdCgpOwogCiAgICAgbV9zY3JpcHROZXN0aW5nTGV2
ZWwrKzsKICAgICBpZiAoZXJyb3JPY2N1cnJlZCkKICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZGlz
cGF0Y2hFdmVudChjcmVhdGVTY3JpcHRFcnJvckV2ZW50KCkpOwogICAgIGVsc2UgewotICAgICAg
ICBpZiAodG9TY3JpcHRFbGVtZW50KHNjcmlwdEVsZW1lbnQuZ2V0KCkpLT5zaG91bGRFeGVjdXRl
QXNKYXZhU2NyaXB0KCkpCi0gICAgICAgICAgICBmcmFtZSgpLT5zY3JpcHQoKS0+ZXhlY3V0ZVNj
cmlwdChzb3VyY2VDb2RlKTsKKyAgICAgICAgZXhlY3V0ZVNjcmlwdChzY3JpcHRFbGVtZW50Lmdl
dCgpLCBzb3VyY2VDb2RlKTsKICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZGlzcGF0Y2hFdmVudChj
cmVhdGVTY3JpcHRMb2FkRXZlbnQoKSk7CiAgICAgfQogICAgIG1fc2NyaXB0TmVzdGluZ0xldmVs
LS07CiAgICAgQVNTRVJUKCFtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CiB9CiAKK3ZvaWQgSFRNTDVT
Y3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVt
ZW50ID0gdG9TY3JpcHRFbGVtZW50KGVsZW1lbnQpOworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50
KTsKKyAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQWx3YXlzIHVzZSB0aGUgZGVsZWdhdGUgdG8gZXhl
Y3V0ZSB0aGUgc2NyaXB0IHNvIHRoYXQgaXQgY2FuIHNhdmUgYW55CisgICAgLy8gbmVjZXNzYXJ5
IHN0YXRlIHRvIHByZXBhcmUgZm9yIHJlbnRyYW5jeS4KKyAgICBtX2hvc3QtPmV4ZWN1dGVTY3Jp
cHQoc291cmNlQ29kZSk7Cit9CisKK3ZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6OndhdGNoRm9yTG9h
ZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQoreworICAgIEFTU0VSVCghcGVuZGluZ1Nj
cmlwdC53YXRjaGluZ0ZvckxvYWQpOworICAgIG1faG9zdC0+d2F0Y2hGb3JMb2FkKHBlbmRpbmdT
Y3JpcHQuY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICBwZW5kaW5nU2NyaXB0LndhdGNoaW5nRm9y
TG9hZCA9IHRydWU7Cit9CisKK3ZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGluZ0Zv
ckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKK3sKKyAgICBBU1NFUlQocGVuZGlu
Z1NjcmlwdC53YXRjaGluZ0ZvckxvYWQpOworICAgIG1faG9zdC0+c3RvcFdhdGNoaW5nRm9yTG9h
ZChwZW5kaW5nU2NyaXB0LmNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAgcGVuZGluZ1NjcmlwdC53
YXRjaGluZ0ZvckxvYWQgPSBmYWxzZTsKK30KKwogLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbWF0
Y2ggMTAuMi41LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdzY3JpcHQnIgogLy8g
U2NyaXB0IGhhbmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRlciB0byBrZWVwIHRo
ZSBlYWNoIGNsYXNzIHNpbXBsZS4KIGJvb2wgSFRNTDVTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUGFz
c1JlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50KQpAQCAtMTczLDEwICsyMDUsMTYgQEAgdm9p
ZCBIVE1MNVNjcmlwdFJ1bm5lcjo6cmVxdWVzdFNjcmlwdChFbAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0LmNhY2hlZFNjcmlwdCA9IGNhY2hlZFNj
cmlwdDsKLSAgICAvLyBOT1RFOiBUaGlzIG1heSBjYXVzZSBpbW1lZGlhdGUgZXhlY3V0aW9uIG9m
IHRoZSBzY3JpcHQuCi0gICAgY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQobV9sb2FkTm90aWZpZXIp
OworCisgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IGEgbG9hZCBjYWxsYmFjayBpZiBjYWNoZWRT
Y3JpcHQgaXMgbm90IGFscmVhZHkKKyAgICAvLyBpbiB0aGUgY2FjaGUuICBDYWxsZXJzIHdpbGwg
YXR0ZW1wdCB0byBydW4gdGhlIG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0CisgICAgLy8gaWYgcG9z
c2libGUgYmVmb3JlIHJldHVybmluZyBjb250cm9sIHRvIHRoZSBwYXJzZXIuCisgICAgaWYgKCFt
X3BhcnNpbmdCbG9ja2luZ1NjcmlwdC5jYWNoZWRTY3JpcHQtPmlzTG9hZGVkKCkpCisgICAgICAg
IHdhdGNoRm9yTG9hZChtX3BhcnNpbmdCbG9ja2luZ1NjcmlwdCk7CiB9CiAKKy8vIFRoaXMgbWV0
aG9kIGlzIG1lYW50IHRvIG1hdGNoIHRoZSBIVE1MNSBkZWZpbml0aW9uIG9mICJydW5uaW5nIGEg
c2NyaXB0IgorLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNydW5uaW5nLWEtc2NyaXB0CiB2b2lkIEhU
TUw1U2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0KQogewogICAgIEFTU0VS
VCghbV9wYXJzaW5nQmxvY2tpbmdTY3JpcHQuZWxlbWVudCk7CkBAIC0xOTAsMTAgKzIyOCw5IEBA
IHZvaWQgSFRNTDVTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVtZW4KICAgICB9IGVsc2UgaWYg
KCFtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBtX3BhcnNp
bmdCbG9ja2luZ1NjcmlwdC5lbGVtZW50ID0gc2NyaXB0OwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IEtVUkwgZG9jdW1lbnRVUkwgPSBmcmFtZSgpID8gZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCkg
OiBLVVJMKCk7CiAgICAgICAgIC8vIEZJWE1FOiBOZWVkIGEgbGluZSBudW1iZXJzIGltcGxlbWVu
YXRpb24uCi0gICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZSA9IFNjcmlwdFNvdXJj
ZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTCwgMCk7Ci0gICAgICAgIGZy
YW1lKCktPnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KHNvdXJjZUNvZGUpOworICAgICAgICBTY3Jp
cHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVS
TEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgMCk7CisgICAgICAgIGV4ZWN1dGVTY3Jp
cHQoc2NyaXB0LCBzb3VyY2VDb2RlKTsKICAgICB9CiAgICAgbV9zY3JpcHROZXN0aW5nTGV2ZWwt
LTsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5oCShyZXZpc2lvbiA2MDM0NikKKysr
IFdlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwx
MSArMzgsMTIgQEAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBF
bGVtZW50OwogY2xhc3MgRnJhbWU7CitjbGFzcyBIVE1MNVNjcmlwdFJ1bm5lckhvc3Q7CiBjbGFz
cyBTY3JpcHRTb3VyY2VDb2RlOwogCiBjbGFzcyBIVE1MNVNjcmlwdFJ1bm5lciA6IHB1YmxpYyBO
b25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgSFRNTDVTY3JpcHRSdW5uZXIoRG9jdW1lbnQqLCBD
YWNoZWRSZXNvdXJjZUNsaWVudCopOworICAgIEhUTUw1U2NyaXB0UnVubmVyKERvY3VtZW50Kiwg
SFRNTDVTY3JpcHRSdW5uZXJIb3N0Kik7CiAgICAgfkhUTUw1U2NyaXB0UnVubmVyKCk7CiAKICAg
ICAvLyBQcm9jZXNzZXMgdGhlIHBhc3NlZCBpbiBzY3JpcHQgYW5kIGFueSBwZW5kaW5nIHNjcmlw
dHMgaWYgcG9zc2libGUuCkBAIC01Miw4ICs1MywxNCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgc3RydWN0IFBlbmRpbmdTY3JpcHQgeworICAgICAgICBQZW5kaW5nU2NyaXB0KCkKKyAgICAg
ICAgICAgIDogd2F0Y2hpbmdGb3JMb2FkKGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKwog
ICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQ7CisgICAgICAgIGJvb2wgd2F0Y2hpbmdG
b3JMb2FkOyAvLyBEaWQgd2UgcGFzcyB0aGUgY2FjaGVkU2NyaXB0IHRvIHRoZSBIVE1MNVNjcmlw
dFJ1bm5lckhvc3QuCiAgICAgICAgIC8vIEhUTUw1IGhhcyBhbiBpc1JlYWR5IHBhcmFtZXRlciwg
aG93ZXZlciBpc1JlYWR5IGVuZHMgdXAgZXF1aXZhbGVudCB0bwogICAgICAgICAvLyBtX2RvY3Vt
ZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSAmJiBjYWNoZWRTY3JpcHQtPmlzTG9hZGVkKCkK
ICAgICB9OwpAQCAtNjYsMTEgKzczLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0U2Ny
aXB0KEVsZW1lbnQqKTsKICAgICB2b2lkIHJ1blNjcmlwdChFbGVtZW50Kik7CiAKKyAgICAvLyBI
ZWxwZXJzIGZvciBkZWFsaW5nIHdpdGggSFRNTDVTY3JpcHRSdW5uZXJIb3N0CisgICAgdm9pZCB3
YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOworICAgIHZvaWQgc3RvcFdhdGNoaW5nRm9yTG9h
ZChQZW5kaW5nU2NyaXB0Jik7CisgICAgdm9pZCBleGVjdXRlU2NyaXB0KEVsZW1lbnQqLCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJik7CisKICAgICBib29sIGlzUGVuZGluZ1NjcmlwdFJlYWR5KGNv
bnN0IFBlbmRpbmdTY3JpcHQmKTsKICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUZyb21QZW5k
aW5nU2NyaXB0KGNvbnN0IFBlbmRpbmdTY3JpcHQmLCBib29sJiBlcnJvck9jY3VycmVkKTsKIAog
ICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwotICAgIENhY2hlZFJlc291cmNlQ2xpZW50KiBtX2xv
YWROb3RpZmllcjsKKyAgICBIVE1MNVNjcmlwdFJ1bm5lckhvc3QqIG1faG9zdDsKICAgICBQZW5k
aW5nU2NyaXB0IG1fcGFyc2luZ0Jsb2NraW5nU2NyaXB0OwogICAgIHVuc2lnbmVkIG1fc2NyaXB0
TmVzdGluZ0xldmVsOwogfTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MNVNjcmlwdFJ1bm5lckhv
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXJIb3N0LmgJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTDVTY3JpcHRSdW5uZXJIb3N0LmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEhUTUw1U2NyaXB0UnVubmVySG9zdF9oCisjZGVm
aW5lIEhUTUw1U2NyaXB0UnVubmVySG9zdF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ2FjaGVkUmVzb3VyY2U7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCitjbGFzcyBIVE1M
NVNjcmlwdFJ1bm5lckhvc3QgeworcHVibGljOgorICAgIHZpcnR1YWwgfkhUTUw1U2NyaXB0UnVu
bmVySG9zdCgpIHsgfQorCisgICAgLy8gSW1wbGVtZW50b3JzIHNob3VsZCBjYWxsIGNhY2hlZFJl
c291cmNlLT5hZGRDbGllbnQoKSBoZXJlIG9yIHNvb24gYWZ0ZXIuCisgICAgdmlydHVhbCB2b2lk
IHdhdGNoRm9yTG9hZChDYWNoZWRSZXNvdXJjZSopID0gMDsKKyAgICAvLyBJbXBsZW1lbnRvcnMg
bXVzdCBjYWxsIGNhY2hlZFJlc291cmNlLT5yZW1vdmVDbGllbnQoKSBpbW1lZGlhdGVseS4KKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFdhdGNoaW5nRm9yTG9hZChDYWNoZWRSZXNvdXJjZSopID0gMDsK
KworICAgIC8vIEltcGxlbWVudG9ycyBzaG91bGQgaGFuZGxlIHBvc3NpYmxlIHJlbnRyeSBiZWZv
cmUvYWZ0ZXIgY2FsbGluZyBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0CisgICAgdmly
dHVhbCB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpID0gMDsKK307
CisKK30KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAJKHJldmlzaW9uIDYw
MzQ2KQorKysgV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkhUTUw1VG9rZW5pemVyLmgiCiAKICNpbmNsdWRl
ICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MNUxleGVyLmgi
CiAjaW5jbHVkZSAiSFRNTDVTY3JpcHRSdW5uZXIuaCIKLSNpbmNsdWRlICJIVE1MNVRva2VuLmgi
CiAjaW5jbHVkZSAiSFRNTDVUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBIVE1MNVRva2VuaXplcjo6SFRNTDVUb2tlbml6ZXIoSFRNTERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBUb2tlbml6ZXIoKQorICAgICwgbV9kb2N1bWVu
dChkb2N1bWVudCkKICAgICAsIG1fbGV4ZXIobmV3IEhUTUw1TGV4ZXIpCiAgICAgLCBtX3Njcmlw
dFJ1bm5lcihuZXcgSFRNTDVTY3JpcHRSdW5uZXIoZG9jdW1lbnQsIHRoaXMpKQogICAgICwgbV90
cmVlQnVpbGRlcihuZXcgSFRNTDVUcmVlQnVpbGRlcihtX2xleGVyLmdldCgpLCBkb2N1bWVudCwg
cmVwb3J0RXJyb3JzKSkKQEAgLTY3LDE5ICs2OCwxNSBAQCB2b2lkIEhUTUw1VG9rZW5pemVyOjpw
dW1wTGV4ZXIoKQogICAgICAgICAvLyBUaGUgcGFyc2VyIHdpbGwgcGF1c2UgaXRzZWxmIHdoZW4g
d2FpdGluZyBvbiBhIHNjcmlwdCB0byBsb2FkIG9yIHJ1bi4KICAgICAgICAgLy8gU2NyaXB0UnVu
bmVyIGV4ZWN1dGVzIHNjcmlwdHMgYXQgdGhlIHJpZ2h0IHRpbWVzIGFuZCBoYW5kbGVzIHJlZW50
cmFuY3kuCiAgICAgICAgIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nID0gbV9zY3JpcHRSdW5u
ZXItPmV4ZWN1dGUobV90cmVlQnVpbGRlci0+dGFrZVNjcmlwdFRvUHJvY2VzcygpKTsKLSAgICAg
ICAgaWYgKCFzaG91bGRDb250aW51ZVBhcnNpbmcpIHsKLSAgICAgICAgICAgIC8vIEFTU0VSVCht
X3NvdXJjZS5pc0VtcHR5KCkgfHwgbV90cmVlQnVpbGRlci0+aXNQYXVzZWQoKSk7Ci0gICAgICAg
ICAgICAvLyBGSVhNRTogdGhlIHNjcmlwdCBydW5uZXIgc2hvdWxkIGVpdGhlciBtYWtlIHRoaXMg
Y2FsbCBvciByZXR1cm4gYSBzcGVjaWFsCi0gICAgICAgICAgICAvLyB2YWx1ZSB0byBpbmRpY2F0
ZSB3ZSBzaG91bGQgcGF1c2UuCi0gICAgICAgICAgICBtX3RyZWVCdWlsZGVyLT5zZXRQYXVzZWQo
dHJ1ZSk7CisgICAgICAgIG1fdHJlZUJ1aWxkZXItPnNldFBhdXNlZCghc2hvdWxkQ29udGludWVQ
YXJzaW5nKTsKKyAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZVBhcnNpbmcpCiAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiB9CiAKIHZvaWQgSFRNTDVUb2tlbml6ZXI6Ondy
aXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sKQogewotICAgIC8vIEZJWE1F
OiBUaGlzIGRvZXMgbm90IHlldCBjb3JyZWN0bHkgaGFuZGxlIHJlZW50cmFudCB3cml0ZXMuCisg
ICAgLy8gSFRNTDVUb2tlbml6ZXI6OmV4ZWN1dGVTY3JpcHQgaXMgcmVzcG9uc2libGUgZm9yIGhh
bmRsaW5nIHNhdmluZyBtX3NvdXJjZSBiZWZvcmUgcmUtZW50cnkuCiAgICAgbV9zb3VyY2UuYXBw
ZW5kKHNvdXJjZSk7CiAgICAgaWYgKCFtX3RyZWVCdWlsZGVyLT5pc1BhdXNlZCgpKQogICAgICAg
ICBwdW1wTGV4ZXIoKTsKQEAgLTExNSw2ICsxMTIsMzMgQEAgdm9pZCBIVE1MNVRva2VuaXplcjo6
cmVzdW1lUGFyc2luZ0FmdGVyUwogICAgICAgICBlbmQoKTsgLy8gVGhlIGRvY3VtZW50IGFscmVh
ZHkgZmluaXNoZWQgcGFyc2luZyB3ZSB3ZXJlIGp1c3Qgd2FpdGluZyBvbiBzY3JpcHRzIHdoZW4g
ZmluaXNoZWQoKSB3YXMgY2FsbGVkLgogfQogCit2b2lkIEhUTUw1VG9rZW5pemVyOjp3YXRjaEZv
ckxvYWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFNjcmlwdCkKK3sKKyAgICBBU1NFUlQoIWNhY2hl
ZFNjcmlwdC0+aXNMb2FkZWQoKSk7CisgICAgLy8gYWRkQ2xpZW50IHdvdWxkIGNhbGwgbm90aWZ5
RmluaXNoZWQgaWYgdGhlIGxvYWQgd2VyZSBjb21wbGV0ZS4KKyAgICAvLyBDYWxsZXJzIGRvIG5v
dCBleHBlY3QgdG8gYmUgcmUtZW50ZXJlZCBmcm9tIHRoaXMgY2FsbCwgc28gdGhleSBzaG91bGQK
KyAgICAvLyBub3QgYW4gYWxyZWFkeS1sb2FkZWQgQ2FjaGVkUmVzb3VyY2UuCisgICAgY2FjaGVk
U2NyaXB0LT5hZGRDbGllbnQodGhpcyk7Cit9CisKK3ZvaWQgSFRNTDVUb2tlbml6ZXI6OnN0b3BX
YXRjaGluZ0ZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFNjcmlwdCkKK3sKKyAgICBjYWNo
ZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKK30KKwordm9pZCBIVE1MNVRva2VuaXplcjo6
ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAg
IGlmICghbV9kb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklY
TUU6IElzIHRoaXMgZXhwZW5zaXZlPyAgU2hvdWxkIHdlIHVzZSBPd25QdHIgYW5kIHN3YXA/Cisg
ICAgU2VnbWVudGVkU3RyaW5nIG9sZEluc2VydGlvblBvaW50ID0gbV9zb3VyY2U7CisgICAgbV9z
b3VyY2UgPSBTZWdtZW50ZWRTdHJpbmcoKTsKKyAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5zY3Jp
cHQoKS0+ZXhlY3V0ZVNjcmlwdChzb3VyY2VDb2RlKTsKKyAgICBvbGRJbnNlcnRpb25Qb2ludC5w
cmVwZW5kKG1fc291cmNlKTsKKyAgICBtX3NvdXJjZSA9IG9sZEluc2VydGlvblBvaW50OworfQor
CiB2b2lkIEhUTUw1VG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogY2Fj
aGVkUmVzb3VyY2UpCiB7CiAgICAgYm9vbCBzaG91bGRDb250aW51ZVBhcnNpbmcgPSBtX3Njcmlw
dFJ1bm5lci0+ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChjYWNoZWRSZXNvdXJjZSk7Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTDVUb2tlbml6ZXIuaAkocmV2aXNpb24gNjAzNDYpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTDVUb2tlbml6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBIVE1MNVRva2VuaXplcl9oCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgor
I2luY2x1ZGUgIkhUTUw1U2NyaXB0UnVubmVySG9zdC5oIgogI2luY2x1ZGUgIkhUTUw1VG9rZW4u
aCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJUb2tlbml6ZXIuaCIK
QEAgLTM4LDE1ICszOSwxNyBAQCBjbGFzcyBIVE1MNUxleGVyOwogY2xhc3MgSFRNTDVTY3JpcHRS
dW5uZXI7CiBjbGFzcyBIVE1MNVRyZWVCdWlsZGVyOwogY2xhc3MgSFRNTERvY3VtZW50OworY2xh
c3MgU2NyaXB0U291cmNlQ29kZTsKIAogLy8gRklYTUU6IFRoZSB3aG9sZSBUb2tlbml6ZXIgY2xh
c3Mgc3lzdGVtIHNob3VsZCBiZSByZW5hbWVkICJQYXJzZXIiCiAvLyBvciAiUGFyc2VyQ29udHJv
bGxlciIgYXMgdGhlIGpvYiBvZiB0aGlzIGNsYXNzIGlzIHRvIGRyaXZlIHBhcnNpbmcgcHJvY2Vz
cwogLy8gYnV0IGl0IGRvZXMgbm90IGl0c2VsZiBUb2tlbml6ZS4KLWNsYXNzIEhUTUw1VG9rZW5p
emVyIDogIHB1YmxpYyBUb2tlbml6ZXIsIENhY2hlZFJlc291cmNlQ2xpZW50IHsKK2NsYXNzIEhU
TUw1VG9rZW5pemVyIDogIHB1YmxpYyBUb2tlbml6ZXIsIEhUTUw1U2NyaXB0UnVubmVySG9zdCwg
Q2FjaGVkUmVzb3VyY2VDbGllbnQgewogcHVibGljOgogICAgIEhUTUw1VG9rZW5pemVyKEhUTUxE
b2N1bWVudCosIGJvb2wgcmVwb3J0RXJyb3JzKTsKICAgICB2aXJ0dWFsIH5IVE1MNVRva2VuaXpl
cigpOwogCisgICAgLy8gVG9rZW5pemVyCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luKCk7CiAgICAg
dmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYsIGJvb2wgYXBwZW5kRGF0
YSk7CiAgICAgdmlydHVhbCB2b2lkIGVuZCgpOwpAQCAtNTQsNiArNTcsMTEgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIGV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCk7CiAKKyAgICAvLyBI
VE1MNVNjcmlwdFJ1bm5lckhvc3QKKyAgICB2aXJ0dWFsIHZvaWQgd2F0Y2hGb3JMb2FkKENhY2hl
ZFJlc291cmNlKik7CisgICAgdmlydHVhbCB2b2lkIHN0b3BXYXRjaGluZ0ZvckxvYWQoQ2FjaGVk
UmVzb3VyY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJik7CisKICAgICAvLyBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwogCkBAIC02Niw2ICs3NCw3IEBA
IHByaXZhdGU6CiAgICAgLy8gV2UgaG9sZCBtX3Rva2VuIGhlcmUgYmVjYXVzZSBpdCBtaWdodCBi
ZSBwYXJ0aWFsbHkgY29tcGxldGUuCiAgICAgSFRNTDVUb2tlbiBtX3Rva2VuOwogCisgICAgSFRN
TERvY3VtZW50KiBtX2RvY3VtZW50OwogICAgIE93blB0cjxIVE1MNUxleGVyPiBtX2xleGVyOwog
ICAgIE93blB0cjxIVE1MNVNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CiAgICAgT3duUHRy
PEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJlZUJ1aWxkZXI7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDM0
NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDEwLTA1LTI4ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIGRvY3VtZW50LndyaXRlIGRvZXMg
bm90IHdvcmsgY29ycmVjdGx5IGluIHRoZSBIVE1MNSBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODI4CisKKyAgICAgICAgQWRkIHR3byB0
ZXN0cyBmb3IgZG9jdW1lbnQud3JpdGUgYmVoYXZpb3IgYW5kIHVwZGF0ZQorICAgICAgICBvdXIg
ZXhwZWN0ZWQgcmVzdWx0cyB0byByZW1vdmUgdHdvIHBhcnNlIGVycm9ycyBub3cgdGhhdAorICAg
ICAgICBkb2N1bWVudC53cml0ZSBpcyBmdW5jdGlvbmluZyBjb3JyZWN0bHkuCisKKyAgICAgICAg
KiBodG1sNWxpYi9yZXNvdXJjZXMvd2Via2l0MDEuZGF0OgorICAgICAgICAqIGh0bWw1bGliL3J1
bm5lci1leHBlY3RlZC1odG1sNS50eHQ6CisKIDIwMTAtMDUtMjcgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KSW5k
ZXg6IExheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAko
cmV2aXNpb24gNjAzNDYpCisrKyBMYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQt
aHRtbDUudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQCBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogU3ludGF4RXJyb3I6IFBhCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogUEFTUwogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDI6IEZPTzxzcGFuPkJBUjwvc3Bhbj5CQVoKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IKIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgog
cmVzb3VyY2VzL3Rlc3RzMS5kYXQ6CiAyNQpJbmRleDogTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVz
b3VyY2VzL3dlYmtpdDAxLmRhdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odG1sNWxpYi9y
ZXNvdXJjZXMvd2Via2l0MDEuZGF0CShyZXZpc2lvbiA2MDM0NikKKysrIExheW91dFRlc3RzL2h0
bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMS5kYXQJKHdvcmtpbmcgY29weSkKQEAgLTEyNywzICsx
MjcsMzIgQEAgY29uc29sZS5sb2coIkZPTzxzcGFuPkJBUjwvc3Bhbj5CQVoiKTsKIHwgICA8Ym9k
eT4KIHwgICAgIDxmb28+CiB8ICAgICA8cG90YXRvPgorCisjZGF0YQorMTxzY3JpcHQ+ZG9jdW1l
bnQud3JpdGUoIjIiKTwvc2NyaXB0PjMKKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wg
ICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgICIxIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAg
ImRvY3VtZW50LndyaXRlKCIyIikiCit8ICAgICAiMjMiCisKKyNkYXRhCisxPHNjcmlwdD5kb2N1
bWVudC53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC53cml0ZSgnMicpPC9zY3IiKyAiaXB0PjxzY3Jp
cHQ+ZG9jdW1lbnQud3JpdGUoJzMnKTwvc2NyIiArICJpcHQ+Iik8L3NjcmlwdD40CisjZXJyb3Jz
CisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICAiMSIK
K3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgICJkb2N1bWVudC53cml0ZSgiPHNjcmlwdD5kb2N1bWVu
dC53cml0ZSgnMicpPC9zY3IiKyAiaXB0PjxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzMnKTwvc2Ny
IiArICJpcHQ+IikiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiZG9jdW1lbnQud3JpdGUoJzIn
KSIKK3wgICAgICIyIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgImRvY3VtZW50LndyaXRlKCcz
JykiCit8ICAgICAiMzQiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>