<?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>88597</bug_id>
          
          <creation_ts>2012-06-07 17:29:48 -0700</creation_ts>
          <short_desc>[chromium] Port Canvas2DLayerBridge over to WebExternalTextureLayer</short_desc>
          <delta_ts>2012-06-12 17:10:25 -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>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>
          <dependson>86273</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>644114</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-07 17:29:48 -0700</bug_when>
    <thetext>[chromium] Port Canvas2DLayerBridge over to WebExternalTextureLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644121</commentid>
    <comment_count>1</comment_count>
      <attachid>146429</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-07 17:33:49 -0700</bug_when>
    <thetext>Created attachment 146429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646512</commentid>
    <comment_count>2</comment_count>
      <attachid>146984</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-11 18:13:45 -0700</bug_when>
    <thetext>Created attachment 146984
rebased and fleshed out ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646516</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-11 18:15:59 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647162</commentid>
    <comment_count>4</comment_count>
      <attachid>146984</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-06-12 12:04:38 -0700</bug_when>
    <thetext>Comment on attachment 146984
rebased and fleshed out ChangeLogs

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

&gt; Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp:91
&gt;          MockTextureCopier copierMock;

Unused now?

&gt; Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp:-117
&gt; -            EXPECT_CALL(implMock, flush());

Why remove the implMock expectations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647188</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-12 12:42:03 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 146984 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146984&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp:91
&gt; &gt;          MockTextureCopier copierMock;
&gt; 
&gt; Unused now?

Indeed - will remove

&gt; 
&gt; &gt; Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp:-117
&gt; &gt; -            EXPECT_CALL(implMock, flush());
&gt; 
&gt; Why remove the implMock expectations?

The flush this mock was checking for was coming from the updater&apos;s implementation.  The test no longer verifies the updater&apos;s implementation, it mocks the updater itself and verifies that we make the appropriate call (there is (hopefully) sufficient test coverage that the updater DTRT elsewhere).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647201</commentid>
    <comment_count>6</comment_count>
      <attachid>146984</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-06-12 12:58:20 -0700</bug_when>
    <thetext>Comment on attachment 146984
rebased and fleshed out ChangeLogs

