<?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>93660</bug_id>
          
          <creation_ts>2012-08-09 14:45:51 -0700</creation_ts>
          <short_desc>Sandboxing view source documents is ineffective</short_desc>
          <delta_ts>2012-08-09 21:26:08 -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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75793</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>shanestephens</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691873</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-09 14:45:51 -0700</bug_when>
    <thetext>Sandboxing view source documents is ineffective</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691913</commentid>
    <comment_count>1</comment_count>
      <attachid>157560</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-09 15:23:03 -0700</bug_when>
    <thetext>Created attachment 157560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691929</commentid>
    <comment_count>2</comment_count>
      <attachid>157560</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-09 15:36:43 -0700</bug_when>
    <thetext>Comment on attachment 157560
Patch

Did you change the test?  Is this observable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691935</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-09 15:41:39 -0700</bug_when>
    <thetext>&gt; Did you change the test?

The test times out after this patch because it can&apos;t reach inside the XMLTreeViewer document.  I moved it out of the http directory so it has universal privileges and can ignore the sandbox.

&gt; Is this observable?

I don&apos;t know how to test it without a race condition.  The problem is that we need to use a top-level window for XMLTreeViewer to kick in, but then we don&apos;t know how long to wait to for the document to load.

If we could use an iframe, we could wait for the load event, which propagates across origins, but there&apos;s no equivalent for top-level windows.  In other tests, we have the popup window send a postMessage back to its opener, but we can&apos;t do that here because we don&apos;t control the contents of the window (XMLTreeViewer does).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691936</commentid>
    <comment_count>4</comment_count>
      <attachid>157560</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-09 15:43:17 -0700</bug_when>
    <thetext>Comment on attachment 157560
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691999</commentid>
    <comment_count>5</comment_count>
      <attachid>157560</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 17:00:08 -0700</bug_when>
    <thetext>Comment on attachment 157560
Patch

Clearing flags on attachment: 157560

Committed r125222: &lt;http://trac.webkit.org/changeset/125222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692000</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 17:00:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692118</commentid>
    <comment_count>7</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2012-08-09 19:29:58 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692119</commentid>
    <comment_count>8</comment_count>
      <attachid>157614</attachid>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2012-08-09 19:30:05 -0700</bug_when>
    <thetext>Created attachment 157614
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692120</commentid>
    <comment_count>9</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2012-08-09 19:32:20 -0700</bug_when>
    <thetext>How did this even happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692173</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-09 21:26:08 -0700</bug_when>
    <thetext>Presumably your checkout got confused and thus webkit-patch was passed a diff including the ChangeLog message from this commit.  Or possibly you passed webkit-patch upload the number 93660 somehow.  Or  most likely elves.

Always the damn elves...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157560</attachid>
            <date>2012-08-09 15:23:03 -0700</date>
            <delta_ts>2012-08-09 19:29:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93660-20120809152236.patch</filename>
            <type>text/plain</type>
            <size>5932</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ4YjQzYTEwYjdkNDQ4
YWFiNDgxYjQ3YjRhZGM5ODRhMDIyNTE2NS4uOTAzMGQxNTVhY2M4NTJmY2Y4ODg4OTk5ZWQ2MDgy
MWM3OTQ5MWJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTA5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2FuZGJveGluZyB2aWV3IHNv
dXJjZSBkb2N1bWVudHMgaXMgaW5lZmZlY3RpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgRG9jdW1lbnQ6OnNldElz
Vmlld1NvdXJjZSBjaGFuZ2VkIHRoZQorICAgICAgICBTZWN1cml0eU9yaWdpbiBvYmplY3Qgb24g
RG9jdW1lbnQgYnV0IGRpZG4ndCB1cGRhdGUgdGhlIGNvcHkgb24KKyAgICAgICAgRE9NV2luZG93
LiBBcyBhIGNvbnNlcXVlbmNlLCB0aGUgc2VjdXJpdHkgY2hlY2tzIHRoYXQgdXNlIHRoZSBjb3B5
IG9uCisgICAgICAgIERPTVdpbmRvdyBkaWRuJ3Qgbm90aWNlIHRoZSBjaGFuZ2UgYW5kIGFjdGVk
IGFzIGlmIHRoZSBkb2N1bWVudCB3YXNuJ3QKKyAgICAgICAgc2FuZGJveGVkLgorCisgICAgICAg
IFRoaXMgYnVnIHdhc24ndCBwcmVzZW50IGZvciBtb3N0IHZpZXcgc291cmNlIGRvY3VtZW50cyBi
ZWNhdXNlCisgICAgICAgIEhUTUxWaWV3U291cmNlRG9jdW1lbnQgc2V0cyB0aGUgZmxhZyBpbiBp
dHMgY29uc3RydWN0b3IuIEhvd2V2ZXIsIGZvcgorICAgICAgICB2aWV3IHNvdXJjZSBkb2N1bWVu
dHMgY3JlYXRlZCBieSB0aGUgWE1MVHJlZVZpZXdlciwgdGhlIGJpdCB3YXMgc2V0IGF0CisgICAg
ICAgIHRoZSBlbmQgb2YgcGFyc2luZyByYXRoZXIgdGhhbiBkdXJpbmcgY29uc3RydWN0aW9uLgor
CisgICAgICAgIFRoaXMgbWVjaGFuc2ltIGlzIHJlYWxseSBtb3JlIG9mIGEgbWl0aWdhdGlvbiB0
aGFuIGFuIGltcG9ydGFudAorICAgICAgICBzZWN1cml0eSBjaGVjaywgYW5kIEkgd2FzIHRlbXB0
ZWQgdG8gcmVtb3ZlIHRoZSBzYW5kYm94aW5nIGVudGlyZWx5CisgICAgICAgIGdpdmVuIHRoYXQg
c2FuZGJveGluZyBhIGRvY3VtZW50IGF0IHRoZSBlbmQgb2YgcGFyc2luZyBpc24ndCBvdmVybHkK
KyAgICAgICAgZWZmZWN0aXZlIGFueXdheS4gSG93ZXZlciwgd2UgY2FuIHdvcnJ5IGFib3V0IHRo
YXQgaXNzdWUgaW4gYSBmdXR1cmUKKyAgICAgICAgcGF0Y2guCisKKyAgICAgICAgRm9yIHRoZSB0
aW1lIGJlaW5nLCB0aGlzIHBhdGNoIGp1c3Qgc3luY2hyb25pemVzIERPTVdpbmRvdyBhbmQKKyAg
ICAgICAgRG9jdW1lbnQncyBjb3B5IG9mIHRoZSBTZWN1cml0eU9yaWdpbi4gVGhlIGxvbmctdGVy
bSBzb2x1dGlvbiBoZXJlLCBvZgorICAgICAgICBjb3Vyc2UsIGlzIHRvIGtlZXAgd29ya2luZyBv
biBmaXhpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc1NzkzLCB3aGljaCB0aGlzIHBhdGNoIGdldHMgdXMKKyAgICAgICAgb25lIChzbWFsbCkgc3Rl
cCBjbG9zZXIgdG8gZml4aW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJc1ZpZXdTb3VyY2UpOgorCiAyMDEyLTA4LTA5ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGFkZCBjb2RlbWlycm9yIGxpYnJhcnkgYXMgYW4gZXhwZXJpbWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggNmU1ODgzOGQzNDhkOGIyMTA1YTkzNzZmMmY1YzA4NzRhYWFkOTc0
Yi4uZTc4MjY4ZTIzNGMzMjdiODAwNzc3Mzg2MjhkYTg1MmY1MjVhMjMxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yMDQzLDYgKzIwNDMsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRJc1Zp
ZXdTb3VyY2UoYm9vbCBpc1ZpZXdTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldFNl
Y3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSk7CisgICAgZGlkVXBk
YXRlU2VjdXJpdHlPcmlnaW4oKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6Y29tYmluZUNTU0ZlYXR1
cmVGbGFncygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9l
eHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZp
ZXdlci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYyYTQzM2FhODIwZWMxMzYyYjg3Y2ZmYmE1Y2M3MTA1ZDFmN2MzNWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWx2aWV3ZXIvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1UZXN0cyBleHRlbnNpb25zIGhvb2tzIGluIHhtbCB2aWV3ZXIuCi0K
LVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2V4
dGVuc2lvbnMtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbHZpZXdlci9leHRl
bnNpb25zLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODY2Y2YxZjlm
YWMwYjQ0OGRmMWMwMWVjOGQ0ZTFlODk3ZDMxYzQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1sdmlld2VyL2V4
dGVuc2lvbnMtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciB4bWxXaW5kb3c7Ci0KLSAgICAgICAgZnVu
Y3Rpb24gcHJpbnQoc3RyKQotICAgICAgICB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3V0cHV0JykudGV4dENvbnRlbnQgPSBzdHI7Ci0gICAgICAgICAgICB4bWxXaW5k
b3cuY2xvc2UoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VYTUwoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgc291cmNlWE1MID0geG1sV2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd3ZWJraXQteG1sLXZpZXdlci1zb3VyY2UteG1sJyk7Ci0gICAgICAgICAgICBpZiAoc291cmNl
WE1MICYmIHNvdXJjZVhNTC5maXJzdENoaWxkLm5vZGVOYW1lID09ICdyb290JykKLSAgICAgICAg
ICAgICAgICBwcmludCgnU1VDQ0VTUycpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHByaW50KCdGQUlMJyk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBvbmxvYWQo
KQotICAgICAgICB7Ci0gICAgICAgICAgICB4bWxXaW5kb3cgPSB3aW5kb3cub3BlbigncmVzb3Vy
Y2VzL3NhbXBsZS54bWwnLCAiWE1MVmlld2VyVGVzdFdpbmRvdyIpOwotICAgICAgICAgICAgeG1s
V2luZG93Lm9uQWZ0ZXJXZWJraXRYTUxWaWV3ZXJMb2FkZWQgPSBjaGVja1NvdXJjZVhNTDsKLSAg
ICAgICAgfQotCi0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Im9ubG9hZCgp
OyI+Ci0gICAgPHA+VGVzdHMgZXh0ZW5zaW9ucyBob29rcyBpbiB4bWwgdmlld2VyLjwvcD4KLSAg
ICA8ZGl2IGlkPSdvdXRwdXQnPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMveG1sdmlld2VyL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3htbHZpZXdlci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjJhNDMzYWE4MjBlYzEzNjJiODdjZmZiYTVjYzcxMDVkMWY3YzM1YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3htbHZpZXdlci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACitUZXN0cyBleHRlbnNpb25zIGhvb2tzIGluIHhtbCB2aWV3ZXIuCisKK1NV
Q0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3htbHZpZXdlci9leHRlbnNpb25zLWFwaS5o
dG1sIGIvTGF5b3V0VGVzdHMveG1sdmlld2VyL2V4dGVuc2lvbnMtYXBpLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzg2NmNmMWY5ZmFjMGI0NDhkZjFjMDFlYzhkNGUxZTg5N2QzMWM0OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3htbHZpZXdlci9leHRlbnNpb25zLWFwaS5odG1sCkBAIC0wLDAg
KzEsNDAgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHhtbFdpbmRv
dzsKKworICAgICAgICBmdW5jdGlvbiBwcmludChzdHIpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS50ZXh0Q29udGVudCA9IHN0cjsKKyAg
ICAgICAgICAgIHhtbFdpbmRvdy5jbG9zZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVhNTCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBzb3VyY2VYTUwgPSB4bWxXaW5kb3cuZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3dlYmtpdC14bWwtdmlld2VyLXNvdXJjZS14bWwnKTsKKyAgICAg
ICAgICAgIGlmIChzb3VyY2VYTUwgJiYgc291cmNlWE1MLmZpcnN0Q2hpbGQubm9kZU5hbWUgPT0g
J3Jvb3QnKQorICAgICAgICAgICAgICAgIHByaW50KCdTVUNDRVNTJyk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgcHJpbnQoJ0ZBSUwnKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIG9ubG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHhtbFdpbmRvdyA9IHdp
bmRvdy5vcGVuKCdyZXNvdXJjZXMvc2FtcGxlLnhtbCcsICJYTUxWaWV3ZXJUZXN0V2luZG93Iik7
CisgICAgICAgICAgICB4bWxXaW5kb3cub25BZnRlcldlYmtpdFhNTFZpZXdlckxvYWRlZCA9IGNo
ZWNrU291cmNlWE1MOworICAgICAgICB9CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ib25sb2FkKCk7Ij4KKyAgICA8cD5UZXN0cyBleHRlbnNpb25zIGhvb2tzIGluIHht
bCB2aWV3ZXIuPC9wPgorICAgIDxkaXYgaWQ9J291dHB1dCc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157614</attachid>
            <date>2012-08-09 19:30:05 -0700</date>
            <delta_ts>2012-08-09 19:32:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-93660-20120810122937.patch</filename>
            <type>text/plain</type>
            <size>32611</size>
            <attacher name="Shane Stephens">shanestephens</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFlMWViY2Q0ZWE2NzYz