(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 146984 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146984&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp:-117
&gt; &gt; &gt; -            EXPECT_CALL(implMock, flush());
&gt; &gt; 
&gt; &gt; Why remove the implMock expectations?
&gt; 
&gt; The flush this mock was checking for was coming from the updater&apos;s implementation.  The test no longer verifies the updater&apos;s implementation, it mocks the updater itself and verifies that we make the appropriate call (there is (hopefully) sufficient test coverage that the updater DTRT elsewhere).

Ohhhh, quite right.  R=me, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647298</commentid>
    <comment_count>7</comment_count>
      <attachid>147157</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-12 14:07:08 -0700</bug_when>
    <thetext>Created attachment 147157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647303</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-12 14:09:01 -0700</bug_when>
    <thetext>Removed the unused MockTextureCopier and ported the fix of http://trac.webkit.org/changeset/120117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647310</commentid>
    <comment_count>9</comment_count>
      <attachid>147157</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-06-12 14:12:26 -0700</bug_when>
    <thetext>Comment on attachment 147157
Patch

R=me.  Sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647501</commentid>
    <comment_count>10</comment_count>
      <attachid>147157</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 17:10:21 -0700</bug_when>
    <thetext>Comment on attachment 147157
Patch

Clearing flags on attachment: 147157

Committed r120142: &lt;http://trac.webkit.org/changeset/120142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647502</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 17:10:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146429</attachid>
            <date>2012-06-07 17:33:49 -0700</date>
            <delta_ts>2012-06-11 18:13:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88597-20120607173348.patch</filename>
            <type>text/plain</type>
            <size>13358</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhODRlZjk1MTVmNWU5
ZTU1NzBjMzFjOTNhNDhjOTlhNmY1ZGJkMGY3Li5hYWE1MWMzYTY2YzUyYmVlMzBkYzM4NjI4NGUz
MjRlZGYxNmQ4MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNi0wNyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gUG9ydCBDYW52YXMyRExheWVyQnJpZGdlIG92ZXIgdG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTk3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyKToKKyAgICAg
ICAgKFdlYkV4dGVybmFsVGV4dHVyZUxheWVyKToKKwogMjAxMi0wNS0xMSAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBEcmF3
aW5nQnVmZmVyQ2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdlYkV4
dGVybmFsVGV4dHVyZUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFlOGMxZDk0ZDU3MGRkMTI0MDI1ZDYz
YWExNTE4YjA1NDcwMjZmNy4uNDYxM2NmZTYwMTVlZmE2MjA2OTJiMDVlOWQxNTNjZjhmOTg1ZWNk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTA3ICBKYW1lcyBSb2JpbnNv
biAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBQb3J0IENhbnZh
czJETGF5ZXJCcmlkZ2Ugb3ZlciB0byBXZWJFeHRlcm5hbFRleHR1cmVMYXllcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BT
ISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJC
cmlkZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0OjpB
Y2NlbGVyYXRlZERldmljZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWRE
ZXZpY2VDb250ZXh0OjpwcmVwYXJlRm9yRHJhdyk6CisgICAgICAgIChBY2NlbGVyYXRlZERldmlj
ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFz
MkRMYXllckJyaWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjp+
Q2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJp
ZGdlOjpza0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpw
cmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpj
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OmNvbnRleHRBY3F1aXJlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYW52YXMyRExheWVyQnJpZGdlKToK
KwogMjAxMi0wNS0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gUG9ydCBEcmF3aW5nQnVmZmVyQ2hyb21pdW0gZnJvbSBUZXh0dXJl
TGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDU3ZTE3NTA0NTNiZDY5MTEyMGIxNmFhMDBlZTFkYzEwOWIwYzI5
ZGIuLmM4MDM1ZGEyOTNkZDI1MTBkMzM2YmQwNDU3MjM5ZmQ4YTYwZmQ5ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMDcgIEphbWVzIFJvYmlu
c29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFBvcnQgQ2Fu
dmFzMkRMYXllckJyaWRnZSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODU5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkV4dGVybmFs
VGV4dHVyZUxheWVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXI6OndpbGxNb2RpZnlUZXh0dXJlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpzZXRSYXRlTGltaXRDb250ZXh0KToKKyAgICAg
ICAgKiB0ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgIChDYW52YXMy
RExheWVyQnJpZGdlVGVzdDo6ZnVsbExpZmVjeWNsZVRlc3QpOgorCiAyMDEyLTA1LTExICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQ
b3J0IERyYXdpbmdCdWZmZXJDaHJvbWl1bSBmcm9tIFRleHR1cmVMYXllckNocm9taXVtIG92ZXIg
dG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaCBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaAppbmRleCA4MDhkNThl
MzE4YjhhZDdiZTQyZjNlZjc4NDk2ZThiNzA2NDM3NjkxLi5iMTljMDVmM2UzYjA5OGQ4ZWIwM2Vl
NTYxMjc5NjQ2YjkwODFmNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCkBAIC03Niw2ICs3NiwxMyBA
QCBwdWJsaWM6CiAgICAgLy8gU2V0cyB3aGV0aGVyIHRoaXMgbGF5ZXIncyB0ZXh0dXJlIGhhcyBw
cmVtdWx0aXBsaWVkIGFscGhhIG9yIG5vdC4gRGVmYXVsdHMgdG8gdHJ1ZS4KICAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgc2V0UHJlbXVsdGlwbGllZEFscGhhKGJvb2wpOwogCisgICAgLy8gSW5kaWNh
dGVzIHRoYXQgdGhlIG1vc3QgcmVjZW50bHkgcHJvdmlkZWQgdGV4dHVyZSBJRCBpcyBhYm91dCB0
byBiZSBtb2RpZmllZCBleHRlcm5hbGx5LgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCB3aWxsTW9k
aWZ5VGV4dHVyZSgpOworCisgICAgLy8gU2V0cyB3aGV0aGVyIHRoaXMgY29udGV4dCBzaG91bGQg
YmUgcmF0ZSBsaW1pdGVkIGJ5IHRoZSBjb21wb3NpdG9yLiBSYXRlIGxpbWl0aW5nIHdvcmtzIGJ5
IGJsb2NraW5nCisgICAgLy8gaW52YWxpZGF0ZSgpIGFuZCBpbnZhbGlkYXRlUmVjdCgpIGNhbGxz
IGlmIHRoZSBjb21wb3NpdG9yIGlzIHRvbyBtYW55IGZyYW1lcyBiZWhpbmQuCisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHNldFJhdGVMaW1pdENvbnRleHQoYm9vbCk7CisKIHByaXZhdGU6CiAjaWYg
V0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgZXhwbGljaXQgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXIoUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTGF5ZXJDaHJvbWl1bT4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckJyaWRnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
YW52YXMyRExheWVyQnJpZGdlLmNwcAppbmRleCA1NjVhNDQ1NTc3OTc5YTE2OTgzOTFkMDFmZDI0
ZDQxM2Y5MmJmMTY2Li4wODMwNjMyOTZkMmFhM2Y1MzkzZjNiNDAwNGMwY2I5MWM5NGQ4ZTc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52
YXMyRExheWVyQnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcApAQCAtMjksMzcgKzI5LDQyIEBACiAK
ICNpbmNsdWRlICJHckNvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxheWVyUmVu
ZGVyZXJDaHJvbWl1bS5oIiAvLyBGb3IgR0xDKCkgbWFjcm8uCiAjaW5jbHVkZSAiU2tDYW52YXMu
aCIKICNpbmNsdWRlICJTa0RlZmVycmVkQ2FudmFzLmgiCi0jaW5jbHVkZSAiVGV4dHVyZUxheWVy
Q2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCiAjaW5jbHVkZSAiY2MvQ0NUZXh0
dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgor
Cit1c2luZyBXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyOwordXNpbmcgV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRDsKK3VzaW5nIFdlYktpdDo6V2ViVGV4dHVyZVVwZGF0ZXI7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0IDog
cHVibGljIFNrRGVmZXJyZWRDYW52YXM6OkRldmljZUNvbnRleHQgewogcHVibGljOgotICAgIEFj
Y2VsZXJhdGVkRGV2aWNlQ29udGV4dChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgVGV4dHVy
ZUxheWVyQ2hyb21pdW0qIGxheWVyLCBib29sIHVzZURvdWJsZUJ1ZmZlcmluZykKKyAgICBBY2Nl
bGVyYXRlZERldmljZUNvbnRleHQoV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFdlYkV4
dGVybmFsVGV4dHVyZUxheWVyIGxheWVyLCBib29sIHVzZURvdWJsZUJ1ZmZlcmluZykKICAgICAg
ICAgOiBtX2xheWVyKGxheWVyKQogICAgICAgICAsIG1fY29udGV4dCgpCiAgICAgICAgICwgbV91
c2VEb3VibGVCdWZmZXJpbmcodXNlRG91YmxlQnVmZmVyaW5nKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGNvbnRleHQpOwotICAgICAgICBBU1NFUlQobGF5ZXIpOworICAgICAgICBBU1NFUlQoIWxh
eWVyLmlzTnVsbCgpKTsKICAgICAgICAgbV9jb250ZXh0ID0gY29udGV4dDsKICAgICB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRyYXcoKQogICAgIHsKICAgICAgICAgaWYgKCFtX3Vz
ZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAgICAgIG1fbGF5ZXItPndpbGxNb2RpZnlUZXh0dXJl
KCk7CisgICAgICAgICAgICBtX2xheWVyLndpbGxNb2RpZnlUZXh0dXJlKCk7CiAgICAgICAgIG1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFRl
eHR1cmVMYXllckNocm9taXVtKiBtX2xheWVyOwotICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2Nv
bnRleHQ7CisgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgbV9sYXllcjsKKyAgICBXZWJHcmFw
aGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIGJvb2wgbV91c2VEb3VibGVCdWZmZXJpbmc7
CiB9OwogCkBAIC05MSwxNSArOTYsMTUgQEAgQ2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRM
YXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LAogICAgICAg
ICAgICAgZ3JDb250ZXh0LT5yZXNldENvbnRleHQoKTsKICAgICB9CiAKLSAgICBtX2xheWVyID0g
VGV4dHVyZUxheWVyQ2hyb21pdW06OmNyZWF0ZSh0aGlzKTsKLSAgICBtX2xheWVyLT5zZXRUZXh0
dXJlSWQodGV4dHVyZUlkKTsKLSAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRDb250ZXh0KCFDQ1By
b3h5OjpoYXNJbXBsVGhyZWFkKCkgfHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOworICAgIG1fbGF5
ZXIgPSBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6Y3JlYXRlKHRoaXMpOworICAgIG1fbGF5ZXIu
c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7CisgICAgbV9sYXllci5zZXRSYXRlTGltaXRDb250ZXh0
KCFDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgfHwgbV91c2VEb3VibGVCdWZmZXJpbmcpOwogfQog
CiAKIENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJpZGdlKCkKIHsKLSAgICBt
X2xheWVyLT5zZXRUZXh0dXJlSWQoMCk7CisgICAgbV9sYXllci5zZXRUZXh0dXJlSWQoMCk7CiAg
ICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5nKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCk7CiAgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+
ZGVsZXRlVGV4dHVyZShtX2Zyb250QnVmZmVyVGV4dHVyZSkpOwpAQCAtMTEwLDcgKzExNSw3IEBA
IENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJpZGdlKCkKIFNrQ2FudmFzKiBD
YW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0RldmljZSogZGV2aWNlKQogewogICAgIGlm
IChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAgICBTa0F1dG9UVW5yZWY8QWNj
ZWxlcmF0ZWREZXZpY2VDb250ZXh0PiBkZXZpY2VDb250ZXh0KG5ldyBBY2NlbGVyYXRlZERldmlj
ZUNvbnRleHQobV9jb250ZXh0LmdldCgpLCBtX2xheWVyLmdldCgpLCBtX3VzZURvdWJsZUJ1ZmZl
cmluZykpOworICAgICAgICBTa0F1dG9UVW5yZWY8QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0PiBk
ZXZpY2VDb250ZXh0KG5ldyBBY2NlbGVyYXRlZERldmljZUNvbnRleHQoY29udGV4dCgpLCBtX2xh
eWVyLCBtX3VzZURvdWJsZUJ1ZmZlcmluZykpOwogICAgICAgICBtX2NhbnZhcyA9IG5ldyBTa0Rl
ZmVycmVkQ2FudmFzKGRldmljZSwgZGV2aWNlQ29udGV4dC5nZXQoKSk7CiAgICAgfSBlbHNlCiAg
ICAgICAgIG1fY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZSk7CkBAIC0xMTksNyArMTI0LDcg
QEAgU2tDYW52YXMqIENhbnZhczJETGF5ZXJCcmlkZ2U6OnNrQ2FudmFzKFNrRGV2aWNlKiBkZXZp
Y2UpCiB9CiAKIAotdW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUo
Q0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKK3Vuc2lnbmVkIENhbnZhczJETGF5ZXJCcmlkZ2U6
OnByZXBhcmVUZXh0dXJlKFdlYlRleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQogewogICAgIG1fY29u
dGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKQEAgLTEzOCwyMCArMTQzLDIwIEBAIHVuc2ln
bmVkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVUZXh0dXJlKENDVGV4dHVyZVVwZGF0ZXIm
IHVwZGF0ZXIpCiAgICAgcmV0dXJuIG1fYmFja0J1ZmZlclRleHR1cmU7CiB9CiAKLUdyYXBoaWNz
Q29udGV4dDNEKiBDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0KCkKK1dlYkdyYXBoaWNzQ29u
dGV4dDNEKiBDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0KCkKIHsKLSAgICByZXR1cm4gbV9j
b250ZXh0LmdldCgpOworICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJh
Y3RXZWJHcmFwaGljc0NvbnRleHQzRChtX2NvbnRleHQuZ2V0KCkpOwogfQogCiBMYXllckNocm9t
aXVtKiBDYW52YXMyRExheWVyQnJpZGdlOjpsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
bGF5ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fbGF5ZXIudW53cmFwPExheWVyQ2hyb21pdW0+KCk7
CiB9CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKCkKIHsKICAg
ICBpZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVy
aW5nKQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOworICAgICAgICBtX2xh
eWVyLndpbGxNb2RpZnlUZXh0dXJlKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlk
Z2UuaAppbmRleCA5YmE1OTMxZTQyOTVkMzkwMWQ5YmUwOGQ3NjE1NGI2ZDQ1MjVhMDdmLi5kYzk5
YjQ3ZGE1YTA3ZjZkNjJmMjYxNTdhYWIyODRhYTQyMmJlMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRM
YXllckJyaWRnZS5oCkBAIC0yOCw3ICsyOCw4IEBACiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5o
IiAvLyBGb3IgRGVmZXJyYWxNb2RlIGVudW0uCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1
ZGUgIlRleHR1cmVMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFs
VGV4dHVyZUxheWVyLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKQEAgLTM4LDkgKzM5LDggQEAgY2xhc3MgU2tEZXZpY2U7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIExheWVyQ2hyb21pdW07Ci1jbGFzcyBUZXh0dXJlTGF5ZXJDaHJvbWl1
bTsKIAotY2xhc3MgQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBUZXh0dXJlTGF5ZXJDaHJv
bWl1bUNsaWVudCB7CitjbGFzcyBDYW52YXMyRExheWVyQnJpZGdlIDogcHVibGljIFdlYktpdDo6
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENhbnZhczJETGF5ZXJCcmlkZ2UpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENh
bnZhczJETGF5ZXJCcmlkZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlLCB1
bnNpZ25lZCB0ZXh0dXJlSWQpCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKIAotICAgIC8vIFRleHR1cmVMYXllckNocm9taXVt
Q2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdW5zaWduZWQgcHJlcGFyZVRleHR1
cmUoQ0NUZXh0dXJlVXBkYXRlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQoKSBPVkVSUklERTsKKyAgICAvLyBXZWJLaXQ6OldlYkV4dGVybmFsVGV4
dHVyZUxheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgdW5zaWduZWQgcHJl
cGFyZVRleHR1cmUoV2ViS2l0OjpXZWJUZXh0dXJlVXBkYXRlciYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCgpIE9WRVJSSURFOwog
CiAgICAgU2tDYW52YXMqIHNrQ2FudmFzKFNrRGV2aWNlKik7CiAgICAgTGF5ZXJDaHJvbWl1bSog
bGF5ZXIoKSBjb25zdDsKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNpemUgbV9zaXplOwogICAgIFNrQ2FudmFzKiBt
X2NhbnZhczsKLSAgICBSZWZQdHI8VGV4dHVyZUxheWVyQ2hyb21pdW0+IG1fbGF5ZXI7CisgICAg
V2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllciBtX2xheWVyOwogICAgIFJlZlB0cjxHcmFw
aGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCmluZGV4IGU0MThhOWZh
MTFjZDZjNjU4NjE2M2Q5ZmFjMGNlNDkxZGZlZmYyMTQuLmQ5Y2VhM2JiMTZiNGQ4YjU3ZTI1ZDk0
YjFkM2ZiNDRjY2UxNDlhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAKQEAgLTExMiw2ICsxMTIsMTYgQEAgdm9p
ZCBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6c2V0UHJlbXVsdGlwbGllZEFscGhhKGJvb2wgcHJl
bXVsdGlwbGllZEFscGhhKQogICAgIHVud3JhcDxUZXh0dXJlTGF5ZXJDaHJvbWl1bT4oKS0+c2V0
UHJlbXVsdGlwbGllZEFscGhhKHByZW11bHRpcGxpZWRBbHBoYSk7CiB9CiAKK3ZvaWQgV2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXI6OndpbGxNb2RpZnlUZXh0dXJlKCkKK3sKKyAgICB1bndyYXA8VGV4
dHVyZUxheWVyQ2hyb21pdW0+KCktPndpbGxNb2RpZnlUZXh0dXJlKCk7Cit9CisKK3ZvaWQgV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnNldFJhdGVMaW1pdENvbnRleHQoYm9vbCByYXRlTGltaXQp
Cit7CisgICAgdW53cmFwPFRleHR1cmVMYXllckNocm9taXVtPigpLT5zZXRSYXRlTGltaXRDb250
ZXh0KHJhdGVMaW1pdCk7Cit9CisKIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpXZWJFeHRlcm5h
bFRleHR1cmVMYXllcihQYXNzUmVmUHRyPFRleHR1cmVMYXllckNocm9taXVtPiBsYXllcikKICAg
ICA6IFdlYkxheWVyKGxheWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCAwZTFlZjIwYmM2ODBl
ZTI2ZDVjMWZlOGY3MjdiMjM2NjEwNTQ3YTQ5Li4xNjA0NmU2NTQ3OGNiN2FiYzZkYjRkYTA1ZjMz
ZmViZmY2N2JkMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJjYy9D
Q0dyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJUaHJlYWQuaCIKIApAQCAtNjQsNiArNjMsMTEgQEAgcHVibGljOgogICAgIE1PQ0tf
TUVUSE9ENChjb3B5VGV4dHVyZSwgdm9pZChDQ0dyYXBoaWNzQ29udGV4dCosIHVuc2lnbmVkLCB1
bnNpZ25lZCwgY29uc3QgSW50U2l6ZSYpKTsKIH07CiAKK2NsYXNzIE1vY2tXZWJUZXh0dXJlVXBk
YXRlciA6IHB1YmxpYyBXZWJUZXh0dXJlVXBkYXRlciB7CitwdWJsaWM6CisgICAgTU9DS19NRVRI
T0QzKGFwcGVuZENvcHksIHZvaWQodW5zaWduZWQsIHVuc2lnbmVkLCBXZWJTaXplKSk7Cit9Owor
CiB9IC8vIG5hbWVzcGFjZQogCiBlbnVtIFRocmVhZE1vZGUgewpAQCAtODUsNyArODksNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIE1vY2tDYW52YXNDb250ZXh0JiBpbXBsTW9jayA9ICpzdGF0aWNf
Y2FzdDxNb2NrQ2FudmFzQ29udGV4dCo+KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFj
dFdlYkdyYXBoaWNzQ29udGV4dDNEKGltcGxDb250ZXh0LmdldCgpKSk7CiAKICAgICAgICAgTW9j
a1RleHR1cmVDb3BpZXIgY29waWVyTW9jazsKLSAgICAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRh
dGVyOworICAgICAgICBNb2NrV2ViVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgICAgICBj
b25zdCBJbnRTaXplIHNpemUoMzAwLCAxNTApOwogCkBAIC0xMDksMTUgKzExMywxMSBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlv
bnMoJm1haW5Nb2NrKTsKIAogICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7
CisgICAgICAgIGlmICh0aHJlYWRNb2RlID09IFRocmVhZGVkICYmIGRlZmVycmFsTW9kZSA9PSBO
b25EZWZlcnJlZCkKKyAgICAgICAgICAgIEVYUEVDVF9DQUxMKHVwZGF0ZXIsIGFwcGVuZENvcHko
YmFja1RleHR1cmVJZCwgZnJvbnRUZXh0dXJlSWQsIFdlYlNpemUoMzAwLCAxNTApKSk7CiAgICAg
ICAgIEVYUEVDVF9FUShmcm9udFRleHR1cmVJZCwgYnJpZGdlLT5wcmVwYXJlVGV4dHVyZSh1cGRh
dGVyKSk7CiAgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlv
bnMoJm1haW5Nb2NrKTsKLQotICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBUaHJlYWRlZCAmJiBk
ZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQpIHsKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKGNv
cGllck1vY2ssIGNvcHlUZXh0dXJlKGNjSW1wbENvbnRleHQuZ2V0KCksIGJhY2tUZXh0dXJlSWQs
IGZyb250VGV4dHVyZUlkLCBzaXplKSk7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChpbXBsTW9j
aywgZmx1c2goKSk7Ci0gICAgICAgIH0KLSAgICAgICAgdXBkYXRlci51cGRhdGUoY2NJbXBsQ29u
dGV4dC5nZXQoKSwgMCwgJmNvcGllck1vY2ssIDAsIDEwMCk7Ci0gICAgICAgIDo6dGVzdGluZzo6
TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmltcGxNb2NrKTsKKyAgICAgICAgOjp0
ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmdXBkYXRlcik7CiAKICAg
ICAgICAgaWYgKHRocmVhZE1vZGUgPT0gVGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRl
ZmVycmVkKSB7CiAgICAgICAgICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVsZXRlVGV4dHVy
ZShmcm9udFRleHR1cmVJZCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146984</attachid>
            <date>2012-06-11 18:13:45 -0700</date>
            <delta_ts>2012-06-12 14:07:02 -0700</delta_ts>
            <desc>rebased and fleshed out ChangeLogs</desc>
            <filename>bug-88597-20120611181345.patch</filename>
            <type>text/plain</type>
            <size>14306</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2MTgzN2E5OGRkNTBk
ZTA2NGYzMzM3MmI4NzliNzdhYTQ4NDAyNWEwLi5mN2M2YTk5ZDFiNDlhNzkxMGZiZTkzNDNkMjJm
Y2MzOTM0NGE4NGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMi0wNi0xMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1
bV0gUG9ydCBDYW52YXMyRExheWVyQnJpZGdlIG92ZXIgdG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTk3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBh
ZGRzIHR3byBuZXcgQVBJcyB0byBXZWJFeHRlcm5hbFRleHR1cmVMYXllciB0aGF0IGFyZSB1c2Vk
IGJ5IHRoZSBhY2NlbGVyYXRlZCAyZCBjYW52YXMgcGF0aDoKKyAgICAgICAgLSB3aWxsTW9kaWZ5
VGV4dHVyZSgpIGlzIGNhbGxlZCB0byBpbmRpY2F0ZSB0aGF0IGEgc3lzdGVtIG91dHNpZGUgdGhl
IGNvbXBvc2l0b3IncyBjb250cm9sIGlzIGFib3V0IHRvIG1vZGlmeQorICAgICAgICB0aGUgdGV4
dHVyZSBiYWNraW5nIHRoZSBXZWJFeHRlcm5hbFRleHR1cmVMYXllci4gVGhpcyBpbmRpY2F0ZXMg
dG8gdGhlIGNvbXBvc2l0b3IgdGhhdCBpdCBuZWVkcyB0byBhdm9pZAorICAgICAgICBwcm9kdWNp
bmcgbW9yZSBmcmFtZXMgdXNpbmcgdGhpcyB0ZXh0dXJlIHVudGlsIGl0IGNhbiBkbyBhIGZ1bGwg
Y29tbWl0IC0gZWl0aGVyIGJ5IGRvdWJsZSBidWZmZXJpbmcgb3IKKyAgICAgICAgYXBwcm9wcmlh
dGUgZmxvdyBjb250cm9sLgorCisgICAgICAgIC0gc2V0UmF0ZUxpbWl0Q29udGV4dCgpIGlzIGNh
bGxlZCB0byBlbmFibGUgcmF0ZSBsaW1pdGluZyBmb3IgdGhpcyB0ZXh0dXJlLiBUaGUgcmF0ZSBs
aW1pdGluZyBsb2dpYyBibG9ja3MgaWYKKyAgICAgICAgdG9vIG1hbnkgaW52YWxpZGF0ZSgpIG9y
IGludmFsaWRhdGVSZWN0KCkgY2FsbHMgYXJlIG1hZGUgb24gdGhlIHRleHR1cmUgb3V0c2lkZSBv
ZiB0aGUgY29udGV4dCBvZiBhCisgICAgICAgIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ6OnVwZGF0
ZUFuaW1hdGlvbnMoKSBjYWxsIHRvIHByZXZlbnQgYSBub24tdnN5bmNlZCBwcm9kdWNlciBmcm9t
IGdldHRpbmcgdG9vIGZhciBhaGVhZCBvZgorICAgICAgICB0aGUgY29tcG9zaXRvci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXIpOgorICAgICAgICAoV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIpOgorCisyMDEyLTA2LTExICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVt
XSBQb3J0IERyYXdpbmdCdWZmZXJDaHJvbWl1bSBmcm9tIFRleHR1cmVMYXllckNocm9taXVtIG92
ZXIgdG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjczCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMDJhMDZkNGYwMDY3
OTNhZTVhNDFhYjVhNjM4OTk5NmE2MDFkZWEwLi4zOGZlYmMzOThhYzY5NmY4YWE0MWU2Y2FhODc2
ZTI2M2RkMGQ5MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAKIDIwMTItMDYtMTEgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1d
IFBvcnQgQ2FudmFzMkRMYXllckJyaWRnZSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4dHVyZUxheWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODU5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY29u
dmVydHMgQ2FudmFzMkRMYXllckJyaWRnZSB0byB1c2luZyBwdWJsaWMgV2ViTGF5ZXIgQVBJIHR5
cGVzIGluc3RlYWQgb2YgTGF5ZXJDaHJvbWl1bSB0eXBlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0OjpBY2NlbGVyYXRlZERldmljZUNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0OjpwcmVwYXJlRm9y
RHJhdyk6CisgICAgICAgIChBY2NlbGVyYXRlZERldmljZUNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjp+Q2FudmFzMkRMYXllckJyaWRnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
czJETGF5ZXJCcmlkZ2U6OmNvbnRleHRBY3F1aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChDYW52YXMyRExheWVyQnJpZGdlKToKKworMjAxMi0wNi0xMSAgSmFtZXMgUm9i
aW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBE
cmF3aW5nQnVmZmVyQ2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdl
YkV4dGVybmFsVGV4dHVyZUxheWVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjI3MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJjZTc4
YWY4M2U2ZjIwNmQ0ZWJhYTQ5ZTY0NDJmNTgxZDk5N2RhMWYuLjI5NDQxMjMzYmFiZjQyYTcyNmVh
MzdlYmUwMTJkMGY4MzkxYjZiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTItMDYtMTEgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFBvcnQgQ2FudmFzMkRMYXllckJyaWRnZSBvdmVyIHRv
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04ODU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudGF0aW9ucyBmb3IgbmV3IFdlYkV4dGVybmFsVGV4dHVy
ZUxheWVyIEFQSXMsIHVwZGF0ZXMgdGVzdC4KKworICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRl
eHR1cmVMYXllci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVy
Ojp3aWxsTW9kaWZ5VGV4dHVyZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6c2V0UmF0ZUxpbWl0Q29udGV4dCk6CisgICAgICAg
ICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwOgorICAgICAgICAoQ2FudmFzMkRM
YXllckJyaWRnZVRlc3Q6OmZ1bGxMaWZlY3ljbGVUZXN0KToKKwogMjAxMi0wNS0xMSAgSmFtZXMg
Um9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9y
dCBEcmF3aW5nQnVmZmVyQ2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRv
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKaW5kZXggODA4ZDU4ZTMx
OGI4YWQ3YmU0MmYzZWY3ODQ5NmU4YjcwNjQzNzY5MS4uYjE5YzA1ZjNlM2IwOThkOGViMDNlZTU2
MTI3OTY0NmI5MDgxZjQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaApAQCAtNzYsNiArNzYsMTMgQEAg
cHVibGljOgogICAgIC8vIFNldHMgd2hldGhlciB0aGlzIGxheWVyJ3MgdGV4dHVyZSBoYXMgcHJl
bXVsdGlwbGllZCBhbHBoYSBvciBub3QuIERlZmF1bHRzIHRvIHRydWUuCiAgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIHNldFByZW11bHRpcGxpZWRBbHBoYShib29sKTsKIAorICAgIC8vIEluZGljYXRl
cyB0aGF0IHRoZSBtb3N0IHJlY2VudGx5IHByb3ZpZGVkIHRleHR1cmUgSUQgaXMgYWJvdXQgdG8g
YmUgbW9kaWZpZWQgZXh0ZXJuYWxseS4KKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgd2lsbE1vZGlm
eVRleHR1cmUoKTsKKworICAgIC8vIFNldHMgd2hldGhlciB0aGlzIGNvbnRleHQgc2hvdWxkIGJl
IHJhdGUgbGltaXRlZCBieSB0aGUgY29tcG9zaXRvci4gUmF0ZSBsaW1pdGluZyB3b3JrcyBieSBi
bG9ja2luZworICAgIC8vIGludmFsaWRhdGUoKSBhbmQgaW52YWxpZGF0ZVJlY3QoKSBjYWxscyBp
ZiB0aGUgY29tcG9zaXRvciBpcyB0b28gbWFueSBmcmFtZXMgYmVoaW5kLgorICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBzZXRSYXRlTGltaXRDb250ZXh0KGJvb2wpOworCiBwcml2YXRlOgogI2lmIFdF
QktJVF9JTVBMRU1FTlRBVElPTgogICAgIGV4cGxpY2l0IFdlYkV4dGVybmFsVGV4dHVyZUxheWVy
KFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZUxheWVyQ2hyb21pdW0+KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJC
cmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2Fu
dmFzMkRMYXllckJyaWRnZS5jcHAKaW5kZXggYzFlNmMwMDM0Njg2MTVmNGY2NDEwMTQ4NDE0NWVi
MDRmZmU1ZjAyYi4uMDgzMDYzMjk2ZDJhYTNmNTM5M2YzYjQwMDRjMGNiOTFjOTRkOGU3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFz
MkRMYXllckJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKQEAgLTMzLDM0ICszMywzOCBAQAogI2lu
Y2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIiAvLyBGb3IgR0xDKCkgbWFjcm8uCiAjaW5j
bHVkZSAiU2tDYW52YXMuaCIKICNpbmNsdWRlICJTa0RlZmVycmVkQ2FudmFzLmgiCi0jaW5jbHVk
ZSAiVGV4dHVyZUxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCiAjaW5j
bHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oPgorCit1c2luZyBXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyOwor
dXNpbmcgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDsKK3VzaW5nIFdlYktpdDo6V2ViVGV4
dHVyZVVwZGF0ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWNjZWxlcmF0ZWRE
ZXZpY2VDb250ZXh0IDogcHVibGljIFNrRGVmZXJyZWRDYW52YXM6OkRldmljZUNvbnRleHQgewog
cHVibGljOgotICAgIEFjY2VsZXJhdGVkRGV2aWNlQ29udGV4dChHcmFwaGljc0NvbnRleHQzRCog
Y29udGV4dCwgVGV4dHVyZUxheWVyQ2hyb21pdW0qIGxheWVyLCBib29sIHVzZURvdWJsZUJ1ZmZl
cmluZykKKyAgICBBY2NlbGVyYXRlZERldmljZUNvbnRleHQoV2ViR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyIGxheWVyLCBib29sIHVzZURvdWJsZUJ1
ZmZlcmluZykKICAgICAgICAgOiBtX2xheWVyKGxheWVyKQogICAgICAgICAsIG1fY29udGV4dCgp
CiAgICAgICAgICwgbV91c2VEb3VibGVCdWZmZXJpbmcodXNlRG91YmxlQnVmZmVyaW5nKQogICAg
IHsKICAgICAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgICAgICBBU1NFUlQobGF5ZXIpOworICAg
ICAgICBBU1NFUlQoIWxheWVyLmlzTnVsbCgpKTsKICAgICAgICAgbV9jb250ZXh0ID0gY29udGV4
dDsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRyYXcoKQogICAgIHsKICAg
ICAgICAgaWYgKCFtX3VzZURvdWJsZUJ1ZmZlcmluZykKLSAgICAgICAgICAgIG1fbGF5ZXItPndp
bGxNb2RpZnlUZXh0dXJlKCk7CisgICAgICAgICAgICBtX2xheWVyLndpbGxNb2RpZnlUZXh0dXJl
KCk7CiAgICAgICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIFRleHR1cmVMYXllckNocm9taXVtKiBtX2xheWVyOwotICAgIEdyYXBoaWNz
Q29udGV4dDNEKiBtX2NvbnRleHQ7CisgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgbV9sYXll
cjsKKyAgICBXZWJHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIGJvb2wgbV91c2VE
b3VibGVCdWZmZXJpbmc7CiB9OwogCkBAIC05MiwxNSArOTYsMTUgQEAgQ2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LAogICAgICAgICAgICAgZ3JDb250ZXh0LT5yZXNldENvbnRleHQoKTsKICAgICB9CiAK
LSAgICBtX2xheWVyID0gVGV4dHVyZUxheWVyQ2hyb21pdW06OmNyZWF0ZSh0aGlzKTsKLSAgICBt
X2xheWVyLT5zZXRUZXh0dXJlSWQodGV4dHVyZUlkKTsKLSAgICBtX2xheWVyLT5zZXRSYXRlTGlt
aXRDb250ZXh0KCFDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgfHwgbV91c2VEb3VibGVCdWZmZXJp
bmcpOworICAgIG1fbGF5ZXIgPSBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6Y3JlYXRlKHRoaXMp
OworICAgIG1fbGF5ZXIuc2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7CisgICAgbV9sYXllci5zZXRS
YXRlTGltaXRDb250ZXh0KCFDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgfHwgbV91c2VEb3VibGVC
dWZmZXJpbmcpOwogfQogCiAKIENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJp
ZGdlKCkKIHsKLSAgICBtX2xheWVyLT5zZXRUZXh0dXJlSWQoMCk7CisgICAgbV9sYXllci5zZXRU
ZXh0dXJlSWQoMCk7CiAgICAgaWYgKG1fdXNlRG91YmxlQnVmZmVyaW5nKSB7CiAgICAgICAgIG1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0
KCksIG1fY29udGV4dC0+ZGVsZXRlVGV4dHVyZShtX2Zyb250QnVmZmVyVGV4dHVyZSkpOwpAQCAt
MTExLDcgKzExNSw3IEBAIENhbnZhczJETGF5ZXJCcmlkZ2U6On5DYW52YXMyRExheWVyQnJpZGdl
KCkKIFNrQ2FudmFzKiBDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyhTa0RldmljZSogZGV2
aWNlKQogewogICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBEZWZlcnJlZCkgewotICAgICAgICBT
a0F1dG9UVW5yZWY8QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0PiBkZXZpY2VDb250ZXh0KG5ldyBB
Y2NlbGVyYXRlZERldmljZUNvbnRleHQobV9jb250ZXh0LmdldCgpLCBtX2xheWVyLmdldCgpLCBt
X3VzZURvdWJsZUJ1ZmZlcmluZykpOworICAgICAgICBTa0F1dG9UVW5yZWY8QWNjZWxlcmF0ZWRE
ZXZpY2VDb250ZXh0PiBkZXZpY2VDb250ZXh0KG5ldyBBY2NlbGVyYXRlZERldmljZUNvbnRleHQo
Y29udGV4dCgpLCBtX2xheWVyLCBtX3VzZURvdWJsZUJ1ZmZlcmluZykpOwogICAgICAgICBtX2Nh
bnZhcyA9IG5ldyBTa0RlZmVycmVkQ2FudmFzKGRldmljZSwgZGV2aWNlQ29udGV4dC5nZXQoKSk7
CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZSk7CkBA
IC0xMjAsNyArMTI0LDcgQEAgU2tDYW52YXMqIENhbnZhczJETGF5ZXJCcmlkZ2U6OnNrQ2FudmFz
KFNrRGV2aWNlKiBkZXZpY2UpCiB9CiAKIAotdW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6
cHJlcGFyZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKK3Vuc2lnbmVkIENhbnZh
czJETGF5ZXJCcmlkZ2U6OnByZXBhcmVUZXh0dXJlKFdlYlRleHR1cmVVcGRhdGVyJiB1cGRhdGVy
KQogewogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKQEAgLTEzOSwyMCAr
MTQzLDIwIEBAIHVuc2lnbmVkIENhbnZhczJETGF5ZXJCcmlkZ2U6OnByZXBhcmVUZXh0dXJlKEND
VGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCiAgICAgcmV0dXJuIG1fYmFja0J1ZmZlclRleHR1cmU7
CiB9CiAKLVdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIENhbnZhczJETGF5ZXJCcmlkZ2U6
OmNvbnRleHQoKQorV2ViR3JhcGhpY3NDb250ZXh0M0QqIENhbnZhczJETGF5ZXJCcmlkZ2U6OmNv
bnRleHQoKQogewogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RX
ZWJHcmFwaGljc0NvbnRleHQzRChtX2NvbnRleHQuZ2V0KCkpOwogfQogCiBMYXllckNocm9taXVt
KiBDYW52YXMyRExheWVyQnJpZGdlOjpsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGF5
ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fbGF5ZXIudW53cmFwPExheWVyQ2hyb21pdW0+KCk7CiB9
CiAKIHZvaWQgQ2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dEFjcXVpcmVkKCkKIHsKICAgICBp
ZiAobV9kZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQgJiYgIW1fdXNlRG91YmxlQnVmZmVyaW5n
KQotICAgICAgICBtX2xheWVyLT53aWxsTW9kaWZ5VGV4dHVyZSgpOworICAgICAgICBtX2xheWVy
LndpbGxNb2RpZnlUZXh0dXJlKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2Uu
aAppbmRleCA2OWQxNTFmODIwY2Q3ODMyYzVkM2I2NGYxMmE3YzY5ZGFmZDJlYTM4Li4xOTQwMDc4
ZjYxN2VlYTYzMjg4NmRjNGIzOTZjNzI1NDY3MWFlMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckJyaWRnZS5oCkBAIC0yOCw3ICsyOCw4IEBACiAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIiAv
LyBGb3IgRGVmZXJyYWxNb2RlIGVudW0uCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUg
IlRleHR1cmVMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4
dHVyZUxheWVyLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyQ2xp
ZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKQEAgLTQyLDkgKzQzLDggQEAgY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIExheWVyQ2hyb21pdW07Ci1jbGFzcyBUZXh0dXJlTGF5
ZXJDaHJvbWl1bTsKIAotY2xhc3MgQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1YmxpYyBUZXh0dXJl
TGF5ZXJDaHJvbWl1bUNsaWVudCB7CitjbGFzcyBDYW52YXMyRExheWVyQnJpZGdlIDogcHVibGlj
IFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKENhbnZhczJETGF5ZXJCcmlkZ2UpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
T3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBEZWZlcnJhbE1vZGUgZGVmZXJy
YWxNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCkBAIC01NCw4ICs1NCw4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKIAotICAgIC8vIFRleHR1cmVMYXll
ckNocm9taXVtQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdW5zaWduZWQgcHJl
cGFyZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlciYpIE9WRVJSSURFOworICAgIC8vIFdlYktpdDo6
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVh
bCB1bnNpZ25lZCBwcmVwYXJlVGV4dHVyZShXZWJLaXQ6OldlYlRleHR1cmVVcGRhdGVyJikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
KCkgT1ZFUlJJREU7CiAKICAgICBTa0NhbnZhcyogc2tDYW52YXMoU2tEZXZpY2UqKTsKQEAgLTcx
LDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwog
ICAgIEludFNpemUgbV9zaXplOwogICAgIFNrQ2FudmFzKiBtX2NhbnZhczsKLSAgICBSZWZQdHI8
VGV4dHVyZUxheWVyQ2hyb21pdW0+IG1fbGF5ZXI7CisgICAgV2ViS2l0OjpXZWJFeHRlcm5hbFRl
eHR1cmVMYXllciBtX2xheWVyOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250
ZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCmluZGV4IGU0MThhOWZhMTFjZDZjNjU4NjE2M2Q5ZmFjMGNl
NDkxZGZlZmYyMTQuLmQ5Y2VhM2JiMTZiNGQ4YjU3ZTI1ZDk0YjFkM2ZiNDRjY2UxNDlhZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1
cmVMYXllci5jcHAKQEAgLTExMiw2ICsxMTIsMTYgQEAgdm9pZCBXZWJFeHRlcm5hbFRleHR1cmVM
YXllcjo6c2V0UHJlbXVsdGlwbGllZEFscGhhKGJvb2wgcHJlbXVsdGlwbGllZEFscGhhKQogICAg
IHVud3JhcDxUZXh0dXJlTGF5ZXJDaHJvbWl1bT4oKS0+c2V0UHJlbXVsdGlwbGllZEFscGhhKHBy
ZW11bHRpcGxpZWRBbHBoYSk7CiB9CiAKK3ZvaWQgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6Ondp
bGxNb2RpZnlUZXh0dXJlKCkKK3sKKyAgICB1bndyYXA8VGV4dHVyZUxheWVyQ2hyb21pdW0+KCkt
PndpbGxNb2RpZnlUZXh0dXJlKCk7Cit9CisKK3ZvaWQgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6
OnNldFJhdGVMaW1pdENvbnRleHQoYm9vbCByYXRlTGltaXQpCit7CisgICAgdW53cmFwPFRleHR1
cmVMYXllckNocm9taXVtPigpLT5zZXRSYXRlTGltaXRDb250ZXh0KHJhdGVMaW1pdCk7Cit9CisK
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcihQYXNzUmVm
UHRyPFRleHR1cmVMYXllckNocm9taXVtPiBsYXllcikKICAgICA6IFdlYkxheWVyKGxheWVyKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVy
QnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5
ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCAwZTFlZjIwYmM2ODBlZTI2ZDVjMWZlOGY3MjdiMjM2NjEw
NTQ3YTQ5Li4xNjA0NmU2NTQ3OGNiN2FiYzZkYjRkYTA1ZjMzZmViZmY2N2JkMzEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlk
Z2VUZXN0LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3IuaCIK
ICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJjYy9DQ0dyYXBoaWNzQ29udGV4dC5oIgot
I2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJL
aXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJUaHJlYWQuaCIKIApA
QCAtNjQsNiArNjMsMTEgQEAgcHVibGljOgogICAgIE1PQ0tfTUVUSE9ENChjb3B5VGV4dHVyZSwg
dm9pZChDQ0dyYXBoaWNzQ29udGV4dCosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgSW50U2l6
ZSYpKTsKIH07CiAKK2NsYXNzIE1vY2tXZWJUZXh0dXJlVXBkYXRlciA6IHB1YmxpYyBXZWJUZXh0
dXJlVXBkYXRlciB7CitwdWJsaWM6CisgICAgTU9DS19NRVRIT0QzKGFwcGVuZENvcHksIHZvaWQo
dW5zaWduZWQsIHVuc2lnbmVkLCBXZWJTaXplKSk7Cit9OworCiB9IC8vIG5hbWVzcGFjZQogCiBl
bnVtIFRocmVhZE1vZGUgewpAQCAtODUsNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIE1v
Y2tDYW52YXNDb250ZXh0JiBpbXBsTW9jayA9ICpzdGF0aWNfY2FzdDxNb2NrQ2FudmFzQ29udGV4
dCo+KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNE
KGltcGxDb250ZXh0LmdldCgpKSk7CiAKICAgICAgICAgTW9ja1RleHR1cmVDb3BpZXIgY29waWVy
TW9jazsKLSAgICAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOworICAgICAgICBNb2NrV2Vi
VGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgICAgICBjb25zdCBJbnRTaXplIHNpemUoMzAw
LCAxNTApOwogCkBAIC0xMDksMTUgKzExMywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIDo6dGVz
dGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKIAogICAg
ICAgICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZmx1c2goKSk7CisgICAgICAgIGlmICh0aHJlYWRN
b2RlID09IFRocmVhZGVkICYmIGRlZmVycmFsTW9kZSA9PSBOb25EZWZlcnJlZCkKKyAgICAgICAg
ICAgIEVYUEVDVF9DQUxMKHVwZGF0ZXIsIGFwcGVuZENvcHkoYmFja1RleHR1cmVJZCwgZnJvbnRU
ZXh0dXJlSWQsIFdlYlNpemUoMzAwLCAxNTApKSk7CiAgICAgICAgIEVYUEVDVF9FUShmcm9udFRl
eHR1cmVJZCwgYnJpZGdlLT5wcmVwYXJlVGV4dHVyZSh1cGRhdGVyKSk7CiAgICAgICAgIDo6dGVz
dGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1haW5Nb2NrKTsKLQotICAg
ICAgICBpZiAodGhyZWFkTW9kZSA9PSBUaHJlYWRlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVm
ZXJyZWQpIHsKLSAgICAgICAgICAgIEVYUEVDVF9DQUxMKGNvcGllck1vY2ssIGNvcHlUZXh0dXJl
KGNjSW1wbENvbnRleHQuZ2V0KCksIGJhY2tUZXh0dXJlSWQsIGZyb250VGV4dHVyZUlkLCBzaXpl
KSk7Ci0gICAgICAgICAgICBFWFBFQ1RfQ0FMTChpbXBsTW9jaywgZmx1c2goKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgdXBkYXRlci51cGRhdGUoY2NJbXBsQ29udGV4dC5nZXQoKSwgMCwgJmNvcGll
ck1vY2ssIDAsIDEwMCk7Ci0gICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJF
eHBlY3RhdGlvbnMoJmltcGxNb2NrKTsKKyAgICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlB
bmRDbGVhckV4cGVjdGF0aW9ucygmdXBkYXRlcik7CiAKICAgICAgICAgaWYgKHRocmVhZE1vZGUg
PT0gVGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkKSB7CiAgICAgICAgICAg
ICBFWFBFQ1RfQ0FMTChtYWluTW9jaywgZGVsZXRlVGV4dHVyZShmcm9udFRleHR1cmVJZCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147157</attachid>
            <date>2012-06-12 14:07:08 -0700</date>
            <delta_ts>2012-06-12 17:10:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88597-20120612140707.patch</filename>
            <type>text/plain</type>
            <size>14571</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2MTgzN2E5OGRkNTBk
ZTA2NGYzMzM3MmI4NzliNzdhYTQ4NDAyNWEwLi5mN2M2YTk5ZDFiNDlhNzkxMGZiZTkzNDNkMjJm
Y2MzOTM0NGE4NGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMi0wNi0xMSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1
bV0gUG9ydCBDYW52YXMyRExheWVyQnJpZGdlIG92ZXIgdG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTk3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBh
ZGRzIHR3byBuZXcgQVBJcyB0byBXZWJFeHRlcm5hbFRleHR1cmVMYXllciB0aGF0IGFyZSB1c2Vk
IGJ5IHRoZSBhY2NlbGVyYXRlZCAyZCBjYW52YXMgcGF0aDoKKyAgICAgICAgLSB3aWxsTW9kaWZ5
VGV4dHVyZSgpIGlzIGNhbGxlZCB0byBpbmRpY2F0ZSB0aGF0IGEgc3lzdGVtIG91dHNpZGUgdGhl
IGNvbXBvc2l0b3IncyBjb250cm9sIGlzIGFib3V0IHRvIG1vZGlmeQorICAgICAgICB0aGUgdGV4
dHVyZSBiYWNraW5nIHRoZSBXZWJFeHRlcm5hbFRleHR1cmVMYXllci4gVGhpcyBpbmRpY2F0ZXMg
dG8gdGhlIGNvbXBvc2l0b3IgdGhhdCBpdCBuZWVkcyB0byBhdm9pZAorICAgICAgICBwcm9kdWNp
bmcgbW9yZSBmcmFtZXMgdXNpbmcgdGhpcyB0ZXh0dXJlIHVudGlsIGl0IGNhbiBkbyBhIGZ1bGwg
Y29tbWl0IC0gZWl0aGVyIGJ5IGRvdWJsZSBidWZmZXJpbmcgb3IKKyAgICAgICAgYXBwcm9wcmlh
dGUgZmxvdyBjb250cm9sLgorCisgICAgICAgIC0gc2V0UmF0ZUxpbWl0Q29udGV4dCgpIGlzIGNh
bGxlZCB0byBlbmFibGUgcmF0ZSBsaW1pdGluZyBmb3IgdGhpcyB0ZXh0dXJlLiBUaGUgcmF0ZSBs
aW1pdGluZyBsb2dpYyBibG9ja3MgaWYKKyAgICAgICAgdG9vIG1hbnkgaW52YWxpZGF0ZSgpIG9y
IGludmFsaWRhdGVSZWN0KCkgY2FsbHMgYXJlIG1hZGUgb24gdGhlIHRleHR1cmUgb3V0c2lkZSBv
ZiB0aGUgY29udGV4dCBvZiBhCisgICAgICAgIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ6OnVwZGF0
ZUFuaW1hdGlvbnMoKSBjYWxsIHRvIHByZXZlbnQgYSBub24tdnN5bmNlZCBwcm9kdWNlciBmcm9t
IGdldHRpbmcgdG9vIGZhciBhaGVhZCBvZgorICAgICAgICB0aGUgY29tcG9zaXRvci4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXIpOgorICAgICAgICAoV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIpOgorCisyMDEyLTA2LTExICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVt
XSBQb3J0IERyYXdpbmdCdWZmZXJDaHJvbWl1bSBmcm9tIFRleHR1cmVMYXllckNocm9taXVtIG92
ZXIgdG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjczCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyODZmMWVjY2VmMGFj
NWRjODBjZWRkOGE3MjBhN2M3M2NhMDk3ZDE3Li5kM2E5NmZmYjQ5ZDYwZmUwMDE3MjQyYTA0MjIx
MGVhZWJhOTM3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMTEgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFBvcnQgQ2FudmFzMkRMYXllckJyaWRnZSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4dHVyZUxheWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODU5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY29u
dmVydHMgQ2FudmFzMkRMYXllckJyaWRnZSB0byB1c2luZyBwdWJsaWMgV2ViTGF5ZXIgQVBJIHR5
cGVzIGluc3RlYWQgb2YgTGF5ZXJDaHJvbWl1bSB0eXBlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0OjpBY2NlbGVyYXRlZERldmljZUNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0OjpwcmVwYXJlRm9y
RHJhdyk6CisgICAgICAgIChBY2NlbGVyYXRlZERldmljZUNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjp+Q2FudmFzMkRMYXllckJyaWRnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpza0NhbnZhcyk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhczJETGF5ZXJCcmlkZ2U6OmxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
czJETGF5ZXJCcmlkZ2U6OmNvbnRleHRBY3F1aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChDYW52YXMyRExheWVyQnJpZGdlKToKKwogMjAxMi0wNi0xMiAgSmFtZXMgUm9i
aW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUkVHUkVT
U0lPTigxMTk3NjkpOiBDYW52YXMyRExheWVyQnJpZGdlIG1heSBnbyBhd2F5IGJlZm9yZSBpdHMg
VGV4dHVyZUxheWVyQ2hyb21pdW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2MxZGZl
YmViZDgyZTdhMGYwNDFhZDg3OWQzYWUzMjhmYWY1ZGU2MC4uZTUxNjg4ZjUyY2ExZDlhOWVlMWZm
OWU5MWQ4ZjU0ZjNmNzA1OWVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxMi0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBDYW52YXMyRExheWVyQnJpZGdlIG92ZXIgdG8g
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4NTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb25zIGZvciBuZXcgV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXIgQVBJcywgdXBkYXRlcyB0ZXN0LgorCisgICAgICAgICogc3JjL1dlYkV4dGVybmFsVGV4
dHVyZUxheWVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6
OndpbGxNb2RpZnlUZXh0dXJlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpzZXRSYXRlTGltaXRDb250ZXh0KToKKyAgICAgICAg
KiB0ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgIChDYW52YXMyRExh
eWVyQnJpZGdlVGVzdDo6ZnVsbExpZmVjeWNsZVRlc3QpOgorCiAyMDEyLTA2LTEyICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSRUdS
RVNTSU9OKDExOTc2OSk6IENhbnZhczJETGF5ZXJCcmlkZ2UgbWF5IGdvIGF3YXkgYmVmb3JlIGl0
cyBUZXh0dXJlTGF5ZXJDaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCmluZGV4IDgwOGQ1OGUzMThi
OGFkN2JlNDJmM2VmNzg0OTZlOGI3MDY0Mzc2OTEuLmIxOWMwNWYzZTNiMDk4ZDhlYjAzZWU1NjEy
Nzk2NDZiOTA4MWY0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKQEAgLTc2LDYgKzc2LDEzIEBAIHB1
YmxpYzoKICAgICAvLyBTZXRzIHdoZXRoZXIgdGhpcyBsYXllcidzIHRleHR1cmUgaGFzIHByZW11
bHRpcGxpZWQgYWxwaGEgb3Igbm90LiBEZWZhdWx0cyB0byB0cnVlLgogICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBzZXRQcmVtdWx0aXBsaWVkQWxwaGEoYm9vbCk7CiAKKyAgICAvLyBJbmRpY2F0ZXMg
dGhhdCB0aGUgbW9zdCByZWNlbnRseSBwcm92aWRlZCB0ZXh0dXJlIElEIGlzIGFib3V0IHRvIGJl
IG1vZGlmaWVkIGV4dGVybmFsbHkuCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHdpbGxNb2RpZnlU
ZXh0dXJlKCk7CisKKyAgICAvLyBTZXRzIHdoZXRoZXIgdGhpcyBjb250ZXh0IHNob3VsZCBiZSBy
YXRlIGxpbWl0ZWQgYnkgdGhlIGNvbXBvc2l0b3IuIFJhdGUgbGltaXRpbmcgd29ya3MgYnkgYmxv
Y2tpbmcKKyAgICAvLyBpbnZhbGlkYXRlKCkgYW5kIGludmFsaWRhdGVSZWN0KCkgY2FsbHMgaWYg
dGhlIGNvbXBvc2l0b3IgaXMgdG9vIG1hbnkgZnJhbWVzIGJlaGluZC4KKyAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgc2V0UmF0ZUxpbWl0Q29udGV4dChib29sKTsKKwogcHJpdmF0ZToKICNpZiBXRUJL
SVRfSU1QTEVNRU5UQVRJT04KICAgICBleHBsaWNpdCBXZWJFeHRlcm5hbFRleHR1cmVMYXllcihQ
YXNzUmVmUHRyPFdlYkNvcmU6OlRleHR1cmVMYXllckNocm9taXVtPik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJp
ZGdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJCcmlkZ2UuY3BwCmluZGV4IDA5MDJmZWVmMDYwYmQ1OGU2ODZiNzM3ZDlhYzc1YzFj
NWQwNTc0ZGQuLmJiMDJmZTg0MzRkMTU1ZDc3YWE0M2U4ZDkzNzI2NjAwYjBiYmM0ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJE
TGF5ZXJCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwCkBAIC0zMywzNCArMzMsMzggQEAKICNpbmNs
dWRlICJMYXllclJlbmRlcmVyQ2hyb21pdW0uaCIgLy8gRm9yIEdMQygpIG1hY3JvLgogI2luY2x1
ZGUgIlNrQ2FudmFzLmgiCiAjaW5jbHVkZSAiU2tEZWZlcnJlZENhbnZhcy5oIgotI2luY2x1ZGUg
IlRleHR1cmVMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgogI2luY2x1
ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3ND
b250ZXh0M0QuaD4KKwordXNpbmcgV2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcjsKK3Vz
aW5nIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q7Cit1c2luZyBXZWJLaXQ6OldlYlRleHR1
cmVVcGRhdGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFjY2VsZXJhdGVkRGV2
aWNlQ29udGV4dCA6IHB1YmxpYyBTa0RlZmVycmVkQ2FudmFzOjpEZXZpY2VDb250ZXh0IHsKIHB1
YmxpYzoKLSAgICBBY2NlbGVyYXRlZERldmljZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQsIFRleHR1cmVMYXllckNocm9taXVtKiBsYXllciwgYm9vbCB1c2VEb3VibGVCdWZmZXJp
bmcpCisgICAgQWNjZWxlcmF0ZWREZXZpY2VDb250ZXh0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0LCBXZWJFeHRlcm5hbFRleHR1cmVMYXllciBsYXllciwgYm9vbCB1c2VEb3VibGVCdWZm
ZXJpbmcpCiAgICAgICAgIDogbV9sYXllcihsYXllcikKICAgICAgICAgLCBtX2NvbnRleHQoKQog
ICAgICAgICAsIG1fdXNlRG91YmxlQnVmZmVyaW5nKHVzZURvdWJsZUJ1ZmZlcmluZykKICAgICB7
CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICAgICAgQVNTRVJUKGxheWVyKTsKKyAgICAg
ICAgQVNTRVJUKCFsYXllci5pc051bGwoKSk7CiAgICAgICAgIG1fY29udGV4dCA9IGNvbnRleHQ7
CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEcmF3KCkKICAgICB7CiAgICAg
ICAgIGlmICghbV91c2VEb3VibGVCdWZmZXJpbmcpCi0gICAgICAgICAgICBtX2xheWVyLT53aWxs
TW9kaWZ5VGV4dHVyZSgpOworICAgICAgICAgICAgbV9sYXllci53aWxsTW9kaWZ5VGV4dHVyZSgp
OwogICAgICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBUZXh0dXJlTGF5ZXJDaHJvbWl1bSogbV9sYXllcjsKLSAgICBHcmFwaGljc0Nv
bnRleHQzRCogbV9jb250ZXh0OworICAgIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyIG1fbGF5ZXI7
CisgICAgV2ViR3JhcGhpY3NDb250ZXh0M0QqIG1fY29udGV4dDsKICAgICBib29sIG1fdXNlRG91
YmxlQnVmZmVyaW5nOwogfTsKIApAQCAtOTIsMjcgKzk2LDI3IEBAIENhbnZhczJETGF5ZXJCcmlk
Z2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29u
dGV4dCwKICAgICAgICAgICAgIGdyQ29udGV4dC0+cmVzZXRDb250ZXh0KCk7CiAgICAgfQogCi0g
ICAgbV9sYXllciA9IFRleHR1cmVMYXllckNocm9taXVtOjpjcmVhdGUodGhpcyk7Ci0gICAgbV9s
YXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXllci0+c2V0UmF0ZUxpbWl0
Q29udGV4dCghQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpIHx8IG1fdXNlRG91YmxlQnVmZmVyaW5n
KTsKKyAgICBtX2xheWVyID0gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSh0aGlzKTsK
KyAgICBtX2xheWVyLnNldFRleHR1cmVJZCh0ZXh0dXJlSWQpOworICAgIG1fbGF5ZXIuc2V0UmF0
ZUxpbWl0Q29udGV4dCghQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpIHx8IG1fdXNlRG91YmxlQnVm
ZmVyaW5nKTsKIH0KIAogCiBDYW52YXMyRExheWVyQnJpZGdlOjp+Q2FudmFzMkRMYXllckJyaWRn
ZSgpCiB7Ci0gICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKDApOworICAgIG1fbGF5ZXIuc2V0VGV4
dHVyZUlkKDApOwogICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykgewogICAgICAgICBtX2Nv
bnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgICAgICBHTEMobV9jb250ZXh0LmdldCgp
LCBtX2NvbnRleHQtPmRlbGV0ZVRleHR1cmUobV9mcm9udEJ1ZmZlclRleHR1cmUpKTsKICAgICAg
ICAgbV9jb250ZXh0LT5mbHVzaCgpOwogICAgIH0KLSAgICBtX2xheWVyLT5jbGVhckNsaWVudCgp
OworICAgIG1fbGF5ZXIuY2xlYXJDbGllbnQoKTsKIH0KIAogU2tDYW52YXMqIENhbnZhczJETGF5
ZXJCcmlkZ2U6OnNrQ2FudmFzKFNrRGV2aWNlKiBkZXZpY2UpCiB7CiAgICAgaWYgKG1fZGVmZXJy
YWxNb2RlID09IERlZmVycmVkKSB7Ci0gICAgICAgIFNrQXV0b1RVbnJlZjxBY2NlbGVyYXRlZERl
dmljZUNvbnRleHQ+IGRldmljZUNvbnRleHQobmV3IEFjY2VsZXJhdGVkRGV2aWNlQ29udGV4dCht
X2NvbnRleHQuZ2V0KCksIG1fbGF5ZXIuZ2V0KCksIG1fdXNlRG91YmxlQnVmZmVyaW5nKSk7Cisg
ICAgICAgIFNrQXV0b1RVbnJlZjxBY2NlbGVyYXRlZERldmljZUNvbnRleHQ+IGRldmljZUNvbnRl
eHQobmV3IEFjY2VsZXJhdGVkRGV2aWNlQ29udGV4dChjb250ZXh0KCksIG1fbGF5ZXIsIG1fdXNl
RG91YmxlQnVmZmVyaW5nKSk7CiAgICAgICAgIG1fY2FudmFzID0gbmV3IFNrRGVmZXJyZWRDYW52
YXMoZGV2aWNlLCBkZXZpY2VDb250ZXh0LmdldCgpKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9j
YW52YXMgPSBuZXcgU2tDYW52YXMoZGV2aWNlKTsKQEAgLTEyMSw3ICsxMjUsNyBAQCBTa0NhbnZh
cyogQ2FudmFzMkRMYXllckJyaWRnZTo6c2tDYW52YXMoU2tEZXZpY2UqIGRldmljZSkKIH0KIAog
Ci11bnNpZ25lZCBDYW52YXMyRExheWVyQnJpZGdlOjpwcmVwYXJlVGV4dHVyZShDQ1RleHR1cmVV
cGRhdGVyJiB1cGRhdGVyKQordW5zaWduZWQgQ2FudmFzMkRMYXllckJyaWRnZTo6cHJlcGFyZVRl
eHR1cmUoV2ViVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCiB7CiAgICAgbV9jb250ZXh0LT5tYWtl
Q29udGV4dEN1cnJlbnQoKTsKIApAQCAtMTQwLDIwICsxNDQsMjAgQEAgdW5zaWduZWQgQ2FudmFz
MkRMYXllckJyaWRnZTo6cHJlcGFyZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikK
ICAgICByZXR1cm4gbV9iYWNrQnVmZmVyVGV4dHVyZTsKIH0KIAotV2ViS2l0OjpXZWJHcmFwaGlj
c0NvbnRleHQzRCogQ2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dCgpCitXZWJHcmFwaGljc0Nv
bnRleHQzRCogQ2FudmFzMkRMYXllckJyaWRnZTo6Y29udGV4dCgpCiB7CiAgICAgcmV0dXJuIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFjdFdlYkdyYXBoaWNzQ29udGV4dDNEKG1fY29u
dGV4dC5nZXQoKSk7CiB9CiAKIExheWVyQ2hyb21pdW0qIENhbnZhczJETGF5ZXJCcmlkZ2U6Omxh
eWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9sYXllci5nZXQoKTsKKyAgICByZXR1cm4gbV9s
YXllci51bndyYXA8TGF5ZXJDaHJvbWl1bT4oKTsKIH0KIAogdm9pZCBDYW52YXMyRExheWVyQnJp
ZGdlOjpjb250ZXh0QWNxdWlyZWQoKQogewogICAgIGlmIChtX2RlZmVycmFsTW9kZSA9PSBOb25E
ZWZlcnJlZCAmJiAhbV91c2VEb3VibGVCdWZmZXJpbmcpCi0gICAgICAgIG1fbGF5ZXItPndpbGxN
b2RpZnlUZXh0dXJlKCk7CisgICAgICAgIG1fbGF5ZXIud2lsbE1vZGlmeVRleHR1cmUoKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ2FudmFzMkRMYXllckJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCmluZGV4IDY5ZDE1MWY4MjBjZDc4MzJj
NWQzYjY0ZjEyYTdjNjlkYWZkMmVhMzguLjE5NDAwNzhmNjE3ZWVhNjMyODg2ZGM0YjM5NmM3MjU0
NjcxYWUyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKQEAgLTI4LDcgKzI4LDgg
QEAKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiIC8vIEZvciBEZWZlcnJhbE1vZGUgZW51bS4K
ICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiVGV4dHVyZUxheWVyQ2hyb21pdW0uaCIK
KyNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KKyNpbmNsdWRlIDxw
dWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtNDIsOSArNDMsOCBAQCBj
bGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TGF5ZXJDaHJvbWl1bTsKLWNsYXNzIFRleHR1cmVMYXllckNocm9taXVtOwogCi1jbGFzcyBDYW52
YXMyRExheWVyQnJpZGdlIDogcHVibGljIFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50IHsKK2Ns
YXNzIENhbnZhczJETGF5ZXJCcmlkZ2UgOiBwdWJsaWMgV2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1
cmVMYXllckNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ2FudmFzMkRMYXllckJy
aWRnZSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRn
ZT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IElu
dFNpemUmIHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJ
ZCkKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q2FudmFzMkRMYXll
ckJyaWRnZSgpOwogCi0gICAgLy8gVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQgaW1wbGVtZW50
YXRpb24uCi0gICAgdmlydHVhbCB1bnNpZ25lZCBwcmVwYXJlVGV4dHVyZShDQ1RleHR1cmVVcGRh
dGVyJikgT1ZFUlJJREU7CisgICAgLy8gV2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllckNs
aWVudCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHByZXBhcmVUZXh0dXJl
KFdlYktpdDo6V2ViVGV4dHVyZVVwZGF0ZXImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQoKSBPVkVSUklERTsKIAogICAgIFNrQ2Fu
dmFzKiBza0NhbnZhcyhTa0RldmljZSopOwpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAg
IHVuc2lnbmVkIG1fYmFja0J1ZmZlclRleHR1cmU7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAg
U2tDYW52YXMqIG1fY2FudmFzOwotICAgIFJlZlB0cjxUZXh0dXJlTGF5ZXJDaHJvbWl1bT4gbV9s
YXllcjsKKyAgICBXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyIG1fbGF5ZXI7CiAgICAg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAKaW5k
ZXggZTQxOGE5ZmExMWNkNmM2NTg2MTYzZDlmYWMwY2U0OTFkZmVmZjIxNC4uZDljZWEzYmIxNmI0
ZDhiNTdlMjVkOTRiMWQzZmI0NGNjZTE0OWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcApAQCAtMTEyLDYgKzEx
MiwxNiBAQCB2b2lkIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpzZXRQcmVtdWx0aXBsaWVkQWxw
aGEoYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGEpCiAgICAgdW53cmFwPFRleHR1cmVMYXllckNocm9t
aXVtPigpLT5zZXRQcmVtdWx0aXBsaWVkQWxwaGEocHJlbXVsdGlwbGllZEFscGhhKTsKIH0KIAor
dm9pZCBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6d2lsbE1vZGlmeVRleHR1cmUoKQoreworICAg
IHVud3JhcDxUZXh0dXJlTGF5ZXJDaHJvbWl1bT4oKS0+d2lsbE1vZGlmeVRleHR1cmUoKTsKK30K
Kwordm9pZCBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6c2V0UmF0ZUxpbWl0Q29udGV4dChib29s
IHJhdGVMaW1pdCkKK3sKKyAgICB1bndyYXA8VGV4dHVyZUxheWVyQ2hyb21pdW0+KCktPnNldFJh
dGVMaW1pdENvbnRleHQocmF0ZUxpbWl0KTsKK30KKwogV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6
OldlYkV4dGVybmFsVGV4dHVyZUxheWVyKFBhc3NSZWZQdHI8VGV4dHVyZUxheWVyQ2hyb21pdW0+
IGxheWVyKQogICAgIDogV2ViTGF5ZXIobGF5ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCmluZGV4IDFl
MjFiMDYwNTA2YWQ0YWViMDk1ZDU2MWMzNWQ3YTgyYTA3MzI5YmUuLmJhY2Y4NzNmY2FmMTYyNDk0
ZTE0ZDVhNGRhNDYzYWZjZDQ3ZjJjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCkBAIC0yOSw3ICsyOSw3
IEBACiAjaW5jbHVkZSAiRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNs
dWRlICJUZXh0dXJlQ29waWVyLmgiCisjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1
ZGUgIlRleHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1
ZGUgIldlYktpdC5oIgpAQCAtNTksOSArNTksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHckdM
SW50ZXJmYWNlKiBvbkNyZWF0ZUdyR0xJbnRlcmZhY2UoKSBPVkVSUklERSB7IHJldHVybiAwOyB9
CiB9OwogCi1jbGFzcyBNb2NrVGV4dHVyZUNvcGllciA6IHB1YmxpYyBUZXh0dXJlQ29waWVyIHsK
K2NsYXNzIE1vY2tXZWJUZXh0dXJlVXBkYXRlciA6IHB1YmxpYyBXZWJUZXh0dXJlVXBkYXRlciB7
CiBwdWJsaWM6Ci0gICAgTU9DS19NRVRIT0Q0KGNvcHlUZXh0dXJlLCB2b2lkKENDR3JhcGhpY3ND
b250ZXh0KiwgdW5zaWduZWQsIHVuc2lnbmVkLCBjb25zdCBJbnRTaXplJikpOworICAgIE1PQ0tf
TUVUSE9EMyhhcHBlbmRDb3B5LCB2b2lkKHVuc2lnbmVkLCB1bnNpZ25lZCwgV2ViU2l6ZSkpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UKQEAgLTg0LDggKzg0LDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBNb2NrQ2FudmFzQ29udGV4dCYgbWFpbk1vY2sgPSAqc3RhdGljX2Nhc3Q8TW9ja0NhbnZhc0Nv
bnRleHQqPihHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmV4dHJhY3RXZWJHcmFwaGljc0NvbnRl
eHQzRChtYWluQ29udGV4dC5nZXQoKSkpOwogICAgICAgICBNb2NrQ2FudmFzQ29udGV4dCYgaW1w
bE1vY2sgPSAqc3RhdGljX2Nhc3Q8TW9ja0NhbnZhc0NvbnRleHQqPihHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OmV4dHJhY3RXZWJHcmFwaGljc0NvbnRleHQzRChpbXBsQ29udGV4dC5nZXQoKSkp
OwogCi0gICAgICAgIE1vY2tUZXh0dXJlQ29waWVyIGNvcGllck1vY2s7Ci0gICAgICAgIENDVGV4
dHVyZVVwZGF0ZXIgdXBkYXRlcjsKKyAgICAgICAgTW9ja1dlYlRleHR1cmVVcGRhdGVyIHVwZGF0
ZXI7CiAKICAgICAgICAgY29uc3QgSW50U2l6ZSBzaXplKDMwMCwgMTUwKTsKIApAQCAtMTA5LDE1
ICsxMDgsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFu
ZENsZWFyRXhwZWN0YXRpb25zKCZtYWluTW9jayk7CiAKICAgICAgICAgRVhQRUNUX0NBTEwobWFp
bk1vY2ssIGZsdXNoKCkpOworICAgICAgICBpZiAodGhyZWFkTW9kZSA9PSBUaHJlYWRlZCAmJiBk
ZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQpCisgICAgICAgICAgICBFWFBFQ1RfQ0FMTCh1cGRh
dGVyLCBhcHBlbmRDb3B5KGJhY2tUZXh0dXJlSWQsIGZyb250VGV4dHVyZUlkLCBXZWJTaXplKDMw
MCwgMTUwKSkpOwogICAgICAgICBFWFBFQ1RfRVEoZnJvbnRUZXh0dXJlSWQsIGJyaWRnZS0+cHJl
cGFyZVRleHR1cmUodXBkYXRlcikpOwogICAgICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFu
ZENsZWFyRXhwZWN0YXRpb25zKCZtYWluTW9jayk7Ci0KLSAgICAgICAgaWYgKHRocmVhZE1vZGUg
PT0gVGhyZWFkZWQgJiYgZGVmZXJyYWxNb2RlID09IE5vbkRlZmVycmVkKSB7Ci0gICAgICAgICAg
ICBFWFBFQ1RfQ0FMTChjb3BpZXJNb2NrLCBjb3B5VGV4dHVyZShjY0ltcGxDb250ZXh0LmdldCgp
LCBiYWNrVGV4dHVyZUlkLCBmcm9udFRleHR1cmVJZCwgc2l6ZSkpOwotICAgICAgICAgICAgRVhQ
RUNUX0NBTEwoaW1wbE1vY2ssIGZsdXNoKCkpOwotICAgICAgICB9Ci0gICAgICAgIHVwZGF0ZXIu
dXBkYXRlKGNjSW1wbENvbnRleHQuZ2V0KCksIDAsICZjb3BpZXJNb2NrLCAwLCAxMDApOwotICAg
ICAgICA6OnRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZpbXBsTW9j
ayk7CisgICAgICAgIDo6dGVzdGluZzo6TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMo
JnVwZGF0ZXIpOwogCiAgICAgICAgIGlmICh0aHJlYWRNb2RlID09IFRocmVhZGVkICYmIGRlZmVy
cmFsTW9kZSA9PSBOb25EZWZlcnJlZCkgewogICAgICAgICAgICAgRVhQRUNUX0NBTEwobWFpbk1v
Y2ssIGRlbGV0ZVRleHR1cmUoZnJvbnRUZXh0dXJlSWQpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>