M2QyYjEwNzk3ODQwOThiOWM2M2I3ZjVmOC4uNTFlYTE0NWVjZjUzYWJkNzY4N2M4ZGMzMTAwNDdl
ZWVkZmYzZDkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMTQ2Miw2ICsxNDYyLDgwIEBACiAKIDIwMTItMDgt
MDggIFNoYW5lIFN0ZXBoZW5zICA8c2hhbmVzdGVwaGVuc0Bnb29nbGUuY29tPgogCisgICAgICAg
IENvbnZlcnQgQ1NTUGFyc2VyJ3MgbV9yZXVzYWJsZVNlbGVjdG9yVmVjdG9yIHRvIE93blB0ciBh
bmQgcmVuYW1lIHRvIG1fc2VsZWN0b3JWZWN0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgcHJlcGFyYXRvcnkgd29yayBmb3IgQ1NTIEhp
ZXJhcmNoaWVzIChzZWUgd2tiLnVnLzc5OTM5KS4KKyAgICAgICAgQ1NTIEhpZXJhcmNoaWVzIHdv
cmtzIGJ5IHB1c2hpbmcgc2VsZWN0b3JWZWN0b3JzIG9udG8gYSBzdGFjayB3aGlsZSBuZXN0ZWQg
c2VsZWN0b3JWZWN0b3JzIGFyZSBwYXJzZWQuCisgICAgICAgIEZvciB0aGlzIHJlYXNvbiwgdGhl
IHNlbGVjdG9yVmVjdG9yIGluIENTU1BhcnNlciBjYW4ndCBiZSByZS11c2VkIGJldHdlZW4gc2Vs
ZWN0b3IgcGFyc2VzIHdpdGhpbiBhIHNldCBvZgorICAgICAgICBuZXN0ZWQgc2VsZWN0b3JzLiBU
aGlzIHBhdGNoIHdyYXBzIHRoZSBzZWxlY3RvclZlY3RvciBpbiBhbiBPd25QdHIgYnV0IGRvZXMg
bm90IG90aGVyd2lzZSBtb2RpZnkgaXRzIHVzZS4KKworICAgICAgICBTaW1pbGFybHksIENTU1Bh
cnNlcjo6bV9wYXJzZWRQcm9wZXJ0aWVzIGlzIGNvbnZlcnRlZCBmcm9tIGEgZGlyZWN0IFBhcnNl
ZFByb3BlcnR5VmVjdG9yIGluY2x1ZGVkCisgICAgICAgIGFzIGEgbWVtYmVyIG9mIENTU1BhcnNl
ciB0byBhbiBPd25QdHIuCisKKyAgICAgICAgT25jZSBIaWVyYXJjaGllcyBhcmUgaW50cm9kdWNl
ZCwgd2hlbiBhIHNlbGVjdG9yVmVjdG9yIGlzIHN0YWNrZWQgYSBuZXcgb25lIHdpbGwgYmUgY3Jl
YXRlZCAKKyAgICAgICAgYW5kIHN0b3JlZCBpbiBtX3NlbGVjdG9yVmVjdG9yIChzZWUgd2tiLnVn
Lzc5OTM5IGZvciBjb250ZXh0KS4gSG93ZXZlciwgYW4gYWNjb21wYW55aW5nIHVuc3RhY2tpbmcK
KyAgICAgICAgbWVjaGFuaXNtIGVuc3VyZXMgdGhhdCBzZWxlY3RvclZlY3RvcnMgd2lsbCBiZSBy
ZXVzZWQgaW4gYWxsIGNpcmN1bXN0YW5jZXMgd2hlcmUgdGhleSBjdXJyZW50bHkgYXJlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIGEgQ1NTU2VsZWN0b3JWZWN0b3IgdHlw
ZWRlZiB0byBzaW1wbGlmeSBhbmQgaW1wcm92ZSByZWFkYWJpbGl0eSBvZiAKKyAgICAgICAgdHlw
ZSBzaWduYXR1cmVzIGluIGFuZCBhcm91bmQgQ1NTUGFyc2VyLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBhcyB0aGlzIHBhdGNoIGRvZXNuJ3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsaXR5Lgor
CisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Q1NTUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURlY2xh
cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsdGVyUHJv
cGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUHJvcGVy
dHlTZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjphZGRQcm9wZXJ0eSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnJvbGxiYWNrTGFzdFByb3BlcnRpZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjbGVhclByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZUZsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVG
bG9hdGluZ1NlbGVjdG9yVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c2lu
a0Zsb2F0aW5nU2VsZWN0b3JWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpj
cmVhdGVTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVGb250
RmFjZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnNldFJldXNhYmxlUmVnaW9uU2VsZWN0b3JW
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpzdGFydERlY2xhcmF0aW9uc0Zv
ck1hcmdpbkJveCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmVuZERlY2xhcmF0aW9u
c0Zvck1hcmdpbkJveCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmRlbGV0ZUZvbnRG
YWNlT25seVZhbHVlcyk6CisKKyAgICAgICAgbV9yZXVzYWJsZVNlbGVjdG9yVmVjdG9yIHJlbmFt
ZWQgdG8gbV9zZWxlY3RvclZlY3RvciBhbmQgd3JhcHBlZCBpbiBPd25QdHIuCisgICAgICAgIG1f
cGFyc2VkUHJvcGVydGllcyB3cmFwcGVkIGluIE93blB0ci4KKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Omhhc1Byb3BlcnRpZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpzZWxlY3RvclZlY3Rvcik6IGZ1bmN0aW9uIHJlbmFt
ZWQgZnJvbSByZXVzYWJsZVNlbGVjdG9yVmVjdG9yCisgICAgICAgIChDU1NQYXJzZXIpOiAKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmV1c2FibGVSZWdpb25TZWxlY3RvclZlY3Rvcik6
CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3Rvcik6CisgICAgICAgICogY3NzL0NT
U1BhcnNlclZhbHVlcy5oOiBDU1NTZWxlY3RvclZlY3RvciB0eXBlZGVmIGFkZGVkCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKENTU1BhcnNlclNlbGVjdG9yKToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3JMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6
YWRvcHRTZWxlY3RvclZlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5oOgor
ICAgICAgICAoQ1NTU2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBjc3MvU1ZHQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZSk6CisgICAgICAg
ICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVSZWdpb246
OlN0eWxlUnVsZVJlZ2lvbik6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSdWxlOjpwYXJzZXJBZG9wdFNlbGVjdG9yVmVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUnVsZVBhZ2U6OnBhcnNlckFkb3B0U2VsZWN0b3JWZWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlUmVnaW9uOjpjcmVhdGUpOgorICAgICAgICAoU3R5bGVS
dWxlUmVnaW9uKToKKworMjAxMi0wOC0wOSAgU2hhbmUgU3RlcGhlbnMgIDxzaGFuZXN0ZXBoZW5z
QGdvb2dsZS5jb20+CisKICAgICAgICAgQ29tcGlsZSBmbGFnIGZvciBDU1MgSGllcmFyY2hpZXMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNDMzCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDk5NjhlNzY2MDA3ZWVmMTdhYTE2OTZmYjAyZTRm
Zjc0ZDM0MmYxMDIuLjI5ZmFiNGZmZWRkNjRhZTlkOTE2MGM3ZjQzOGVjNmI1MDFkMzMwZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtNzAsNyArNzAsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogICAgIFN0eWxlUnVsZUJhc2UqIHJ1bGU7CiAgICAgVmVjdG9yPFJlZlB0cjxT
dHlsZVJ1bGVCYXNlPiA+KiBydWxlTGlzdDsKICAgICBDU1NQYXJzZXJTZWxlY3Rvciogc2VsZWN0
b3I7Ci0gICAgVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiogc2VsZWN0b3JMaXN0
OworICAgIENTU1NlbGVjdG9yVmVjdG9yKiBzZWxlY3Rvckxpc3Q7CiAgICAgQ1NTU2VsZWN0b3I6
Ok1hcmdpbkJveFR5cGUgbWFyZ2luQm94OwogICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxh
dGlvbjsKICAgICBNZWRpYVF1ZXJ5U2V0KiBtZWRpYUxpc3Q7CkBAIC0zMzMsOSArMzMzLDkgQEAg
d2Via2l0X3ZhbHVlOgogICAgIFdFQktJVF9WQUxVRV9TWU0gJ3snIG1heWJlX3NwYWNlIGV4cHIg
J30nIHsKICAgICAgICAgaWYgKCQ0KSB7CiAgICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0
ID0gcGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQpOwotICAgICAgICAgICAgaW50IG9s
ZFBhcnNlZFByb3BlcnRpZXMgPSBwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy5zaXplKCk7Cisg
ICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHBhcnNlci0+bV9wYXJzZWRQcm9w
ZXJ0aWVzLT5zaXplKCk7CiAgICAgICAgICAgICBpZiAoIXBhcnNlci0+cGFyc2VWYWx1ZShwYXJz
ZXItPm1faWQsIHBhcnNlci0+bV9pbXBvcnRhbnQpKQotICAgICAgICAgICAgICAgIHBhcnNlci0+
cm9sbGJhY2tMYXN0UHJvcGVydGllcyhwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy5zaXplKCkg
LSBvbGRQYXJzZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgICAgICBwYXJzZXItPnJvbGxiYWNr
TGFzdFByb3BlcnRpZXMocGFyc2VyLT5tX3BhcnNlZFByb3BlcnRpZXMtPnNpemUoKSAtIG9sZFBh
cnNlZFByb3BlcnRpZXMpOwogICAgICAgICAgICAgcGFyc2VyLT5tX3ZhbHVlTGlzdCA9IG51bGxw
dHI7CiAgICAgICAgIH0KICAgICB9CkBAIC05MTIsNyArOTEyLDcgQEAgcnVsZXNldDoKIHNlbGVj
dG9yX2xpc3Q6CiAgICAgc2VsZWN0b3IgJXByZWMgVU5JTVBPUlRBTlRfVE9LIHsKICAgICAgICAg
aWYgKCQxKSB7Ci0gICAgICAgICAgICAkJCA9IHBhcnNlci0+cmV1c2FibGVTZWxlY3RvclZlY3Rv
cigpOworICAgICAgICAgICAgJCQgPSBwYXJzZXItPnNlbGVjdG9yVmVjdG9yKCk7CiAgICAgICAg
ICAgICAkJC0+c2hyaW5rKDApOwogICAgICAgICAgICAgJCQtPmFwcGVuZChwYXJzZXItPnNpbmtG
bG9hdGluZ1NlbGVjdG9yKCQxKSk7CiAgICAgICAgICAgICBwYXJzZXItPnVwZGF0ZUxhc3RTZWxl
Y3RvckxpbmVBbmRQb3NpdGlvbigpOwpAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgcHNldWRvOgogICAg
ICAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKICAgICAgICAg
ICAgICQkLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogCi0gICAgICAgICAg
ICBWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+IHNlbGVjdG9yVmVjdG9yOworICAg
ICAgICAgICAgQ1NTU2VsZWN0b3JWZWN0b3Igc2VsZWN0b3JWZWN0b3I7CiAgICAgICAgICAgICBz
ZWxlY3RvclZlY3Rvci5hcHBlbmQocGFyc2VyLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkNCkpOwog
ICAgICAgICAgICAgJCQtPmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JWZWN0b3IpOwogCkBA
IC0xMzM0LDEwICsxMzM0LDEwIEBAIGRlY2xhcmF0aW9uOgogICAgICAgICBib29sIGlzUHJvcGVy
dHlQYXJzZWQgPSBmYWxzZTsKICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAgICAgICAgICBw
YXJzZXItPm1fdmFsdWVMaXN0ID0gcGFyc2VyLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQpOwot
ICAgICAgICAgICAgaW50IG9sZFBhcnNlZFByb3BlcnRpZXMgPSBwYXJzZXItPm1fcGFyc2VkUHJv
cGVydGllcy5zaXplKCk7CisgICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHBh
cnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXplKCk7CiAgICAgICAgICAgICAkJCA9IHBhcnNl
ci0+cGFyc2VWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPigkMSksICQ1KTsKICAgICAg
ICAgICAgIGlmICghJCQpCi0gICAgICAgICAgICAgICAgcGFyc2VyLT5yb2xsYmFja0xhc3RQcm9w
ZXJ0aWVzKHBhcnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKSAtIG9sZFBhcnNlZFByb3Bl
cnRpZXMpOworICAgICAgICAgICAgICAgIHBhcnNlci0+cm9sbGJhY2tMYXN0UHJvcGVydGllcyhw
YXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpIC0gb2xkUGFyc2VkUHJvcGVydGllcyk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaXNQcm9wZXJ0eVBhcnNlZCA9IHRy
dWU7CiAgICAgICAgICAgICBwYXJzZXItPm1fdmFsdWVMaXN0ID0gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKaW5kZXggMDNlMjcyNjNiYjc5ZjgyNTYyMDE2YjY5ZTI3ZGIxMTkwMGE4
Yjc4Ny4uMDg3ZjU3MGQ5NjUxNzVmYmEzNGE5MDA2MzFiZjYyMmI3MzRhYWIyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTI0NCw2ICsyNDQsNyBAQCBDU1NQYXJzZXI6OkNTU1BhcnNl
cihjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQogICAgICwgbV9pbXBvcnRhbnQoZmFs
c2UpCiAgICAgLCBtX2lkKENTU1Byb3BlcnR5SW52YWxpZCkKICAgICAsIG1fc3R5bGVTaGVldCgw
KQorICAgICwgbV9wYXJzZWRQcm9wZXJ0aWVzKGFkb3B0UHRyKG5ldyBQYXJzZWRQcm9wZXJ0eVZl
Y3RvcikpCiAgICAgLCBtX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3IoMCkKICAgICAsIG1f
bnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveChJTlZBTElEX05VTV9QQVJTRURfUFJP
UEVSVElFUykKICAgICAsIG1faW5QYXJzZVNob3J0aGFuZCgwKQpAQCAtMjYzLDYgKzI2NCw3IEBA
IENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiAg
ICAgLCBtX2xhc3RTZWxlY3RvckxpbmVOdW1iZXIoMCkKICAgICAsIG1fYWxsb3dJbXBvcnRSdWxl
cyh0cnVlKQogICAgICwgbV9hbGxvd05hbWVzcGFjZURlY2xhcmF0aW9ucyh0cnVlKQorICAgICwg
bV9zZWxlY3RvclZlY3RvcihhZG9wdFB0cihuZXcgQ1NTU2VsZWN0b3JWZWN0b3IpKQogewogI2lm
IFlZREVCVUcgPiAwCiAgICAgY3NzeXlkZWJ1ZyA9IDE7CkBAIC0xMTUyLDkgKzExNTQsOSBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShTdHlsZVByb3BlcnR5U2V0KiBkZWNsYXJhdGlvbiwg
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eQogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBpZiAobV9o
YXNGb250RmFjZU9ubHlWYWx1ZXMpCiAgICAgICAgIGRlbGV0ZUZvbnRGYWNlT25seVZhbHVlcygp
OwotICAgIGlmICghbV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgeworICAgIGlmICghbV9w
YXJzZWRQcm9wZXJ0aWVzLT5pc0VtcHR5KCkpIHsKICAgICAgICAgb2sgPSB0cnVlOwotICAgICAg
ICBkZWNsYXJhdGlvbi0+YWRkUGFyc2VkUHJvcGVydGllcyhtX3BhcnNlZFByb3BlcnRpZXMpOwor
ICAgICAgICBkZWNsYXJhdGlvbi0+YWRkUGFyc2VkUHJvcGVydGllcygqbV9wYXJzZWRQcm9wZXJ0
aWVzKTsKICAgICAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CiAgICAgfQogCkBAIC0xMTc1LDcgKzEx
NzcsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb2xvcihSR0JBMzImIGNvbG9yLCBjb25zdCBT
dHJpbmcmIHN0cmluZywgYm9vbCBzdHJpY3QpCiAgICAgaWYgKCFwYXJzZXIucGFyc2VDb2xvcihz
dHJpbmcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBDU1NWYWx1ZSogdmFsdWUgPSBw
YXJzZXIubV9wYXJzZWRQcm9wZXJ0aWVzLmZpcnN0KCkudmFsdWUoKTsKKyAgICBDU1NWYWx1ZSog
dmFsdWUgPSBwYXJzZXIubV9wYXJzZWRQcm9wZXJ0aWVzLT5maXJzdCgpLnZhbHVlKCk7CiAgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTExOTMsNyArMTE5NSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogICAgIGNzc3l5cGFyc2UodGhpcyk7CiAgICAgbV9ydWxlID0gMDsKIAot
ICAgIHJldHVybiAhbV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSAmJiBtX3BhcnNlZFByb3Bl
cnRpZXMuZmlyc3QoKS5pZCgpID09IENTU1Byb3BlcnR5Q29sb3I7CisgICAgcmV0dXJuICFtX3Bh
cnNlZFByb3BlcnRpZXMtPmlzRW1wdHkoKSAmJiBtX3BhcnNlZFByb3BlcnRpZXMtPmZpcnN0KCku
aWQoKSA9PSBDU1NQcm9wZXJ0eUNvbG9yOwogfQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VTeXN0
ZW1Db2xvcihSR0JBMzImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHN0cmluZywgRG9jdW1lbnQqIGRv
Y3VtZW50KQpAQCAtMTI0Myw5ICsxMjQ1LDkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFy
YXRpb24oU3R5bGVQcm9wZXJ0eVNldCogZGVjbGFyYXRpb24sIGNvbnN0IFN0cmluZyYgc3QKICAg
ICBib29sIG9rID0gZmFsc2U7CiAgICAgaWYgKG1faGFzRm9udEZhY2VPbmx5VmFsdWVzKQogICAg
ICAgICBkZWxldGVGb250RmFjZU9ubHlWYWx1ZXMoKTsKLSAgICBpZiAoIW1fcGFyc2VkUHJvcGVy
dGllcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcGFyc2VkUHJvcGVydGllcy0+aXNFbXB0eSgp
KSB7CiAgICAgICAgIG9rID0gdHJ1ZTsKLSAgICAgICAgZGVjbGFyYXRpb24tPmFkZFBhcnNlZFBy
b3BlcnRpZXMobV9wYXJzZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgZGVjbGFyYXRpb24tPmFkZFBh
cnNlZFByb3BlcnRpZXMoKm1fcGFyc2VkUHJvcGVydGllcyk7CiAgICAgICAgIGNsZWFyUHJvcGVy
dGllcygpOwogICAgIH0KIApAQCAtMTI4MiwxNCArMTI4NCwxNCBAQCBQYXNzT3duUHRyPE1lZGlh
UXVlcnk+IENTU1BhcnNlcjo6cGFyc2VNZWRpYVF1ZXJ5KGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
fQogCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCi1zdGF0aWMgaW5saW5lIHZvaWQgZmlsdGVy
UHJvcGVydGllcyhib29sIGltcG9ydGFudCwgY29uc3QgQ1NTUGFyc2VyOjpQYXJzZWRQcm9wZXJ0
eVZlY3RvciYgaW5wdXQsIFZlY3RvcjxDU1NQcm9wZXJ0eSwgMjU2PiYgb3V0cHV0LCBzaXplX3Qm
IHVudXNlZEVudHJpZXMsIEJpdEFycmF5PG51bUNTU1Byb3BlcnRpZXM+JiBzZWVuUHJvcGVydGll
cywgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBzZWVuVmFyaWFibGVzKQorc3RhdGljIGlubGluZSB2
b2lkIGZpbHRlclByb3BlcnRpZXMoYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNlcjo6UGFy
c2VkUHJvcGVydHlWZWN0b3IqIGlucHV0LCBWZWN0b3I8Q1NTUHJvcGVydHksIDI1Nj4mIG91dHB1
dCwgc2l6ZV90JiB1bnVzZWRFbnRyaWVzLCBCaXRBcnJheTxudW1DU1NQcm9wZXJ0aWVzPiYgc2Vl
blByb3BlcnRpZXMsIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgc2VlblZhcmlhYmxlcykKICNlbHNl
Ci1zdGF0aWMgaW5saW5lIHZvaWQgZmlsdGVyUHJvcGVydGllcyhib29sIGltcG9ydGFudCwgY29u
c3QgQ1NTUGFyc2VyOjpQYXJzZWRQcm9wZXJ0eVZlY3RvciYgaW5wdXQsIFZlY3RvcjxDU1NQcm9w
ZXJ0eSwgMjU2PiYgb3V0cHV0LCBzaXplX3QmIHVudXNlZEVudHJpZXMsIEJpdEFycmF5PG51bUNT
U1Byb3BlcnRpZXM+JiBzZWVuUHJvcGVydGllcykKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaWx0ZXJQ
cm9wZXJ0aWVzKGJvb2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXI6OlBhcnNlZFByb3BlcnR5
VmVjdG9yKiBpbnB1dCwgVmVjdG9yPENTU1Byb3BlcnR5LCAyNTY+JiBvdXRwdXQsIHNpemVfdCYg
dW51c2VkRW50cmllcywgQml0QXJyYXk8bnVtQ1NTUHJvcGVydGllcz4mIHNlZW5Qcm9wZXJ0aWVz
KQogI2VuZGlmCiB7CiAgICAgLy8gQWRkIHByb3BlcnRpZXMgaW4gcmV2ZXJzZSBvcmRlciBzbyB0
aGF0IGhpZ2hlc3QgcHJpb3JpdHkgZGVmaW5pdGlvbnMgYXJlIHJlYWNoZWQgZmlyc3QuIER1cGxp
Y2F0ZSBkZWZpbml0aW9ucyBjYW4gdGhlbiBiZSBpZ25vcmVkIHdoZW4gZm91bmQuCi0gICAgZm9y
IChpbnQgaSA9IGlucHV0LnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGNvbnN0
IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IGlucHV0W2ldOworICAgIGZvciAoaW50IGkgPSBpbnB1
dC0+c2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkm
IHByb3BlcnR5ID0gaW5wdXQtPmF0KGkpOwogICAgICAgICBpZiAocHJvcGVydHkuaXNJbXBvcnRh
bnQoKSAhPSBpbXBvcnRhbnQpCiAgICAgICAgICAgICBjb250aW51ZTsKICNpZiBFTkFCTEUoQ1NT
X1ZBUklBQkxFUykKQEAgLTEzMTMsMTcgKzEzMTUsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZp
bHRlclByb3BlcnRpZXMoYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNlcjo6UGFyc2VkUHJv
cGUKIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVBy
b3BlcnR5U2V0KCkKIHsKICAgICBCaXRBcnJheTxudW1DU1NQcm9wZXJ0aWVzPiBzZWVuUHJvcGVy
dGllczsKLSAgICBzaXplX3QgdW51c2VkRW50cmllcyA9IG1fcGFyc2VkUHJvcGVydGllcy5zaXpl
KCk7CisgICAgc2l6ZV90IHVudXNlZEVudHJpZXMgPSBtX3BhcnNlZFByb3BlcnRpZXMtPnNpemUo
KTsKICAgICBWZWN0b3I8Q1NTUHJvcGVydHksIDI1Nj4gcmVzdWx0cyh1bnVzZWRFbnRyaWVzKTsK
IAogICAgIC8vIEltcG9ydGFudCBwcm9wZXJ0aWVzIGhhdmUgaGlnaGVyIHByaW9yaXR5LCBzbyBh
ZGQgdGhlbSBmaXJzdC4gRHVwbGljYXRlIGRlZmluaXRpb25zIGNhbiB0aGVuIGJlIGlnbm9yZWQg
d2hlbiBmb3VuZC4KICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKICAgICBIYXNoU2V0PEF0b21p
Y1N0cmluZz4gc2VlblZhcmlhYmxlczsKLSAgICBmaWx0ZXJQcm9wZXJ0aWVzKHRydWUsIG1fcGFy
c2VkUHJvcGVydGllcywgcmVzdWx0cywgdW51c2VkRW50cmllcywgc2VlblByb3BlcnRpZXMsIHNl
ZW5WYXJpYWJsZXMpOwotICAgIGZpbHRlclByb3BlcnRpZXMoZmFsc2UsIG1fcGFyc2VkUHJvcGVy
dGllcywgcmVzdWx0cywgdW51c2VkRW50cmllcywgc2VlblByb3BlcnRpZXMsIHNlZW5WYXJpYWJs
ZXMpOworICAgIGZpbHRlclByb3BlcnRpZXModHJ1ZSwgbV9wYXJzZWRQcm9wZXJ0aWVzLmdldCgp
LCByZXN1bHRzLCB1bnVzZWRFbnRyaWVzLCBzZWVuUHJvcGVydGllcywgc2VlblZhcmlhYmxlcyk7
CisgICAgZmlsdGVyUHJvcGVydGllcyhmYWxzZSwgbV9wYXJzZWRQcm9wZXJ0aWVzLmdldCgpLCBy
ZXN1bHRzLCB1bnVzZWRFbnRyaWVzLCBzZWVuUHJvcGVydGllcywgc2VlblZhcmlhYmxlcyk7CiAj
ZWxzZQotICAgIGZpbHRlclByb3BlcnRpZXModHJ1ZSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCByZXN1
bHRzLCB1bnVzZWRFbnRyaWVzLCBzZWVuUHJvcGVydGllcyk7Ci0gICAgZmlsdGVyUHJvcGVydGll
cyhmYWxzZSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCByZXN1bHRzLCB1bnVzZWRFbnRyaWVzLCBzZWVu
UHJvcGVydGllcyk7CisgICAgZmlsdGVyUHJvcGVydGllcyh0cnVlLCBtX3BhcnNlZFByb3BlcnRp
ZXMuZ2V0KCksIHJlc3VsdHMsIHVudXNlZEVudHJpZXMsIHNlZW5Qcm9wZXJ0aWVzKTsKKyAgICBm
aWx0ZXJQcm9wZXJ0aWVzKGZhbHNlLCBtX3BhcnNlZFByb3BlcnRpZXMuZ2V0KCksIHJlc3VsdHMs
IHVudXNlZEVudHJpZXMsIHNlZW5Qcm9wZXJ0aWVzKTsKICNlbmRpZgogICAgIGlmICh1bnVzZWRF
bnRyaWVzKQogICAgICAgICByZXN1bHRzLnJlbW92ZSgwLCB1bnVzZWRFbnRyaWVzKTsKQEAgLTEz
MzMsMTkgKzEzMzUsMTkgQEAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBDU1NQYXJzZXI6
OmNyZWF0ZVN0eWxlUHJvcGVydHlTZXQoKQogCiB2b2lkIENTU1BhcnNlcjo6YWRkUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wSWQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlLCBib29sIGlt
cG9ydGFudCwgYm9vbCBpbXBsaWNpdCkKIHsKLSAgICBtX3BhcnNlZFByb3BlcnRpZXMuYXBwZW5k
KENTU1Byb3BlcnR5KHByb3BJZCwgdmFsdWUsIGltcG9ydGFudCwgbV9jdXJyZW50U2hvcnRoYW5k
LCBtX2ltcGxpY2l0U2hvcnRoYW5kIHx8IGltcGxpY2l0KSk7CisgICAgbV9wYXJzZWRQcm9wZXJ0
aWVzLT5hcHBlbmQoQ1NTUHJvcGVydHkocHJvcElkLCB2YWx1ZSwgaW1wb3J0YW50LCBtX2N1cnJl
bnRTaG9ydGhhbmQsIG1faW1wbGljaXRTaG9ydGhhbmQgfHwgaW1wbGljaXQpKTsKIH0KIAogdm9p
ZCBDU1NQYXJzZXI6OnJvbGxiYWNrTGFzdFByb3BlcnRpZXMoaW50IG51bSkKIHsKICAgICBBU1NF
UlQobnVtID49IDApOwotICAgIEFTU0VSVChtX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpID49IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihudW0pKTsKLSAgICBtX3BhcnNlZFByb3BlcnRpZXMuc2hyaW5r
KG1fcGFyc2VkUHJvcGVydGllcy5zaXplKCkgLSBudW0pOworICAgIEFTU0VSVChtX3BhcnNlZFBy
b3BlcnRpZXMtPnNpemUoKSA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtKSk7CisgICAgbV9w
YXJzZWRQcm9wZXJ0aWVzLT5zaHJpbmsobV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXplKCkgLSBudW0p
OwogfQogCiB2b2lkIENTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVzKCkKIHsKLSAgICBtX3BhcnNl
ZFByb3BlcnRpZXMuY2xlYXIoKTsKKyAgICBtX3BhcnNlZFByb3BlcnRpZXMtPmNsZWFyKCk7CiAg
ICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFS
U0VEX1BST1BFUlRJRVM7CiAgICAgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0K
QEAgLTE3NjEsNyArMTc2Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgU2hvcnRoYW5kU2NvcGUgc2Nv
cGUodGhpcywgcHJvcElkKTsKICAgICAgICAgaWYgKG51bSAhPSAxIHx8ICFwYXJzZVZhbHVlKENT
U1Byb3BlcnR5T3ZlcmZsb3dYLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMubGFzdCgpLnZh
bHVlKCk7CisgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllcy0+bGFz
dCgpLnZhbHVlKCk7CiAgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcmZsb3dZLCB2
YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTc4NCw3
ICsxNzg2LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhp
cywgQ1NTUHJvcGVydHlCb3JkZXJTcGFjaW5nKTsKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1
ZShDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckhvcml6b250YWxTcGFjaW5nLCBpbXBvcnRhbnQpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1
ZSA9IG1fcGFyc2VkUHJvcGVydGllcy5sYXN0KCkudmFsdWUoKTsKKyAgICAgICAgICAgIENTU1Zh
bHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllcy0+bGFzdCgpLnZhbHVlKCk7CiAgICAgICAg
ICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclZlcnRpY2FsU3BhY2luZywg
dmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpA
QCAtMjQxMSw3ICsyNDEzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgU2hvcnRoYW5kU2NvcGUg
c2NvcGUodGhpcywgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5Db2xsYXBzZSk7CiAgICAgICAgICAg
ICBpZiAoIXBhcnNlVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKS5wcm9wZXJ0
aWVzKClbMF0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLmxhc3QoKS52YWx1
ZSgpOworICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLT5s
YXN0KCkudmFsdWUoKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHdlYmtpdE1hcmdpbkNvbGxh
cHNlU2hvcnRoYW5kKCkucHJvcGVydGllcygpWzFdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0zMjQ0LDcgKzMyNDYsNyBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKENTU1Byb3BlcnR5SUQgcHJvcElkLCBjb25zdCBDU1NQ
cm9wZXJ0eUlEICpwcm9wZXJ0aQogICAgICAgICBjYXNlIDE6IHsKICAgICAgICAgICAgIGlmICgh
cGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgIENTU1ZhbHVlICp2YWx1ZSA9IG1fcGFyc2VkUHJvcGVy
dGllcy5sYXN0KCkudmFsdWUoKTsKKyAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1fcGFy
c2VkUHJvcGVydGllcy0+bGFzdCgpLnZhbHVlKCk7CiAgICAgICAgICAgICBJbXBsaWNpdFNjb3Bl
IGltcGxpY2l0U2NvcGUodGhpcywgUHJvcGVydHlJbXBsaWNpdCk7CiAgICAgICAgICAgICBhZGRQ
cm9wZXJ0eShwcm9wZXJ0aWVzWzFdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIGFk
ZFByb3BlcnR5KHByb3BlcnRpZXNbMl0sIHZhbHVlLCBpbXBvcnRhbnQpOwpAQCAtMzI1NCwxNyAr
MzI1NiwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKENTU1Byb3BlcnR5SUQgcHJv
cElkLCBjb25zdCBDU1NQcm9wZXJ0eUlEICpwcm9wZXJ0aQogICAgICAgICBjYXNlIDI6IHsKICAg
ICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFw
YXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0
aWVzW21fcGFyc2VkUHJvcGVydGllcy5zaXplKCkgLSAyXS52YWx1ZSgpOworICAgICAgICAgICAg
Q1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLT5hdChtX3BhcnNlZFByb3BlcnRp
ZXMtPnNpemUoKSAtIDIpLnZhbHVlKCk7CiAgICAgICAgICAgICBJbXBsaWNpdFNjb3BlIGltcGxp
Y2l0U2NvcGUodGhpcywgUHJvcGVydHlJbXBsaWNpdCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0
eShwcm9wZXJ0aWVzWzJdLCB2YWx1ZSwgaW1wb3J0YW50KTsKLSAgICAgICAgICAgIHZhbHVlID0g
bV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJvcGVydGllcy5zaXplKCkgLSAyXS52YWx1ZSgp
OworICAgICAgICAgICAgdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMtPmF0KG1fcGFyc2VkUHJv
cGVydGllcy0+c2l6ZSgpIC0gMikudmFsdWUoKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHBy
b3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSAzOiB7CiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJv
cGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBv
cnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMl0sIGltcG9ydGFudCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gbV9w
YXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJvcGVydGllcy5zaXplKCkgLSAyXS52YWx1ZSgpOwor
ICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLT5hdChtX3Bh
cnNlZFByb3BlcnRpZXMtPnNpemUoKSAtIDIpLnZhbHVlKCk7CiAgICAgICAgICAgICBJbXBsaWNp
dFNjb3BlIGltcGxpY2l0U2NvcGUodGhpcywgUHJvcGVydHlJbXBsaWNpdCk7CiAgICAgICAgICAg
ICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtNzc2OCw3ICs3NzcwLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRmxv
d1RocmVhZChjb25zdCBTdHJpbmcmIGZsb3dOYW1lKQogCiAgICAgbV9ydWxlID0gMDsKIAotICAg
IHJldHVybiAoKG1fcGFyc2VkUHJvcGVydGllcy5zaXplKCkgPT0gMSkgJiYgKG1fcGFyc2VkUHJv
cGVydGllcy5maXJzdCgpLmlkKCkgPT0gQ1NTUHJvcGVydHlXZWJraXRGbG93SW50bykpOworICAg
IHJldHVybiAoKG1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpID09IDEpICYmIChtX3BhcnNlZFBy
b3BlcnRpZXMtPmZpcnN0KCkuaWQoKSA9PSBDU1NQcm9wZXJ0eVdlYmtpdEZsb3dJbnRvKSk7CiB9
CiAKIC8vIG5vbmUgfCA8aWRlbnQ+CkBAIC03OTE2LDggKzc5MTgsOCBAQCB2b2lkIENTU1BhcnNl
cjo6YWRkVGV4dERlY29yYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUGFzc1Jl
ZlB0cjxDU1NWYQogewogICAgIC8vIFRoZSB0ZXh0LWRlY29yYXRpb24tbGluZSBwcm9wZXJ0eSB0
YWtlcyBwcmlvcml0eSBvdmVyIHRleHQtZGVjb3JhdGlvbiwgdW5sZXNzIHRoZSBsYXR0ZXIgaGFz
IGltcG9ydGFudCBwcmlvcml0eSBzZXQuCiAgICAgaWYgKHByb3BJZCA9PSBDU1NQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uICYmICFpbXBvcnRhbnQgJiYgbV9jdXJyZW50U2hvcnRoYW5kID09IENTU1By
b3BlcnR5SW52YWxpZCkgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wYXJz
ZWRQcm9wZXJ0aWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAobV9wYXJzZWRQcm9w
ZXJ0aWVzW2ldLmlkKCkgPT0gQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbkxpbmUpCisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BhcnNlZFByb3BlcnRpZXMtPnNpemUo
KTsgKytpKSB7CisgICAgICAgICAgICBpZiAobV9wYXJzZWRQcm9wZXJ0aWVzLT5hdChpKS5pZCgp
ID09IENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25MaW5lKQogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTk0NzcsMTQgKzk0NzksMTQgQEAgUGFzc093
blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTUGFyc2VyOjpzaW5rRmxvYXRpbmdTZWxlY3RvcihD
U1NQYXJzZXJTZWxlY3RvcioKICAgICByZXR1cm4gYWRvcHRQdHIoc2VsZWN0b3IpOwogfQogCi1W
ZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiBDU1NQYXJzZXI6OmNyZWF0ZUZsb2F0
aW5nU2VsZWN0b3JWZWN0b3IoKQorQ1NTU2VsZWN0b3JWZWN0b3IqIENTU1BhcnNlcjo6Y3JlYXRl
RmxvYXRpbmdTZWxlY3RvclZlY3RvcigpCiB7Ci0gICAgVmVjdG9yPE93blB0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4gPiogc2VsZWN0b3JWZWN0b3IgPSBuZXcgVmVjdG9yPE93blB0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4gPjsKKyAgICBDU1NTZWxlY3RvclZlY3Rvciogc2VsZWN0b3JWZWN0b3IgPSBuZXcg
Q1NTU2VsZWN0b3JWZWN0b3I7CiAgICAgbV9mbG9hdGluZ1NlbGVjdG9yVmVjdG9ycy5hZGQoc2Vs
ZWN0b3JWZWN0b3IpOwogICAgIHJldHVybiBzZWxlY3RvclZlY3RvcjsKIH0KIAotUGFzc093blB0
cjxWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+ID4gQ1NTUGFyc2VyOjpzaW5rRmxv
YXRpbmdTZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiBz
ZWxlY3RvclZlY3RvcikKK1Bhc3NPd25QdHI8Q1NTU2VsZWN0b3JWZWN0b3IgPiBDU1NQYXJzZXI6
OnNpbmtGbG9hdGluZ1NlbGVjdG9yVmVjdG9yKENTU1NlbGVjdG9yVmVjdG9yKiBzZWxlY3RvclZl
Y3RvcikKIHsKICAgICBpZiAoc2VsZWN0b3JWZWN0b3IpIHsKICAgICAgICAgQVNTRVJUKG1fZmxv
YXRpbmdTZWxlY3RvclZlY3RvcnMuY29udGFpbnMoc2VsZWN0b3JWZWN0b3IpKTsKQEAgLTk2Nzcs
NyArOTY3OSw3IEBAIFN0eWxlUnVsZUtleWZyYW1lcyogQ1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFt
ZXNSdWxlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0CiAgICAgcmV0dXJuIHJ1bGVQdHI7
CiB9CiAKLVN0eWxlUnVsZUJhc2UqIENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxP
d25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHNlbGVjdG9ycykKK1N0eWxlUnVsZUJhc2UqIENT
U1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKENTU1NlbGVjdG9yVmVjdG9yKiBzZWxlY3RvcnMpCiB7
CiAgICAgU3R5bGVSdWxlKiByZXN1bHQgPSAwOwogICAgIGlmIChzZWxlY3RvcnMpIHsKQEAgLTk2
OTksOCArOTcwMSw4IEBAIFN0eWxlUnVsZUJhc2UqIENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxl
KFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHNlCiBTdHlsZVJ1bGVCYXNlKiBD
U1NQYXJzZXI6OmNyZWF0ZUZvbnRGYWNlUnVsZSgpCiB7CiAgICAgbV9hbGxvd0ltcG9ydFJ1bGVz
ID0gbV9hbGxvd05hbWVzcGFjZURlY2xhcmF0aW9ucyA9IGZhbHNlOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
Q1NTUHJvcGVydHkmIHByb3BlcnR5ID0gbV9wYXJzZWRQcm9wZXJ0aWVzW2ldOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX3BhcnNlZFByb3BlcnRpZXMtPnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IG1fcGFyc2VkUHJvcGVydGllcy0+YXQoaSk7
CiAgICAgICAgIGlmIChwcm9wZXJ0eS5pZCgpID09IENTU1Byb3BlcnR5Rm9udFZhcmlhbnQgJiYg
cHJvcGVydHkudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgcHJvcGVy
dHkud3JhcFZhbHVlSW5Db21tYVNlcGFyYXRlZExpc3QoKTsKICAgICAgICAgZWxzZSBpZiAocHJv
cGVydHkuaWQoKSA9PSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHkgJiYgKCFwcm9wZXJ0eS52YWx1ZSgp
LT5pc1ZhbHVlTGlzdCgpIHx8IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHByb3BlcnR5LnZh
bHVlKCkpLT5sZW5ndGgoKSAhPSAxKSkgewpAQCAtOTc5MSw3ICs5NzkzLDcgQEAgU3R5bGVSdWxl
QmFzZSogQ1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZShQYXNzT3duUHRyPENTU1BhcnNlclNlbGVj
dG9yPiBwYWdlU2VsZWMKICAgICBTdHlsZVJ1bGVQYWdlKiBwYWdlUnVsZSA9IDA7CiAgICAgaWYg
KHBhZ2VTZWxlY3RvcikgewogICAgICAgICBSZWZQdHI8U3R5bGVSdWxlUGFnZT4gcnVsZSA9IFN0
eWxlUnVsZVBhZ2U6OmNyZWF0ZSgpOwotICAgICAgICBWZWN0b3I8T3duUHRyPENTU1BhcnNlclNl
bGVjdG9yPiA+IHNlbGVjdG9yVmVjdG9yOworICAgICAgICBDU1NTZWxlY3RvclZlY3RvciBzZWxl
Y3RvclZlY3RvcjsKICAgICAgICAgc2VsZWN0b3JWZWN0b3IuYXBwZW5kKHBhZ2VTZWxlY3Rvcik7
CiAgICAgICAgIHJ1bGUtPnBhcnNlckFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JWZWN0b3Ip
OwogICAgICAgICBydWxlLT5zZXRQcm9wZXJ0aWVzKGNyZWF0ZVN0eWxlUHJvcGVydHlTZXQoKSk7
CkBAIC05ODAzLDcgKzk4MDUsNyBAQCBTdHlsZVJ1bGVCYXNlKiBDU1NQYXJzZXI6OmNyZWF0ZVBh
Z2VSdWxlKFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHBhZ2VTZWxlYwogICAgIHJldHVy
biBwYWdlUnVsZTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnNldFJldXNhYmxlUmVnaW9uU2VsZWN0
b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiogc2VsZWN0b3JzKQor
dm9pZCBDU1NQYXJzZXI6OnNldFJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3IoQ1NTU2VsZWN0
b3JWZWN0b3IqIHNlbGVjdG9ycykKIHsKICAgICBpZiAoc2VsZWN0b3JzKQogICAgICAgICBtX3Jl
dXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3Iuc3dhcCgqc2VsZWN0b3JzKTsKQEAgLTk4MzksMjIg
Kzk4NDEsMjIgQEAgU3R5bGVSdWxlQmFzZSogQ1NTUGFyc2VyOjpjcmVhdGVNYXJnaW5BdFJ1bGUo
Q1NTU2VsZWN0b3I6Ok1hcmdpbkJveFR5cGUgLyogbWFyZ2kKIAogdm9pZCBDU1NQYXJzZXI6OnN0
YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKIHsKLSAgICBtX251bVBhcnNlZFByb3BlcnRp
ZXNCZWZvcmVNYXJnaW5Cb3ggPSBtX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpOworICAgIG1fbnVt
UGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCA9IG1fcGFyc2VkUHJvcGVydGllcy0+c2l6
ZSgpOwogfQogCiB2b2lkIENTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkK
IHsKLSAgICByb2xsYmFja0xhc3RQcm9wZXJ0aWVzKG1fcGFyc2VkUHJvcGVydGllcy5zaXplKCkg
LSBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3gpOworICAgIHJvbGxiYWNrTGFz
dFByb3BlcnRpZXMobV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXplKCkgLSBtX251bVBhcnNlZFByb3Bl
cnRpZXNCZWZvcmVNYXJnaW5Cb3gpOwogICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveCA9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOwogfQogCiB2b2lkIENTU1Bh
cnNlcjo6ZGVsZXRlRm9udEZhY2VPbmx5VmFsdWVzKCkKIHsKICAgICBBU1NFUlQobV9oYXNGb250
RmFjZU9ubHlWYWx1ZXMpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BhcnNlZFBy
b3BlcnRpZXMuc2l6ZSgpOykgewotICAgICAgICBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX3Bh
cnNlZFByb3BlcnRpZXNbaV07CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGFyc2Vk
UHJvcGVydGllcy0+c2l6ZSgpOykgeworICAgICAgICBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBt
X3BhcnNlZFByb3BlcnRpZXMtPmF0KGkpOwogICAgICAgICBpZiAocHJvcGVydHkuaWQoKSA9PSBD
U1NQcm9wZXJ0eUZvbnRWYXJpYW50ICYmIHByb3BlcnR5LnZhbHVlKCktPmlzVmFsdWVMaXN0KCkp
IHsKLSAgICAgICAgICAgIG1fcGFyc2VkUHJvcGVydGllcy5yZW1vdmUoaSk7CisgICAgICAgICAg
ICBtX3BhcnNlZFByb3BlcnRpZXMtPnJlbW92ZShpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAgICAgICAgICsraTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA4YWRiNmFm
NWU3ODZiODhhM2RjOGQ5MjlmNDA0ZjM0NTMzOTNiMGMzLi41YTFlZDk3Yjg5Nzc4ZDA0YmE5MzM2
ZWViZjA3NTE2MDU3NWVmYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC04Nyw3ICs4Nyw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0YW50LCBib29sIGltcGxpY2l0ID0gZmFsc2UpOwog
ICAgIHZvaWQgcm9sbGJhY2tMYXN0UHJvcGVydGllcyhpbnQgbnVtKTsKLSAgICBib29sIGhhc1By
b3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiAhbV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKTsg
fQorICAgIGJvb2wgaGFzUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuICFtX3BhcnNlZFByb3Bl
cnRpZXMtPmlzRW1wdHkoKTsgfQogCiAgICAgYm9vbCBwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQs
IGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQs
IGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmLCBib29sIGltcG9ydGFudCk7CkBAIC0yNTIs
OCArMjUyLDggQEAgcHVibGljOgogICAgIENTU1BhcnNlclNlbGVjdG9yKiBjcmVhdGVGbG9hdGlu
Z1NlbGVjdG9yKCk7CiAgICAgUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2lua0Zsb2F0
aW5nU2VsZWN0b3IoQ1NTUGFyc2VyU2VsZWN0b3IqKTsKIAotICAgIFZlY3RvcjxPd25QdHI8Q1NT
UGFyc2VyU2VsZWN0b3I+ID4qIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3JWZWN0b3IoKTsKLSAgICBQ
YXNzT3duUHRyPFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4gPiBzaW5rRmxvYXRp
bmdTZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+Kik7Cisg
ICAgQ1NTU2VsZWN0b3JWZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3JWZWN0b3IoKTsKKyAg
ICBQYXNzT3duUHRyPENTU1NlbGVjdG9yVmVjdG9yPiBzaW5rRmxvYXRpbmdTZWxlY3RvclZlY3Rv
cihDU1NTZWxlY3RvclZlY3RvciopOwogCiAgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBjcmVhdGVG
bG9hdGluZ1ZhbHVlTGlzdCgpOwogICAgIFBhc3NPd25QdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBz
aW5rRmxvYXRpbmdWYWx1ZUxpc3QoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CkBAIC0yNzEsMTAgKzI3
MSwxMCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
ID4gUnVsZUxpc3Q7CiAgICAgU3R5bGVSdWxlQmFzZSogY3JlYXRlTWVkaWFSdWxlKE1lZGlhUXVl
cnlTZXQqLCBSdWxlTGlzdCopOwogICAgIFJ1bGVMaXN0KiBjcmVhdGVSdWxlTGlzdCgpOwotICAg
IFN0eWxlUnVsZUJhc2UqIGNyZWF0ZVN0eWxlUnVsZShWZWN0b3I8T3duUHRyPENTU1BhcnNlclNl
bGVjdG9yPiA+KiBzZWxlY3RvcnMpOworICAgIFN0eWxlUnVsZUJhc2UqIGNyZWF0ZVN0eWxlUnVs
ZShDU1NTZWxlY3RvclZlY3Rvciogc2VsZWN0b3JzKTsKICAgICBTdHlsZVJ1bGVCYXNlKiBjcmVh
dGVGb250RmFjZVJ1bGUoKTsKICAgICBTdHlsZVJ1bGVCYXNlKiBjcmVhdGVQYWdlUnVsZShQYXNz
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBwYWdlU2VsZWN0b3IpOwotICAgIFN0eWxlUnVsZUJh
c2UqIGNyZWF0ZVJlZ2lvblJ1bGUoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiog
cmVnaW9uU2VsZWN0b3IsIFJ1bGVMaXN0KiBydWxlcyk7CisgICAgU3R5bGVSdWxlQmFzZSogY3Jl
YXRlUmVnaW9uUnVsZShDU1NTZWxlY3RvclZlY3RvciogcmVnaW9uU2VsZWN0b3IsIFJ1bGVMaXN0
KiBydWxlcyk7CiAgICAgU3R5bGVSdWxlQmFzZSogY3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVj
dG9yOjpNYXJnaW5Cb3hUeXBlKTsKICAgICB2b2lkIHN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2lu
Qm94KCk7CiAgICAgdm9pZCBlbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKQEAgLTI5Nywx
MCArMjk3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZEJsb2NrSGl0KCk7CiAKLSAg
ICBWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiByZXVzYWJsZVNlbGVjdG9yVmVj
dG9yKCkgeyByZXR1cm4gJm1fcmV1c2FibGVTZWxlY3RvclZlY3RvcjsgfQorICAgIENTU1NlbGVj
dG9yVmVjdG9yKiBzZWxlY3RvclZlY3RvcigpIHsgcmV0dXJuIG1fc2VsZWN0b3JWZWN0b3IuZ2V0
KCk7IH0KIAotICAgIHZvaWQgc2V0UmV1c2FibGVSZWdpb25TZWxlY3RvclZlY3RvcihWZWN0b3I8
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiBzZWxlY3RvcnMpOwotICAgIFZlY3RvcjxPd25Q
dHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3IoKSB7
IHJldHVybiAmbV9yZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yOyB9CisgICAgdm9pZCBzZXRS
ZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yKENTU1NlbGVjdG9yVmVjdG9yKiBzZWxlY3RvcnMp
OworICAgIENTU1NlbGVjdG9yVmVjdG9yKiByZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yKCkg
eyByZXR1cm4gJm1fcmV1c2FibGVSZWdpb25TZWxlY3RvclZlY3RvcjsgfQogCiAgICAgdm9pZCB1
cGRhdGVMYXN0U2VsZWN0b3JMaW5lQW5kUG9zaXRpb24oKTsKICAgICB2b2lkIHVwZGF0ZUxhc3RN
ZWRpYUxpbmUoTWVkaWFRdWVyeVNldCopOwpAQCAtMzE4LDggKzMxOCw5IEBAIHB1YmxpYzoKICAg
ICBSZWZQdHI8U3R5bGVLZXlmcmFtZT4gbV9rZXlmcmFtZTsKICAgICBPd25QdHI8TWVkaWFRdWVy
eT4gbV9tZWRpYVF1ZXJ5OwogICAgIE93blB0cjxDU1NQYXJzZXJWYWx1ZUxpc3Q+IG1fdmFsdWVM
aXN0OworCiAgICAgdHlwZWRlZiBWZWN0b3I8Q1NTUHJvcGVydHksIDI1Nj4gUGFyc2VkUHJvcGVy
dHlWZWN0b3I7Ci0gICAgUGFyc2VkUHJvcGVydHlWZWN0b3IgbV9wYXJzZWRQcm9wZXJ0aWVzOwor
ICAgIE93blB0cjxQYXJzZWRQcm9wZXJ0eVZlY3Rvcj4gbV9wYXJzZWRQcm9wZXJ0aWVzOwogICAg
IENTU1NlbGVjdG9yTGlzdCogbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVjdG9yOwogCiAgICAg
dW5zaWduZWQgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94OwpAQCAtNDQxLDcg
KzQ0Miw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiA+IG1f
cGFyc2VkTWVkaWFRdWVyeVNldHM7CiAgICAgVmVjdG9yPE93blB0cjxSdWxlTGlzdD4gPiBtX3Bh
cnNlZFJ1bGVMaXN0czsKICAgICBIYXNoU2V0PENTU1BhcnNlclNlbGVjdG9yKj4gbV9mbG9hdGlu
Z1NlbGVjdG9yczsKLSAgICBIYXNoU2V0PFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
ID4qPiBtX2Zsb2F0aW5nU2VsZWN0b3JWZWN0b3JzOworICAgIEhhc2hTZXQ8Q1NTU2VsZWN0b3JW
ZWN0b3IqPiBtX2Zsb2F0aW5nU2VsZWN0b3JWZWN0b3JzOwogICAgIEhhc2hTZXQ8Q1NTUGFyc2Vy
VmFsdWVMaXN0Kj4gbV9mbG9hdGluZ1ZhbHVlTGlzdHM7CiAgICAgSGFzaFNldDxDU1NQYXJzZXJG
dW5jdGlvbio+IG1fZmxvYXRpbmdGdW5jdGlvbnM7CiAKQEAgLTQ1MSw4ICs0NTIsOCBAQCBwcml2
YXRlOgogCiAgICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiA+IG1fZmxv
YXRpbmdLZXlmcmFtZVZlY3RvcjsKIAotICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+ID4gbV9yZXVzYWJsZVNlbGVjdG9yVmVjdG9yOwotICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+ID4gbV9yZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yOworICAgIE93blB0
cjxDU1NTZWxlY3RvclZlY3Rvcj4gbV9zZWxlY3RvclZlY3RvcjsKKyAgICBDU1NTZWxlY3RvclZl
Y3RvciBtX3JldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3I7CiAKICAgICBSZWZQdHI8Q1NTQ2Fs
Y1ZhbHVlPiBtX3BhcnNlZENhbGN1bGF0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJW
YWx1ZXMuY3BwCmluZGV4IDM3YTBkNDUyYzY1YzQ1NWU1YzQxMDRlNTRlNDc4OTJmYjIxNTVlMDQu
LjFhYjRkZmVmZGY2NjcyZDdjMGFkYzg0NTQ2YjM4ODcwMWJlYzc4MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgQ1NTUGFyc2VyU2Vs
ZWN0b3I6On5DU1NQYXJzZXJTZWxlY3RvcigpCiAgICAgfQogfQogCi12b2lkIENTU1BhcnNlclNl
bGVjdG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+ID4mIHNlbGVjdG9yVmVjdG9yKQordm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxl
Y3RvclZlY3RvcihDU1NTZWxlY3RvclZlY3RvciYgc2VsZWN0b3JWZWN0b3IpCiB7CiAgICAgQ1NT
U2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QgPSBmYXN0TmV3PENTU1NlbGVjdG9yTGlzdD4oKTsK
ICAgICBzZWxlY3Rvckxpc3QtPmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JWZWN0b3IpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IGMzMmE1N2RkNjg3OTk4ZGVkNmMy
NDAxZjQ0ZGQzMzE5NGEyYzI5NTQuLmE3MzZhYmI4OWY5MmRhMzdhZTg2YjM0ODkxNzVmMWQ4MDcx
NWYxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTEwNCw2ICsxMDQs
MTAgQEAgcHVibGljOgogICAgIE93blB0cjxDU1NQYXJzZXJWYWx1ZUxpc3Q+IGFyZ3M7CiB9Owog
CitjbGFzcyBDU1NQYXJzZXJTZWxlY3RvcjsKKwordHlwZWRlZiBWZWN0b3I8T3duUHRyPENTU1Bh
cnNlclNlbGVjdG9yPiA+IENTU1NlbGVjdG9yVmVjdG9yOworCiBjbGFzcyBDU1NQYXJzZXJTZWxl
Y3RvciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMjAsNyAr
MTI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVsYXRpb24oQ1NTU2VsZWN0b3I6OlJlbGF0
aW9uIHZhbHVlKSB7IG1fc2VsZWN0b3ItPm1fcmVsYXRpb24gPSB2YWx1ZTsgfQogICAgIHZvaWQg
c2V0Rm9yUGFnZSgpIHsgbV9zZWxlY3Rvci0+c2V0Rm9yUGFnZSgpOyB9CiAKLSAgICB2b2lkIGFk
b3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiYgc2Vs
ZWN0b3JWZWN0b3IpOworICAgIHZvaWQgYWRvcHRTZWxlY3RvclZlY3RvcihDU1NTZWxlY3RvclZl
Y3RvciYpOwogCiAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0b3ItPnBzZXVkb1R5cGUoKTsgfQogICAgIGJvb2wgaXNVbmtub3du
UHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPmlzVW5rbm93blBzZXVk
b0VsZW1lbnQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAppbmRleCBm
ODMyM2UwMDE4MjQ0ZGFlYzEzYzQxYjVhOTdhYjVjNTYxOWVmZjMzLi4zY2YwMjBhNzIwYTc3MTRm
YzM2YmQ4M2U2OTdhZGE5YTUyOGFjMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JM
aXN0LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHQoQ1NT
U2VsZWN0b3JMaXN0JiBsaXN0KQogICAgIGxpc3QubV9zZWxlY3RvckFycmF5ID0gMDsKIH0KIAot
dm9pZCBDU1NTZWxlY3Rvckxpc3Q6OmFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4gPiYgc2VsZWN0b3JWZWN0b3IpCit2b2lkIENTU1NlbGVjdG9yTGlz
dDo6YWRvcHRTZWxlY3RvclZlY3RvcihDU1NTZWxlY3RvclZlY3RvciYgc2VsZWN0b3JWZWN0b3Ip
CiB7CiAgICAgZGVsZXRlU2VsZWN0b3JzKCk7CiAgICAgY29uc3Qgc2l6ZV90IHZlY3RvclNpemUg
PSBzZWxlY3RvclZlY3Rvci5zaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3JMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmgK
aW5kZXggODk4NjBlZTA5MDkwZDZhMTlhMmNiOGMyZTdiNDRiODIwNTM3ZTgwZS4uZDcwNDU0Yjdj
YTVhYzNjNTkyODYzZjhkMGE1YzRhYzJhZDIyOWEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvckxpc3QuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBDU1NTZWxlY3Rvckxpc3RfaAog
I2RlZmluZSBDU1NTZWxlY3Rvckxpc3RfaAogCisjaW5jbHVkZSAiQ1NTUGFyc2VyVmFsdWVzLmgi
CiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIs
NyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfkNTU1NlbGVjdG9yTGlzdCgpOwogCiAgICAgdm9pZCBh
ZG9wdChDU1NTZWxlY3Rvckxpc3QmIGxpc3QpOwotICAgIHZvaWQgYWRvcHRTZWxlY3RvclZlY3Rv
cihWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvclZlY3Rvcik7Cisg
ICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKENTU1NlbGVjdG9yVmVjdG9yJik7CiAKICAgICBD
U1NTZWxlY3RvciogZmlyc3QoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yQXJyYXkgPyBtX3Nl
bGVjdG9yQXJyYXkgOiAwOyB9CiAgICAgc3RhdGljIENTU1NlbGVjdG9yKiBuZXh0KENTU1NlbGVj
dG9yKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCmluZGV4IGQwNmJiMjAzYmE3NjUz
NjNkZTUwZmVmMDc4MDMwYzFhYzY5NmE4YmIuLmM3ZWM2ZDlmOTQxNDMxOTFmYTZjMWFlMjQ1ZDhm
ZDY2YmFlNjM4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCkBAIC0yODEsNyAr
MjgxLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgcm9sbGJhY2tMYXN0UHJvcGVydGllcygx
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBDU1NWYWx1
ZSogdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMubGFzdCgpLnZhbHVlKCk7CisgICAgICAgIENT
U1ZhbHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllcy0+bGFzdCgpLnZhbHVlKCk7CiAgICAg
ICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5TWFya2VyTWlkLCB2YWx1ZSwgaW1wb3J0YW50KTsK
ICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlNYXJrZXJFbmQsIHZhbHVlLCBpbXBvcnRh
bnQpOwogICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGUuY3BwCmluZGV4IDM1ODcxOTQyMDBhOWY3OTU3M2I3ZWE4NGIwNTE2NWVlODA4YjQ5NTYu
LjAzZWZjM2EzNGU1MTdlZWI4Yjg0NTNkZjhmYjI2MmZjMDQwOGE0NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuY3BwCkBAIC0zNTksNyArMzU5LDcgQEAgdm9pZCBTdHlsZVJ1bGVNZWRpYTo6cmVw
b3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEkK
ICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX21lZGlhUXVlcmllcyk7CiB9CiAKLVN0
eWxlUnVsZVJlZ2lvbjo6U3R5bGVSdWxlUmVnaW9uKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+ID4qIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBhZG9w
dFJ1bGVzKQorU3R5bGVSdWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24oQ1NTU2VsZWN0b3JWZWN0
b3IqIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBhZG9wdFJ1bGVz
KQogICAgIDogU3R5bGVSdWxlQmxvY2soUmVnaW9uLCBhZG9wdFJ1bGVzKQogewogICAgIG1fc2Vs
ZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3IoKnNlbGVjdG9ycyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlLmgKaW5kZXggNzdiZDJkYzYzZTU3OWExNmZhNjg0M2Q3ZTA1ZTljZDc5OGI2MTk3Yy4uN2I2
MDI1MDQyYTE5OGVjNmVkNjZkNDhiMWEyN2EzZDk5MmQwMDk0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHlsZVByb3BlcnR5
U2V0KiBwcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgpOyB9CiAg
ICAgU3R5bGVQcm9wZXJ0eVNldCogbXV0YWJsZVByb3BlcnRpZXMoKTsKICAgICAKLSAgICB2b2lk
IHBhcnNlckFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4gPiYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2Vs
ZWN0b3JzKTsgfQorICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihDU1NTZWxlY3Rv
clZlY3RvciYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Io
c2VsZWN0b3JzKTsgfQogICAgIHZvaWQgd3JhcHBlckFkb3B0U2VsZWN0b3JMaXN0KENTU1NlbGVj
dG9yTGlzdCYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0KHNlbGVjdG9ycyk7IH0K
ICAgICB2b2lkIHNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0Pik7CiAK
QEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCog
cHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsgfQogICAgIFN0
eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9wZXJ0aWVzKCk7CiAKLSAgICB2b2lkIHBhcnNlckFk
b3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiYgc2Vs
ZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JzKTsg
fQorICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihDU1NTZWxlY3RvclZlY3RvciYg
c2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3Jz
KTsgfQogICAgIHZvaWQgd3JhcHBlckFkb3B0U2VsZWN0b3JMaXN0KENTU1NlbGVjdG9yTGlzdCYg
c2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0KHNlbGVjdG9ycyk7IH0KICAgICB2b2lk
IHNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0Pik7CiAKQEAgLTIwNCw3
ICsyMDQsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTdHlsZVJ1bGVSZWdpb24gOiBwdWJsaWMgU3R5
bGVSdWxlQmxvY2sgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUnVsZVJl
Z2lvbj4gY3JlYXRlKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHNlbGVjdG9y
cywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBhZG9wdFJ1bGVzKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0eWxlUnVsZVJlZ2lvbj4gY3JlYXRlKENTU1NlbGVjdG9yVmVjdG9yKiBz
ZWxlY3RvcnMsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVSdWxlUmVnaW9uKHNlbGVjdG9y
cywgYWRvcHRSdWxlcykpOwogICAgIH0KQEAgLTIxNiw3ICsyMTYsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIFN0eWxlUnVsZVJlZ2lvbihWZWN0b3I8T3duUHRyPENTU1BhcnNl
clNlbGVjdG9yPiA+KiwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBhZG9wdFJ1bGVz
KTsKKyAgICBTdHlsZVJ1bGVSZWdpb24oQ1NTU2VsZWN0b3JWZWN0b3IqLCBWZWN0b3I8UmVmUHRy
PFN0eWxlUnVsZUJhc2U+ID4mIGFkb3B0UnVsZXMpOwogICAgIFN0eWxlUnVsZVJlZ2lvbihjb25z
dCBTdHlsZVJ1bGVSZWdpb24mKTsKICAgICAKICAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rv
ckxpc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>