<?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>117683</bug_id>
          
          <creation_ts>2013-06-16 11:33:52 -0700</creation_ts>
          <short_desc>Move Clipboard::declareAndWriteDragImage to DragController</short_desc>
          <delta_ts>2013-08-13 07:23:05 -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>HTML Editing</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>roger_fong</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>900881</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-16 11:33:52 -0700</bug_when>
    <thetext>Move Clipboard::declareAndWriteDragImage to DragController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900882</commentid>
    <comment_count>1</comment_count>
      <attachid>204790</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-16 11:40:00 -0700</bug_when>
    <thetext>Created attachment 204790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900883</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-16 11:40:56 -0700</bug_when>
    <thetext>Relatively straightforward refactoring, helps trim down the size of the Clipboard class and give it focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900884</commentid>
    <comment_count>3</comment_count>
      <attachid>204790</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-16 11:45:24 -0700</bug_when>
    <thetext>Comment on attachment 204790
Patch

Attachment 204790 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/930174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900885</commentid>
    <comment_count>4</comment_count>
      <attachid>204790</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-16 11:46:33 -0700</bug_when>
    <thetext>Comment on attachment 204790
Patch

Attachment 204790 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/867597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900886</commentid>
    <comment_count>5</comment_count>
      <attachid>204791</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-16 11:49:27 -0700</bug_when>
    <thetext>Created attachment 204791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900887</commentid>
    <comment_count>6</comment_count>
      <attachid>204791</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-16 11:55:18 -0700</bug_when>
    <thetext>Comment on attachment 204791
Patch

Attachment 204791 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/867601</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900888</commentid>
    <comment_count>7</comment_count>
      <attachid>204791</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-16 11:56:02 -0700</bug_when>
    <thetext>Comment on attachment 204791
Patch

Attachment 204791 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/904217</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900889</commentid>
    <comment_count>8</comment_count>
      <attachid>204792</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-16 11:59:13 -0700</bug_when>
    <thetext>Created attachment 204792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900890</commentid>
    <comment_count>9</comment_count>
      <attachid>204792</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-16 12:05:18 -0700</bug_when>
    <thetext>Comment on attachment 204792
Patch

Attachment 204792 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/944059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900891</commentid>
    <comment_count>10</comment_count>
      <attachid>204792</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-16 12:05:27 -0700</bug_when>
    <thetext>Comment on attachment 204792
Patch

Attachment 204792 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/928216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900894</commentid>
    <comment_count>11</comment_count>
      <attachid>204792</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-06-16 12:46:59 -0700</bug_when>
    <thetext>Comment on attachment 204792
Patch

Attachment 204792 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/943005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902854</commentid>
    <comment_count>12</comment_count>
      <attachid>205272</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-23 18:02:28 -0700</bug_when>
    <thetext>Created attachment 205272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902858</commentid>
    <comment_count>13</comment_count>
      <attachid>205272</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-06-23 18:39:47 -0700</bug_when>
    <thetext>Comment on attachment 205272
Patch

Attachment 205272 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/964575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913980</commentid>
    <comment_count>14</comment_count>
      <attachid>205272</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-01 20:00:47 -0700</bug_when>
    <thetext>Comment on attachment 205272
Patch

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

&gt; Source/WebCore/page/DragController.cpp:705
&gt; +    if (element-&gt;isContentRichlyEditable()) {

Maybe it would be cleaner to move this check in the caller so that this function will just be named selectElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913981</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-01 20:01:13 -0700</bug_when>
    <thetext>Brent or Roger should look at the Windows port&apos;s change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913995</commentid>
    <comment_count>16</comment_count>
      <attachid>205272</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-01 20:52:24 -0700</bug_when>
    <thetext>Comment on attachment 205272
Patch

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

I think the changes look good, but I&apos;m curious about the original handling of the source URL; are we changing behavior in some unintentional fashion?

&gt; Source/WebCore/platform/win/ClipboardWin.cpp:-69
&gt; -    AtomicString imageURL = element-&gt;getAttribute(HTMLNames::srcAttr);

Do we not need this anymore? I wonder why this more complicated mechanism for retrieving the image source was used previously?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914334</commentid>
    <comment_count>17</comment_count>
      <attachid>205272</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-02 19:44:59 -0700</bug_when>
    <thetext>Comment on attachment 205272
Patch

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

&gt;&gt; Source/WebCore/platform/win/ClipboardWin.cpp:-69
&gt;&gt; -    AtomicString imageURL = element-&gt;getAttribute(HTMLNames::srcAttr);
&gt; 
&gt; Do we not need this anymore? I wonder why this more complicated mechanism for retrieving the image source was used previously?

I believe that this code check to see if there is any image in the element is redundant, and done at another level.

To be clear, the code is not retrieving the image source. Note below that fullURL is constructed so it can be checked to see if it’s empty. Nothing else is done with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916304</commentid>
    <comment_count>18</comment_count>
      <attachid>205272</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-12 09:26:36 -0700</bug_when>
    <thetext>Comment on attachment 205272
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916558</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-12 22:57:09 -0700</bug_when>
    <thetext>Committed r153978: &lt;http://trac.webkit.org/changeset/153978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916596</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-13 00:19:43 -0700</bug_when>
    <thetext>Windows build fixes landed in:
http://trac.webkit.org/changeset/153983
http://trac.webkit.org/changeset/153984
http://trac.webkit.org/changeset/153985
http://trac.webkit.org/changeset/153988</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916691</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-13 07:23:05 -0700</bug_when>
    <thetext>Thanks for fixing Windows. Not sure why I didn’t notice the EWS failure!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204790</attachid>
            <date>2013-06-16 11:40:00 -0700</date>
            <delta_ts>2013-06-16 11:49:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117683-20130616113815.patch</filename>
            <type>text/plain</type>
            <size>19528</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQyNDgwMjU0OWI0Njlm
MzM4NWU4ZmIzYTYyMzE0NmUzMGVjYjlkMy4uMjYzMjZiNTljMjQwYjc4YjVhMWJiMDU0M2U0ZjJh
NzE2MTYyMTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA2LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIENsaXBib2FyZDo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlIHRvIERyYWdDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc2ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogUmVtb3Zl
ZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEltYWdlQmVmb3JlRHJhZ2dpbmcpOiBI
YWxmIG9mIHRoZSBvbGQgcHJlcGFyZUNsaXBib2FyZEZvckltYWdlRHJhZworICAgICAgICBpcyBu
b3cgcmVmYWN0b3JlZCBpbnRvIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6c3RhcnREcmFnKTogV2hlcmUgd2UgY2FsbGVkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcsCisgICAgICAgIGluc3RlYWQgY2FsbCBzZWxlY3RJbWFnZUJlZm9yZURyYWdn
aW5nIGFuZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuIFRoaXMgaXMgbmVlZGVkCisgICAgICAg
IGJlY2F1c2UgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlIG5lZWRzIHRvIGJlIGEgbWVtYmVyIGZ1
bmN0aW9uLCBmb3IgTWFjIGF0IGxlYXN0LgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxl
ci5oOiBBZGRlZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL2Vm
bC9EcmFnQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogQWRkZWQgZW1wdHkgcGxhY2Vob2xkZXIuCisg
ICAgICAgIEl0IHdvdWxkIGJlIGJldHRlciB0byBkZWxldGUgdGhpcyBmaWxlIHJhdGhlciB0aGFu
IGhhdmluZyB0aGVzZSBwbGFjZWhvbGRlcnMuCisgICAgICAgIEkgZG9uJ3QgdGhpbmsgRUZMIGFj
dHVhbGx5IGhhcyBkcmFnIHN1cHBvcnQsIGFuZCBpdCBtYWtlcyB3b3JrIHRvIGhhdmUgdG8ga2Vl
cAorICAgICAgICBzb3VyY2UgZmlsZXMgdXAgdG8gZGF0ZSB0aGF0IGFyZSByZWFsbHkgdW51c2Vk
LgorCisgICAgICAgICogcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVk
LiBDYWxscyBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBDYWxscyB0byBEcmFnQ2xpZW50LCB3aGljaAor
ICAgICAgICBkb2VzIHRoZSB3b3JrLgorICAgICAgICAqIHBhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKTogQWRkZWQuIENhbGxzIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UuCisgICAgICAg
ICogcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBVc2VzIFBhc3Rl
Ym9hcmQgZnVuY3Rpb25zIHRvCisgICAgICAgIGRvIHRoZSB3b3JrLgorCisgICAgICAgICogcGxh
dGZvcm0vUGFzdGVib2FyZC5oOiBBZGRlZCBhIG5ldyB3cml0ZU1hcmt1cCBmdW5jdGlvbiwgaW1w
bGVtZW50ZWQgb25seSBmb3IgV2luZG93cworICAgICAgICBhdCB0aGlzIHRpbWUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcDogRGVsZXRlZCBkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vcXQv
Q2xpcGJvYXJkUXQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
V2luLmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRvRGF0YU9i
amVjdCk6IFRvb2sgb3V0IGEgcG9pbnRsZXNzIGxpbmUgb2YgY29kZS4KKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OndyaXRlTWFya3VwKTogQWRkZWQuIEN1cnJlbnRseSBpbXBsZW1lbnRl
ZCBvbmx5IGZvciBXaW5kb3dzLgorICAgICAgICBUaGlzIGZhY3RvcnMgb3V0IGEgc2lnbmlmaWNh
bnQgcGllY2Ugb2YgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSwKKyAg
ICAgICAgYW5kIHdpbGwgcHJvYmFibHkgYmUgaGFuZHkgZm9yIG90aGVyIHBsYXRmb3JtcyBsYXRl
ci4KKwogMjAxMy0wNi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVHJ5IHRvIGZpeCBpT1MgYWZ0ZXIgbGFzdCBQYXN0ZWJvYXJkIGNoYW5nZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaAppbmRleCBjNWQ0NzJlZTRmYjkyZjUwNGY4YjM2MmI1NjM5ZTEzMGE1ODk3ZjRi
Li5kNjQ2YzJiZTFhYzM2YTU2N2UzNDI0OWYwZGUwMmU5ZWMxZGMyNjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5oCkBAIC0xMDAsOSArMTAwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBOb2RlKiBkcmFnSW1hZ2VFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnSW1hZ2VFbGVt
ZW50LmdldCgpOyB9CiAgICAgICAgIAogICAgICAgICBMRUdBQ1lfVklSVFVBTCBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0IExFR0FDWV9Q
VVJFOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgIExFR0FDWV9WSVJUVUFMIHZv
aWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgRnJhbWUqKSBMRUdBQ1lfUFVSRTsKLSNlbmRpZgogICAgICAgICBMRUdB
Q1lfVklSVFVBTCB2b2lkIHdyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopIExFR0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lkIHdyaXRlUmFuZ2Uo
UmFuZ2UqLCBGcmFtZSopIExFR0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lk
IHdyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpIExFR0FDWV9QVVJFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA3YjQyMmIwNjgxZGU4ZmUyM2Y4ZDUzMTVjN2Iz
NjBhODAyZDY1ZWFhLi5jMTcwMzk0Njk2NzI3N2FhMzEzYTlhMjM2Mzc5OWMzNDJlYWI5MzExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNzAwLDE0ICs3MDAsMTMg
QEAgc3RhdGljIEltYWdlKiBnZXRJbWFnZShFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBjYWNo
ZWRJbWFnZS0+aW1hZ2UoKSA6IDA7CiB9CiAKLXN0YXRpYyB2b2lkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcoRnJhbWUqIHNvdXJjZSwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQq
IG5vZGUsIGNvbnN0IEtVUkwmIGxpbmtVUkwsIGNvbnN0IEtVUkwmIGltYWdlVVJMLCBjb25zdCBT
dHJpbmcmIGxhYmVsKQorc3RhdGljIHZvaWQgc2VsZWN0SW1hZ2VCZWZvcmVEcmFnZ2luZyhFbGVt
ZW50KiBlbGVtZW50KQogewotICAgIGlmIChub2RlLT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgp
KSB7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzb3VyY2UtPmRvY3VtZW50KCktPmNy
ZWF0ZVJhbmdlKCk7Ci0gICAgICAgIHJhbmdlLT5zZWxlY3ROb2RlKG5vZGUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwotICAgICAgICBzb3VyY2UtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbihyYW5nZS5nZXQoKSwgRE9XTlNUUkVBTSkpOworICAgIGlmIChlbGVtZW50
LT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpKSB7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5jcmVhdGVSYW5nZSgpOworICAgICAgICByYW5nZS0+
c2VsZWN0Tm9kZShlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKHJhbmdlLmdldCgpLCBET1dOU1RSRUFNKSk7CiAgICAgfQotICAgIGNsaXBib2Fy
ZC0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKG5vZGUsICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxp
bmtVUkwgOiBpbWFnZVVSTCwgbGFiZWwsIHNvdXJjZSk7CiB9CiAKIHN0YXRpYyBJbnRQb2ludCBk
cmFnTG9jRm9yREhUTUxEcmFnKGNvbnN0IEludFBvaW50JiBtb3VzZURyYWdnZWRQb2ludCwgY29u
c3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFnSW1hZ2VPZmZzZXQs
IGJvb2wgaXNMaW5rSW1hZ2UpCkBAIC04MDUsMTQgKzgwNCwxNCBAQCBib29sIERyYWdDb250cm9s
bGVyOjpzdGFydERyYWcoRnJhbWUqIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09w
ZXJhdGlvbgogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09yaWdpbi54
KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CiAgICAgICAg
IH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkLCBzcmMsIGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKCFpbWFnZVVSTC5pc0VtcHR5
KCkgJiYgZWxlbWVudCAmJiBpbWFnZSAmJiAhaW1hZ2UtPmlzTnVsbCgpCi0gICAgICAgICAgICAg
ICAmJiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkltYWdlKSkgeworICAg
IH0gZWxzZSBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSAmJiBlbGVtZW50ICYmIGltYWdlICYmICFp
bWFnZS0+aXNOdWxsKCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25J
bWFnZSkpIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGJlIHN0YXJ0aW5nIGEgZHJhZyBmb3Ig
YW4gaW1hZ2UgdGhhdCBjYW4ndCBwcm92aWRlIGFuIGV4dGVuc2lvbi4KICAgICAgICAgLy8gVGhp
cyBpcyBhbiBlYXJseSBkZXRlY3Rpb24gZm9yIHByb2JsZW1zIGVuY291bnRlcmVkIGxhdGVyIHVw
b24gZHJvcC4KICAgICAgICAgQVNTRVJUKCFpbWFnZS0+ZmlsZW5hbWVFeHRlbnNpb24oKS5pc0Vt
cHR5KCkpOwogICAgICAgICBpZiAoIWNsaXBib2FyZC0+aGFzRGF0YSgpKSB7CiAgICAgICAgICAg
ICBtX2RyYWdnaW5nSW1hZ2VVUkwgPSBpbWFnZVVSTDsKLSAgICAgICAgICAgIHByZXBhcmVDbGlw
Ym9hcmRGb3JJbWFnZURyYWcoc3JjLCBjbGlwYm9hcmQsIGVsZW1lbnQsIGxpbmtVUkwsIGltYWdl
VVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CisgICAgICAgICAgICBzZWxl
Y3RJbWFnZUJlZm9yZURyYWdnaW5nKGVsZW1lbnQpOworICAgICAgICAgICAgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKGNsaXBib2FyZCwgZWxlbWVudCwgIWxpbmtVUkwuaXNFbXB0eSgpID8gbGlu
a1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBtX2NsaWVudC0+d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERy
YWdTb3VyY2VBY3Rpb25JbWFnZSwgZHJhZ09yaWdpbiwgY2xpcGJvYXJkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA5ZmU3YTY0ZDFiOTg5NzQ4MmRiM2U1NzgwOTY2OGJj
YTk1ZWM4MmYyLi5hZWViYTE4NzMwNWEwZTAwNmZlNDJhZjJjMzJlZmE4MGFlMDcyMTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC00MSwxMiArNDEsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRnJhbWVTZWxlY3Rpb247
CiAgICAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKLSAgICBjbGFzcyBJbWFnZTsKICAgICBjbGFz
cyBJbnRSZWN0OwotICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBQ
bGF0Zm9ybU1vdXNlRXZlbnQ7Ci0gICAgY2xhc3MgUmFuZ2U7CiAKICAgICBzdHJ1Y3QgRHJhZ1Nl
c3Npb247CiAgICAgc3RydWN0IERyYWdTdGF0ZTsKQEAgLTExMyw2ICsxMTAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCosIGNvbnN0IElu
dFBvaW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2FyZCosIEZyYW1lKiwgSW50UG9pbnQmKTsK
ICAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYs
IGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkKiwgRnJhbWUqLCBib29sIGZvckxpbmspOwogICAg
ICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsKKyAgICAgICAgdm9pZCBkZWNsYXJl
QW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIGxhYmVsKTsKIAogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIERyYWdD
bGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJh
Z0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xs
ZXJFZmwuY3BwCmluZGV4IGY1YzBlY2NjZGQ4NDY4YjJlN2YxNGMzZTNjODMxY2ViYWE2NTQzYjAu
LjI3NTBlMmUzOWQ2NzVkYjIyODk3OGZmMTdkNGZlMDRlODhmYzVkOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAKQEAgLTY0LDYgKzY0LDExIEBA
IGNvbnN0IEludFNpemUmIERyYWdDb250cm9sbGVyOjptYXhEcmFnSW1hZ2VTaXplKCkKIH0KIAog
dm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCi17fQoreworfQor
Cit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJk
KiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKQoreworfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKaW5kZXggMjk3NDll
MmZlZDE4Y2ZkNDRiZTY1ZmIyOWI5YjI5YzRkOTIxN2U5NC4uZWRiMjUxZTBlY2UwOTVhYTA5Yzc1
MGM3MzUxZTRjMzFkMTdiMjc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RHJhZ0NvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdD
b250cm9sbGVyR3RrLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgog
I2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY2LDQgKzY4LDkgQEAgdm9pZCBEcmFnQ29udHJvbGxl
cjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiB7CiB9CiAKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6
OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNsaXBib2FyZCwgRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIGNs
aXBib2FyZC0+cGFzdGVib2FyZCgpLT53cml0ZUltYWdlKGVsZW1lbnQsIHVybCwgbGFiZWwpOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCmlu
ZGV4IDcwYTEwYTc0YzYyMTQxMTYyOTAzNDQzOTE4ZjVlYmQxMzgwODY1ZTUuLjcyNjMwMWYzODEz
ZTIwYzM2MThkNTQ0NmM3M2FjY2UwYmFhN2NkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCkBAIC0yNywxMCArMjcsMTUgQEAKICNpbXBvcnQgIkRy
YWdDb250cm9sbGVyLmgiCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2ltcG9ydCAiQ2xp
cGJvYXJkLmgiCisjaW1wb3J0ICJET01FbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRyYWdD
bGllbnQuaCIKICNpbXBvcnQgIkRyYWdEYXRhLmgiCisjaW1wb3J0ICJFbGVtZW50LmgiCiAjaW1w
b3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJQYWdlLmgiCisj
aW1wb3J0ICJQYXN0ZWJvYXJkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzksNiAr
ODQsMTEgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiAg
ICAgICAgIGRyYWdFbmRlZCgpOwogfQogCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBjbGllbnQoKS0+ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNsaXBib2FyZC0+cGFzdGVib2FyZCgpLm5hbWUoKSwga2l0
KGVsZW1lbnQpLCB1cmwsIGxhYmVsLCBlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9S
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3F0L0RyYWdDb250cm9sbGVyUXQuY3BwCmluZGV4IDM0
OTM3ZTc0ODZhOTk2ZWQ0OTdjYjdjYTVlNjc5NGQwNjVjMWVmNzUuLjhmNmU0OGVhMWUyMTBmODcx
MGI0NDVhYjM3M2I1NTYxNGQxYmYxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
cXQvRHJhZ0NvbnRyb2xsZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9EcmFn
Q29udHJvbGxlclF0LmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgog
I2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4LDQgKzcwLDkgQEAgdm9pZCBEcmFnQ29udHJvbGxl
cjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiB7CiB9CiAKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6
OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNsaXBib2FyZCwgRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIGNs
aXBib2FyZC0+cGFzdGVib2FyZCgpLT53cml0ZUltYWdlKGVsZW1lbnQsIHVybCwgbGFiZWwpOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxl
cldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAK
aW5kZXggYTdiZTZkOGFiYjgyNTEwN2E0YWNlYTU4YjhiYTQyNTVjZjc0MDZjMS4uNGM3NGNlMDlm
NDRiMmZjYjU3NmJiYzAyYTEzMzlmMDk3ODRjYjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcApAQCAtNjYsNCArNjYsMTggQEAgdm9pZCBEcmFn
Q29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiB7CiB9CiAKK3ZvaWQgRHJhZ0Nv
bnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNsaXBib2FyZCwg
RWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQor
eworICAgIFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQgPSBjbGlwYm9hcmQtPnBhc3RlYm9hcmQoKTsK
KworICAgIC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGNoZWNrPworICAgIGlmICgh
cGFzdGVib2FyZC0+d3JpdGFibGVEYXRhT2JqZWN0KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlIGZvciBFeHBsb3JlcidzIHNha2UKKyAgICBwYXN0
ZWJvYXJkLT53cml0ZVVSTFRvV3JpdGFibGVEYXRhT2JqZWN0KHVybCwgbGFiZWwpOworICAgIHBh
c3RlYm9hcmQtPndyaXRlSW1hZ2VUb0RhdGFPYmplY3QoZWxlbWVudCwgdXJsKTsKKyAgICBwYXN0
ZWJvYXJkLT53cml0ZU1hcmt1cChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAs
IFJlc29sdmVBbGxVUkxzKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAppbmRleCA5MzZiMjg0Njk5MzUyYTAyMjY0ZjE4M2I2MzM3ZDcxMWFmNjk1NGEwLi4yODAzMjhk
MzVkYzFmMzk2MjEyMzNhZWQ5OGQ5YTUxM2QzM2RmNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCkBAIC0xMzEsNiArMTMxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB3cml0
ZVN0cmluZyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAgICAgdm9p
ZCB3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1l
KiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID0gRGVmYXVsdFNlbGVj
dGVkVGV4dFR5cGUpOworICAgIHZvaWQgd3JpdGVNYXJrdXAoY29uc3QgU3RyaW5nJiBtYXJrdXAp
OwogICAgIHZvaWQgd3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0
aW9uKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgd3JpdGVVUkwoY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYsIEZyYW1lKiA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ2xpcGJvYXJkRWZsLmNwcAppbmRleCBhOGM5NDA4YWY0N2VkNDFlOWM2YWM1YzhmNGFhMzNl
M2I3NjhhNzFhLi5mMGVjY2Y5YzJiNjY2MDNiZDNkY2UxMTkxMDE0ZThmMzljNDgyM2ZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcApAQCAtMzMsMTMg
KzMzLDYgQEAgRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50
JikgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12
b2lkIENsaXBib2FyZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQogUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkOjppdGVtcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCmluZGV4IGQzODhiNWI2YzE3MGY3Y2Qz
NWVjNDA3ZWYxYWFlYWY0YzRmNmIyNzkuLjgwZTljYTcyZTRjOGU3NjA5MDBiYzdiYjA3MmNlYzU4
MzRhNjE1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9h
cmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsu
Y3BwCkBAIC00Miw5ICs0Miw0IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJ
bWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0CiAgICAgcmV0dXJuIDA7IC8vIFdlIGRvIG5v
dCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYSBkcmFnIGltYWdlLCB1c2UgdGhl
IGRlZmF1bHQgaWNvbi4KIH0KIAotdm9pZCBDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJ
bWFnZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBtX3Bhc3RlYm9hcmQtPndyaXRlSW1hZ2UoZWxlbWVu
dC0+dG9Ob2RlKCksIHVybCwgbGFiZWwpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvQ2xpcGJvYXJkSU9TLmgKaW5kZXggNTAwMTkzY2YzNzVhM2M0YjlhMGYxYzk4ZGMxYzRj
ODBkZDllODNjYi4uZmU1YmQ3MWM4YmMxNjNhYzg1ZDFjMjQ1ZWQ5YWVmZGM3MjQ2ODMyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaApAQCAtNTksOSArNTks
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSAq
LCBjb25zdCBJbnRQb2ludCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBEcmFnSW1hZ2VSZWYg
Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jKSBjb25zdCBPVkVSUklERTsKLSNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFn
SW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBGcmFtZSop
IE9WRVJSSURFOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUmFuZ2UoUmFuZ2UqLCBG
cmFtZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwg
Y29uc3QgU3RyaW5nJiwgRnJhbWUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVQ
bGFpblRleHQoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0NsaXBib2FyZElPUy5tbQppbmRleCA1ODViNmI1YjMzY2RiODQ3OTQxYjkxMjY2Yzc1
NWQwZjg3NDcxY2QxLi5hZTIwOTQzYjUzZjZiZTA1MjZmZDA4MDQ4MzNiOWQ1NDFhNDA1ZGIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MubW0KQEAgLTI3Miwx
NSArMjcyLDYgQEAgdm9pZCBDbGlwYm9hcmRJT1M6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmLCBGcmFtZSopCiB7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9p
ZCBDbGlwYm9hcmRJT1M6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50
LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZyYW1lKiBmcmFtZSkKLXsK
LSAgICBBU1NFUlQoZnJhbWUpOwotICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkK
LSAgICAgICAgcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+Y2xpZW50KCktPmRlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZShtX3Bhc3RlYm9hcmQuZ2V0KCksIGtpdChlbGVtZW50KSwgdXJsLCB0aXRsZSwg
ZnJhbWUpOwotfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KIERyYWdJbWFnZVJl
ZiBDbGlwYm9hcmRJT1M6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJv
YXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQpp
bmRleCA1N2M3YjMxZjFkNjlmODU4OWVmMGYxZjdkZGM2ZTBjOGNkNDI2ZDVjLi43MzY0NGRkODAx
NTEwMTQwNGQzMGUyNzJjZTg2NGQ3YTc2NzM2MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9DbGlwYm9hcmRNYWMubW0KQEAgLTQwLDEzICs0MCw2IEBACiAjaW1wb3J0ICJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIENsaXBib2Fy
ZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQotewotICAgIEFTU0VSVChm
cmFtZSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdl
LT5kcmFnQ29udHJvbGxlcigpLT5jbGllbnQoKS0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKG1f
cGFzdGVib2FyZC0+bmFtZSgpLCBraXQoZWxlbWVudCksIHVybCwgdGl0bGUsIGZyYW1lKTsKLX0K
ICAgICAKIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYg
bG9jYXRpb24pIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9DbGlwYm9hcmRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRR
dC5jcHAKaW5kZXggZjJlNjQxMzUyMzU3NzUwZDM1ZGMxZTgzYTlkODY4MjA5ZGZkYzQ0Ny4uZmE0
ZGM5OWU1MTYxODMzYjk2ZTQ4YTdhZjI1MTgwYzllZmNlM2QzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcApAQCAtNTYsOSArNTYsNCBAQCBEcmFnSW1hZ2VS
ZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAog
ICAgIHJldHVybiAwOyAvLyBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY3Jl
YXRlIGEgZHJhZyBpbWFnZSwgdXNlIHRoZSBkZWZhdWx0IGljb24uCiB9CiAKLXZvaWQgQ2xpcGJv
YXJkOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGcmFtZSogZnJhbWUpCi17Ci0gICAgbV9wYXN0
ZWJvYXJkLT53cml0ZUltYWdlKGVsZW1lbnQtPnRvTm9kZSgpLCB1cmwsIGxhYmVsKTsKLX0KLQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAppbmRleCBl
ZGZlMjM3NGUzNzAwZDQ5ZGFkMDRiMjdjNGZlODFmNjE1MDc1MjI3Li41YzY1YzFmZDk5NTFmNDdi
YzAxN2I5Y2I2OGE0ZTcyY2E0MGQ0MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNTgsMzEgKzU4LDQgQEAgRHJhZ0ltYWdlUmVmIENsaXBi
b2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12b2lkIENsaXBi
b2FyZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQotewotICAgIC8vIE9y
ZGVyIGlzIGltcG9ydGFudCBoZXJlIGZvciBFeHBsb3JlcidzIHNha2UKLSAgICBpZiAoIW1fcGFz
dGVib2FyZC0+d3JpdGFibGVEYXRhT2JqZWN0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3Bh
c3RlYm9hcmQtPndyaXRlVVJMVG9Xcml0YWJsZURhdGFPYmplY3QodXJsLCB0aXRsZSk7Ci0gICAg
bV9wYXN0ZWJvYXJkLT53cml0ZUltYWdlVG9EYXRhT2JqZWN0KGVsZW1lbnQsIHVybCk7Ci0gICAg
QXRvbWljU3RyaW5nIGltYWdlVVJMID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
c3JjQXR0cik7Ci0gICAgaWYgKGltYWdlVVJMLmlzRW1wdHkoKSkgCi0gICAgICAgIHJldHVybjsK
LQotICAgIEtVUkwgZnVsbFVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzdHJp
cExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaW1hZ2VVUkwpKTsKLSAgICBpZiAoZnVsbFVS
TC5pc0VtcHR5KCkpIAotICAgICAgICByZXR1cm47Ci0gICAgU1RHTUVESVVNIG1lZGl1bSA9IHsw
fTsKLSAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwotCi0gICAgLy8gUHV0IGltZyB0
YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKLSAgICBWZWN0b3I8Y2hh
cj4gZGF0YTsKLSAgICBtYXJrdXBUb0NGSFRNTChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVk
ZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSwgIiIsIGRhdGEpOwotICAgIG1lZGl1bS5oR2xvYmFs
ID0gY3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKLSAgICBpZiAobWVkaXVtLmhHbG9iYWwgJiYgRkFJ
TEVEKG1fcGFzdGVib2FyZC0+d3JpdGFibGVEYXRhT2JqZWN0KCktPlNldERhdGEoaHRtbEZvcm1h
dCgpLCAmbWVkaXVtLCBUUlVFKSkpCi0gICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEdsb2Jh
bCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDhhNTEwZGRlY2U5YjUyMTgz
ODNiMDA3OTBkODAzOWVjYWY4ZjkxYzEuLjdiOTU4ZmQ2YzU0NmZjNTExN2UzNTY4ODI5NjM5YWM5
MTI0ZDk0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdp
bi5jcHAKQEAgLTUwNCw4ICs1MDQsNiBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0
VG9EYXRhT2JqZWN0KGNvbnN0IFN0cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aQogICAgIG1l
ZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShzdHIpOwogICAgIGlmIChtZWRpdW0uaEds
b2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEocGxhaW5UZXh0V0Zv
cm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCiAgICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEds
b2JhbCk7ICAgICAgICAKLQotICAgIG1lZGl1bS5oR2xvYmFsID0gMDsKIH0KIAogdm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9w
dGlvbiBzbWFydFJlcGxhY2VPcHRpb24pCkBAIC0xMDU1LDQgKzEwNTMsMTcgQEAgdm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZVVSTFRvV3JpdGFibGVEYXRhT2JqZWN0KGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB0aXQKICAgICBXZWJDb3JlOjp3cml0ZVVSTChtX3dyaXRhYmxlRGF0YU9iamVj
dC5nZXQoKSwgdXJsLCB0aXRsZSwgdHJ1ZSwgZmFsc2UpOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlTWFya3VwKGNvbnN0IFN0cmluZyYgbWFya3VwKQoreworICAgIFZlY3RvcjxjaGFyPiBk
YXRhOworICAgIG1hcmt1cFRvQ0ZIVE1MKG1hcmt1cCwgIiIsIGRhdGEpOworCisgICAgU1RHTUVE
SVVNIG1lZGl1bSA9IHswfTsKKyAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOworCisg
ICAgbWVkaXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9iYWxEYXRhKGRhdGEpOworICAgIGlmIChtZWRp
dW0uaEdsb2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEoaHRtbEZv
cm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCisgICAgICAgIEdsb2JhbEZyZWUobWVkaXVtLmhHbG9i
YWwpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204791</attachid>
            <date>2013-06-16 11:49:27 -0700</date>
            <delta_ts>2013-06-16 11:59:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117683-20130616114742.patch</filename>
            <type>text/plain</type>
            <size>19526</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQyNDgwMjU0OWI0Njlm
MzM4NWU4ZmIzYTYyMzE0NmUzMGVjYjlkMy4uMjYzMjZiNTljMjQwYjc4YjVhMWJiMDU0M2U0ZjJh
NzE2MTYyMTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA2LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIENsaXBib2FyZDo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlIHRvIERyYWdDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc2ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogUmVtb3Zl
ZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEltYWdlQmVmb3JlRHJhZ2dpbmcpOiBI
YWxmIG9mIHRoZSBvbGQgcHJlcGFyZUNsaXBib2FyZEZvckltYWdlRHJhZworICAgICAgICBpcyBu
b3cgcmVmYWN0b3JlZCBpbnRvIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6c3RhcnREcmFnKTogV2hlcmUgd2UgY2FsbGVkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcsCisgICAgICAgIGluc3RlYWQgY2FsbCBzZWxlY3RJbWFnZUJlZm9yZURyYWdn
aW5nIGFuZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuIFRoaXMgaXMgbmVlZGVkCisgICAgICAg
IGJlY2F1c2UgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlIG5lZWRzIHRvIGJlIGEgbWVtYmVyIGZ1
bmN0aW9uLCBmb3IgTWFjIGF0IGxlYXN0LgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxl
ci5oOiBBZGRlZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL2Vm
bC9EcmFnQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogQWRkZWQgZW1wdHkgcGxhY2Vob2xkZXIuCisg
ICAgICAgIEl0IHdvdWxkIGJlIGJldHRlciB0byBkZWxldGUgdGhpcyBmaWxlIHJhdGhlciB0aGFu
IGhhdmluZyB0aGVzZSBwbGFjZWhvbGRlcnMuCisgICAgICAgIEkgZG9uJ3QgdGhpbmsgRUZMIGFj
dHVhbGx5IGhhcyBkcmFnIHN1cHBvcnQsIGFuZCBpdCBtYWtlcyB3b3JrIHRvIGhhdmUgdG8ga2Vl
cAorICAgICAgICBzb3VyY2UgZmlsZXMgdXAgdG8gZGF0ZSB0aGF0IGFyZSByZWFsbHkgdW51c2Vk
LgorCisgICAgICAgICogcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVk
LiBDYWxscyBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBDYWxscyB0byBEcmFnQ2xpZW50LCB3aGljaAor
ICAgICAgICBkb2VzIHRoZSB3b3JrLgorICAgICAgICAqIHBhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKTogQWRkZWQuIENhbGxzIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UuCisgICAgICAg
ICogcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBVc2VzIFBhc3Rl
Ym9hcmQgZnVuY3Rpb25zIHRvCisgICAgICAgIGRvIHRoZSB3b3JrLgorCisgICAgICAgICogcGxh
dGZvcm0vUGFzdGVib2FyZC5oOiBBZGRlZCBhIG5ldyB3cml0ZU1hcmt1cCBmdW5jdGlvbiwgaW1w
bGVtZW50ZWQgb25seSBmb3IgV2luZG93cworICAgICAgICBhdCB0aGlzIHRpbWUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcDogRGVsZXRlZCBkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vcXQv
Q2xpcGJvYXJkUXQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
V2luLmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRvRGF0YU9i
amVjdCk6IFRvb2sgb3V0IGEgcG9pbnRsZXNzIGxpbmUgb2YgY29kZS4KKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OndyaXRlTWFya3VwKTogQWRkZWQuIEN1cnJlbnRseSBpbXBsZW1lbnRl
ZCBvbmx5IGZvciBXaW5kb3dzLgorICAgICAgICBUaGlzIGZhY3RvcnMgb3V0IGEgc2lnbmlmaWNh
bnQgcGllY2Ugb2YgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSwKKyAg
ICAgICAgYW5kIHdpbGwgcHJvYmFibHkgYmUgaGFuZHkgZm9yIG90aGVyIHBsYXRmb3JtcyBsYXRl
ci4KKwogMjAxMy0wNi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVHJ5IHRvIGZpeCBpT1MgYWZ0ZXIgbGFzdCBQYXN0ZWJvYXJkIGNoYW5nZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaAppbmRleCBjNWQ0NzJlZTRmYjkyZjUwNGY4YjM2MmI1NjM5ZTEzMGE1ODk3ZjRi
Li5kNjQ2YzJiZTFhYzM2YTU2N2UzNDI0OWYwZGUwMmU5ZWMxZGMyNjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5oCkBAIC0xMDAsOSArMTAwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBOb2RlKiBkcmFnSW1hZ2VFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnSW1hZ2VFbGVt
ZW50LmdldCgpOyB9CiAgICAgICAgIAogICAgICAgICBMRUdBQ1lfVklSVFVBTCBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0IExFR0FDWV9Q
VVJFOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgIExFR0FDWV9WSVJUVUFMIHZv
aWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgRnJhbWUqKSBMRUdBQ1lfUFVSRTsKLSNlbmRpZgogICAgICAgICBMRUdB
Q1lfVklSVFVBTCB2b2lkIHdyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopIExFR0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lkIHdyaXRlUmFuZ2Uo
UmFuZ2UqLCBGcmFtZSopIExFR0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lk
IHdyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpIExFR0FDWV9QVVJFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA3YjQyMmIwNjgxZGU4ZmUyM2Y4ZDUzMTVjN2Iz
NjBhODAyZDY1ZWFhLi5jMTcwMzk0Njk2NzI3N2FhMzEzYTlhMjM2Mzc5OWMzNDJlYWI5MzExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNzAwLDE0ICs3MDAsMTMg
QEAgc3RhdGljIEltYWdlKiBnZXRJbWFnZShFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBjYWNo
ZWRJbWFnZS0+aW1hZ2UoKSA6IDA7CiB9CiAKLXN0YXRpYyB2b2lkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcoRnJhbWUqIHNvdXJjZSwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQq
IG5vZGUsIGNvbnN0IEtVUkwmIGxpbmtVUkwsIGNvbnN0IEtVUkwmIGltYWdlVVJMLCBjb25zdCBT
dHJpbmcmIGxhYmVsKQorc3RhdGljIHZvaWQgc2VsZWN0SW1hZ2VCZWZvcmVEcmFnZ2luZyhFbGVt
ZW50KiBlbGVtZW50KQogewotICAgIGlmIChub2RlLT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgp
KSB7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzb3VyY2UtPmRvY3VtZW50KCktPmNy
ZWF0ZVJhbmdlKCk7Ci0gICAgICAgIHJhbmdlLT5zZWxlY3ROb2RlKG5vZGUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwotICAgICAgICBzb3VyY2UtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbihyYW5nZS5nZXQoKSwgRE9XTlNUUkVBTSkpOworICAgIGlmIChlbGVtZW50
LT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpKSB7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5jcmVhdGVSYW5nZSgpOworICAgICAgICByYW5nZS0+
c2VsZWN0Tm9kZShlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKHJhbmdlLmdldCgpLCBET1dOU1RSRUFNKSk7CiAgICAgfQotICAgIGNsaXBib2Fy
ZC0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKG5vZGUsICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxp
bmtVUkwgOiBpbWFnZVVSTCwgbGFiZWwsIHNvdXJjZSk7CiB9CiAKIHN0YXRpYyBJbnRQb2ludCBk
cmFnTG9jRm9yREhUTUxEcmFnKGNvbnN0IEludFBvaW50JiBtb3VzZURyYWdnZWRQb2ludCwgY29u
c3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFnSW1hZ2VPZmZzZXQs
IGJvb2wgaXNMaW5rSW1hZ2UpCkBAIC04MDUsMTQgKzgwNCwxNCBAQCBib29sIERyYWdDb250cm9s
bGVyOjpzdGFydERyYWcoRnJhbWUqIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09w
ZXJhdGlvbgogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09yaWdpbi54
KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CiAgICAgICAg
IH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkLCBzcmMsIGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKCFpbWFnZVVSTC5pc0VtcHR5
KCkgJiYgZWxlbWVudCAmJiBpbWFnZSAmJiAhaW1hZ2UtPmlzTnVsbCgpCi0gICAgICAgICAgICAg
ICAmJiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkltYWdlKSkgeworICAg
IH0gZWxzZSBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSAmJiBlbGVtZW50ICYmIGltYWdlICYmICFp
bWFnZS0+aXNOdWxsKCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25J
bWFnZSkpIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGJlIHN0YXJ0aW5nIGEgZHJhZyBmb3Ig
YW4gaW1hZ2UgdGhhdCBjYW4ndCBwcm92aWRlIGFuIGV4dGVuc2lvbi4KICAgICAgICAgLy8gVGhp
cyBpcyBhbiBlYXJseSBkZXRlY3Rpb24gZm9yIHByb2JsZW1zIGVuY291bnRlcmVkIGxhdGVyIHVw
b24gZHJvcC4KICAgICAgICAgQVNTRVJUKCFpbWFnZS0+ZmlsZW5hbWVFeHRlbnNpb24oKS5pc0Vt
cHR5KCkpOwogICAgICAgICBpZiAoIWNsaXBib2FyZC0+aGFzRGF0YSgpKSB7CiAgICAgICAgICAg
ICBtX2RyYWdnaW5nSW1hZ2VVUkwgPSBpbWFnZVVSTDsKLSAgICAgICAgICAgIHByZXBhcmVDbGlw
Ym9hcmRGb3JJbWFnZURyYWcoc3JjLCBjbGlwYm9hcmQsIGVsZW1lbnQsIGxpbmtVUkwsIGltYWdl
VVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CisgICAgICAgICAgICBzZWxl
Y3RJbWFnZUJlZm9yZURyYWdnaW5nKGVsZW1lbnQpOworICAgICAgICAgICAgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKGNsaXBib2FyZCwgZWxlbWVudCwgIWxpbmtVUkwuaXNFbXB0eSgpID8gbGlu
a1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBtX2NsaWVudC0+d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERy
YWdTb3VyY2VBY3Rpb25JbWFnZSwgZHJhZ09yaWdpbiwgY2xpcGJvYXJkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA5ZmU3YTY0ZDFiOTg5NzQ4MmRiM2U1NzgwOTY2OGJj
YTk1ZWM4MmYyLi5hZWViYTE4NzMwNWEwZTAwNmZlNDJhZjJjMzJlZmE4MGFlMDcyMTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC00MSwxMiArNDEsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRnJhbWVTZWxlY3Rpb247
CiAgICAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKLSAgICBjbGFzcyBJbWFnZTsKICAgICBjbGFz
cyBJbnRSZWN0OwotICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBQ
bGF0Zm9ybU1vdXNlRXZlbnQ7Ci0gICAgY2xhc3MgUmFuZ2U7CiAKICAgICBzdHJ1Y3QgRHJhZ1Nl
c3Npb247CiAgICAgc3RydWN0IERyYWdTdGF0ZTsKQEAgLTExMyw2ICsxMTAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCosIGNvbnN0IElu
dFBvaW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2FyZCosIEZyYW1lKiwgSW50UG9pbnQmKTsK
ICAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYs
IGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkKiwgRnJhbWUqLCBib29sIGZvckxpbmspOwogICAg
ICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsKKyAgICAgICAgdm9pZCBkZWNsYXJl
QW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIGxhYmVsKTsKIAogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIERyYWdD
bGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJh
Z0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xs
ZXJFZmwuY3BwCmluZGV4IGY1YzBlY2NjZGQ4NDY4YjJlN2YxNGMzZTNjODMxY2ViYWE2NTQzYjAu
LjI3NTBlMmUzOWQ2NzVkYjIyODk3OGZmMTdkNGZlMDRlODhmYzVkOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAKQEAgLTY0LDYgKzY0LDExIEBA
IGNvbnN0IEludFNpemUmIERyYWdDb250cm9sbGVyOjptYXhEcmFnSW1hZ2VTaXplKCkKIH0KIAog
dm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCi17fQoreworfQor
Cit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJk
KiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKQoreworfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKaW5kZXggMjk3NDll
MmZlZDE4Y2ZkNDRiZTY1ZmIyOWI5YjI5YzRkOTIxN2U5NC4uMjVkODBhODk2ODdmN2FlNmY1Y2Mw
NGRhMjdiYzRkYWVlMTY5NWY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RHJhZ0NvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdD
b250cm9sbGVyR3RrLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgog
I2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY2LDQgKzY4LDkgQEAgdm9pZCBEcmFnQ29udHJvbGxl
cjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiB7CiB9CiAKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6
OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNsaXBib2FyZCwgRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIGNs
aXBib2FyZC0+cGFzdGVib2FyZCgpLndyaXRlSW1hZ2UoZWxlbWVudCwgdXJsLCBsYWJlbCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVy
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KaW5k
ZXggNzBhMTBhNzRjNjIxNDExNjI5MDM0NDM5MThmNWViZDEzODA4NjVlNS4uNzI2MzAxZjM4MTNl
MjBjMzYxOGQ1NDQ2YzczYWNjZTBiYWE3Y2QwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KQEAgLTI3LDEwICsyNywxNSBAQAogI2ltcG9ydCAiRHJh
Z0NvbnRyb2xsZXIuaCIKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaW1wb3J0ICJDbGlw
Ym9hcmQuaCIKKyNpbXBvcnQgIkRPTUVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRHJhZ0Ns
aWVudC5oIgogI2ltcG9ydCAiRHJhZ0RhdGEuaCIKKyNpbXBvcnQgIkVsZW1lbnQuaCIKICNpbXBv
cnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIlBhZ2UuaCIKKyNp
bXBvcnQgIlBhc3RlYm9hcmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSw2ICs4
NCwxMSBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCkKICAg
ICAgICAgZHJhZ0VuZGVkKCk7CiB9CiAKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRX
cml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNsaXBib2FyZCwgRWxlbWVudCogZWxlbWVudCwgY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIGNsaWVudCgpLT5kZWNs
YXJlQW5kV3JpdGVEcmFnSW1hZ2UoY2xpcGJvYXJkLT5wYXN0ZWJvYXJkKCkubmFtZSgpLCBraXQo
ZWxlbWVudCksIHVybCwgbGFiZWwsIGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9EcmFnQ29udHJvbGxlclF0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJRdC5jcHAKaW5kZXggMzQ5
MzdlNzQ4NmE5OTZlZDQ5N2NiN2NhNWU2Nzk0ZDA2NWMxZWY3NS4uODU0MzUxYzQ3YzA4MTZkNGY1
NDM1NWRjYjg1ZTQ3ZWY2ZjhiOGM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9x
dC9EcmFnQ29udHJvbGxlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3F0L0RyYWdD
b250cm9sbGVyUXQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAj
aW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjgsNCArNzAsOSBAQCB2b2lkIERyYWdDb250cm9sbGVy
OjpjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCkKIHsKIH0KIAordm9pZCBEcmFnQ29udHJvbGxlcjo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKENsaXBib2FyZCogY2xpcGJvYXJkLCBFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwpCit7CisgICAgY2xp
cGJvYXJkLT5wYXN0ZWJvYXJkKCkud3JpdGVJbWFnZShlbGVtZW50LCB1cmwsIGxhYmVsKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmlu
ZGV4IGE3YmU2ZDhhYmI4MjUxMDdhNGFjZWE1OGI4YmE0MjU1Y2Y3NDA2YzEuLjRjNzRjZTA5ZjQ0
YjJmY2I1NzZiYmMwMmExMzM5ZjA5Nzg0Y2I0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKQEAgLTY2LDQgKzY2LDE4IEBAIHZvaWQgRHJhZ0Nv
bnRyb2xsZXI6OmNsZWFudXBBZnRlclN5c3RlbURyYWcoKQogewogfQogCit2b2lkIERyYWdDb250
cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVs
ZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sK
KyAgICBQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gY2xpcGJvYXJkLT5wYXN0ZWJvYXJkKCk7CisK
KyAgICAvLyBGSVhNRTogRG8gd2UgcmVhbGx5IG5lZWQgdGhpcyBjaGVjaz8KKyAgICBpZiAoIXBh
c3RlYm9hcmQtPndyaXRhYmxlRGF0YU9iamVjdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBPcmRlciBpcyBpbXBvcnRhbnQgaGVyZSBmb3IgRXhwbG9yZXIncyBzYWtlCisgICAgcGFzdGVi
b2FyZC0+d3JpdGVVUkxUb1dyaXRhYmxlRGF0YU9iamVjdCh1cmwsIGxhYmVsKTsKKyAgICBwYXN0
ZWJvYXJkLT53cml0ZUltYWdlVG9EYXRhT2JqZWN0KGVsZW1lbnQsIHVybCk7CisgICAgcGFzdGVi
b2FyZC0+d3JpdGVNYXJrdXAoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBS
ZXNvbHZlQWxsVVJMcykpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgK
aW5kZXggOTM2YjI4NDY5OTM1MmEwMjI2NGYxODNiNjMzN2Q3MTFhZjY5NTRhMC4uMjgwMzI4ZDM1
ZGMxZjM5NjIxMjMzYWVkOThkOWE1MTNkMzNkZjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaApAQCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgd3JpdGVT
dHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwogICAgIHZvaWQg
d3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSos
IFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCA9IERlZmF1bHRTZWxlY3Rl
ZFRleHRUeXBlKTsKKyAgICB2b2lkIHdyaXRlTWFya3VwKGNvbnN0IFN0cmluZyYgbWFya3VwKTsK
ICAgICB2b2lkIHdyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYsIFNtYXJ0UmVwbGFjZU9wdGlv
bik7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHdyaXRlVVJMKGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmLCBGcmFtZSogPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NsaXBib2FyZEVmbC5jcHAKaW5kZXggYThjOTQwOGFmNDdlZDQxZTljNmFjNWM4ZjRhYTMzZTNi
NzY4YTcxYS4uZjBlY2NmOWMyYjY2NjAzYmQzZGNlMTE5MTAxNGU4ZjM5YzQ4MjNmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAKQEAgLTMzLDEzICsz
Myw2IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9p
ZCBDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiwgY29uc3QgS1VS
TCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQot
I2VuZGlmCi0KICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKIFBhc3NSZWZQdHI8RGF0
YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZDo6aXRlbXMoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcAppbmRleCBkMzg4YjViNmMxNzBmN2NkMzVl
YzQwN2VmMWFhZWFmNGM0ZjZiMjc5Li44MGU5Y2E3MmU0YzhlNzYwOTAwYmM3YmIwNzJjZWM1ODM0
YTYxNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJk
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNw
cApAQCAtNDIsOSArNDIsNCBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1h
Z2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogICAgIHJldHVybiAwOyAvLyBXZSBkbyBub3Qg
aGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY3JlYXRlIGEgZHJhZyBpbWFnZSwgdXNlIHRoZSBk
ZWZhdWx0IGljb24uCiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVs
LCBGcmFtZSogZnJhbWUpCi17Ci0gICAgbV9wYXN0ZWJvYXJkLT53cml0ZUltYWdlKGVsZW1lbnQt
PnRvTm9kZSgpLCB1cmwsIGxhYmVsKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0NsaXBib2FyZElPUy5oCmluZGV4IDUwMDE5M2NmMzc1YTNjNGI5YTBmMWM5OGRjMWM0Yzgw
ZGQ5ZTgzY2IuLmZlNWJkNzFjOGJjMTYzYWM4NWQxYzI0NWVkOWFlZmRjNzI0NjgzMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLmgKQEAgLTU5LDkgKzU5LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREcmFnSW1hZ2VFbGVtZW50KE5vZGUgKiwg
Y29uc3QgSW50UG9pbnQmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgZHJhZ0xvYykgY29uc3QgT1ZFUlJJREU7Ci0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0lt
YWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqKSBP
VkVSUklERTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVJhbmdlKFJhbmdlKiwgRnJh
bWUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVVUkwoY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYsIEZyYW1lKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUGxh
aW5UZXh0KGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9DbGlwYm9hcmRJT1MubW0KaW5kZXggNTg1YjZiNWIzM2NkYjg0Nzk0MWI5MTI2NmM3NTVk
MGY4NzQ3MWNkMS4uYWUyMDk0M2I1M2Y2YmUwNTI2ZmQwODA0ODMzYjlkNTQxYTQwNWRiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLm1tCkBAIC0yNzIsMTUg
KzI3Miw2IEBAIHZvaWQgQ2xpcGJvYXJkSU9TOjp3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiwgRnJhbWUqKQogewogfQogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLXZvaWQg
Q2xpcGJvYXJkSU9TOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBGcmFtZSogZnJhbWUpCi17Ci0g
ICAgQVNTRVJUKGZyYW1lKTsKLSAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0g
ICAgICAgIHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmNsaWVudCgpLT5kZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UobV9wYXN0ZWJvYXJkLmdldCgpLCBraXQoZWxlbWVudCksIHVybCwgdGl0bGUsIGZy
YW1lKTsKLX0KLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQotCiBEcmFnSW1hZ2VSZWYg
Q2xpcGJvYXJkSU9TOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmKSBjb25zdAogewogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2Fy
ZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW0KaW5k
ZXggNTdjN2IzMWYxZDY5Zjg1ODllZjBmMWY3ZGRjNmUwYzhjZDQyNmQ1Yy4uNzM2NDRkZDgwMTUx
MDE0MDRkMzBlMjcyY2U4NjRkN2E3NjczNjA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvQ2xpcGJvYXJkTWFjLm1tCkBAIC00MCwxMyArNDAsNiBAQAogI2ltcG9ydCAiUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBDbGlwYm9hcmQ6
OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBBU1NFUlQoZnJh
bWUpOwotICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS0+Y2xpZW50KCktPmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShtX3Bh
c3RlYm9hcmQtPm5hbWUoKSwga2l0KGVsZW1lbnQpLCB1cmwsIHRpdGxlLCBmcmFtZSk7Ci19CiAg
ICAgCiBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxv
Y2F0aW9uKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
Q2xpcGJvYXJkUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQu
Y3BwCmluZGV4IGYyZTY0MTM1MjM1Nzc1MGQzNWRjMWU4M2E5ZDg2ODIwOWRmZGM0NDcuLmZhNGRj
OTllNTE2MTgzM2I5NmU0OGE3YWYyNTE4MGM5ZWZjZTNkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKQEAgLTU2LDkgKzU2LDQgQEAgRHJhZ0ltYWdlUmVm
IENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKICAg
ICByZXR1cm4gMDsgLy8gV2UgZG8gbm90IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNyZWF0
ZSBhIGRyYWcgaW1hZ2UsIHVzZSB0aGUgZGVmYXVsdCBpY29uLgogfQogCi12b2lkIENsaXBib2Fy
ZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqIGZyYW1lKQotewotICAgIG1fcGFzdGVi
b2FyZC0+d3JpdGVJbWFnZShlbGVtZW50LT50b05vZGUoKSwgdXJsLCBsYWJlbCk7Ci19Ci0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKaW5kZXggZWRm
ZTIzNzRlMzcwMGQ0OWRhZDA0YjI3YzRmZTgxZjYxNTA3NTIyNy4uNWM2NWMxZmQ5OTUxZjQ3YmMw
MTdiOWNiNjhhNGU3MmNhNDBkNDEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0NsaXBib2FyZFdpbi5jcHAKQEAgLTU4LDMxICs1OCw0IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9h
cmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgZHJhZ0xvY2F0aW9uKSBjb25zdAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9pZCBDbGlwYm9h
cmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICAvLyBPcmRl
ciBpcyBpbXBvcnRhbnQgaGVyZSBmb3IgRXhwbG9yZXIncyBzYWtlCi0gICAgaWYgKCFtX3Bhc3Rl
Ym9hcmQtPndyaXRhYmxlRGF0YU9iamVjdCgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9wYXN0
ZWJvYXJkLT53cml0ZVVSTFRvV3JpdGFibGVEYXRhT2JqZWN0KHVybCwgdGl0bGUpOwotICAgIG1f
cGFzdGVib2FyZC0+d3JpdGVJbWFnZVRvRGF0YU9iamVjdChlbGVtZW50LCB1cmwpOwotICAgIEF0
b21pY1N0cmluZyBpbWFnZVVSTCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNy
Y0F0dHIpOwotICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkpIAotICAgICAgICByZXR1cm47Ci0K
LSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdlVVJMKSk7Ci0gICAgaWYgKGZ1bGxVUkwu
aXNFbXB0eSgpKSAKLSAgICAgICAgcmV0dXJuOwotICAgIFNUR01FRElVTSBtZWRpdW0gPSB7MH07
Ci0gICAgbWVkaXVtLnR5bWVkID0gVFlNRURfSEdMT0JBTDsKLQotICAgIC8vIFB1dCBpbWcgdGFn
IG9uIHRoZSBjbGlwYm9hcmQgcmVmZXJlbmNpbmcgdGhlIGltYWdlCi0gICAgVmVjdG9yPGNoYXI+
IGRhdGE7Ci0gICAgbWFya3VwVG9DRkhUTUwoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVO
b2RlLCAwLCBSZXNvbHZlQWxsVVJMcyksICIiLCBkYXRhKTsKLSAgICBtZWRpdW0uaEdsb2JhbCA9
IGNyZWF0ZUdsb2JhbERhdGEoZGF0YSk7Ci0gICAgaWYgKG1lZGl1bS5oR2xvYmFsICYmIEZBSUxF
RChtX3Bhc3RlYm9hcmQtPndyaXRhYmxlRGF0YU9iamVjdCgpLT5TZXREYXRhKGh0bWxGb3JtYXQo
KSwgJm1lZGl1bSwgVFJVRSkpKQotICAgICAgICA6Okdsb2JhbEZyZWUobWVkaXVtLmhHbG9iYWwp
OwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA4YTUxMGRkZWNlOWI1MjE4Mzgz
YjAwNzkwZDgwMzllY2FmOGY5MWMxLi43Yjk1OGZkNmM1NDZmYzUxMTdlMzU2ODgyOTYzOWFjOTEy
NGQ5NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2Fy
ZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCkBAIC01MDQsOCArNTA0LDYgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRv
RGF0YU9iamVjdChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGkKICAgICBtZWRp
dW0uaEdsb2JhbCA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKICAgICBpZiAobWVkaXVtLmhHbG9i
YWwgJiYgRkFJTEVEKG1fd3JpdGFibGVEYXRhT2JqZWN0LT5TZXREYXRhKHBsYWluVGV4dFdGb3Jt
YXQoKSwgJm1lZGl1bSwgVFJVRSkpKQogICAgICAgICA6Okdsb2JhbEZyZWUobWVkaXVtLmhHbG9i
YWwpOyAgICAgICAgCi0KLSAgICBtZWRpdW0uaEdsb2JhbCA9IDA7CiB9CiAKIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRp
b24gc21hcnRSZXBsYWNlT3B0aW9uKQpAQCAtMTA1NSw0ICsxMDUzLDE3IEBAIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVVUkxUb1dyaXRhYmxlRGF0YU9iamVjdChjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdGl0CiAgICAgV2ViQ29yZTo6d3JpdGVVUkwobV93cml0YWJsZURhdGFPYmplY3Qu
Z2V0KCksIHVybCwgdGl0bGUsIHRydWUsIGZhbHNlKTsKIH0KIAordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmIG1hcmt1cCkKK3sKKyAgICBWZWN0b3I8Y2hhcj4gZGF0
YTsKKyAgICBtYXJrdXBUb0NGSFRNTChtYXJrdXAsICIiLCBkYXRhKTsKKworICAgIFNUR01FRElV
TSBtZWRpdW0gPSB7MH07CisgICAgbWVkaXVtLnR5bWVkID0gVFlNRURfSEdMT0JBTDsKKworICAg
IG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKKyAgICBpZiAobWVkaXVt
LmhHbG9iYWwgJiYgRkFJTEVEKG1fd3JpdGFibGVEYXRhT2JqZWN0LT5TZXREYXRhKGh0bWxGb3Jt
YXQoKSwgJm1lZGl1bSwgVFJVRSkpKQorICAgICAgICBHbG9iYWxGcmVlKG1lZGl1bS5oR2xvYmFs
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204792</attachid>
            <date>2013-06-16 11:59:13 -0700</date>
            <delta_ts>2013-06-23 18:02:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117683-20130616115728.patch</filename>
            <type>text/plain</type>
            <size>19570</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQyNDgwMjU0OWI0Njlm
MzM4NWU4ZmIzYTYyMzE0NmUzMGVjYjlkMy4uMjYzMjZiNTljMjQwYjc4YjVhMWJiMDU0M2U0ZjJh
NzE2MTYyMTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA2LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIENsaXBib2FyZDo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlIHRvIERyYWdDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc2ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogUmVtb3Zl
ZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEltYWdlQmVmb3JlRHJhZ2dpbmcpOiBI
YWxmIG9mIHRoZSBvbGQgcHJlcGFyZUNsaXBib2FyZEZvckltYWdlRHJhZworICAgICAgICBpcyBu
b3cgcmVmYWN0b3JlZCBpbnRvIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6c3RhcnREcmFnKTogV2hlcmUgd2UgY2FsbGVkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcsCisgICAgICAgIGluc3RlYWQgY2FsbCBzZWxlY3RJbWFnZUJlZm9yZURyYWdn
aW5nIGFuZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuIFRoaXMgaXMgbmVlZGVkCisgICAgICAg
IGJlY2F1c2UgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlIG5lZWRzIHRvIGJlIGEgbWVtYmVyIGZ1
bmN0aW9uLCBmb3IgTWFjIGF0IGxlYXN0LgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxl
ci5oOiBBZGRlZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL2Vm
bC9EcmFnQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogQWRkZWQgZW1wdHkgcGxhY2Vob2xkZXIuCisg
ICAgICAgIEl0IHdvdWxkIGJlIGJldHRlciB0byBkZWxldGUgdGhpcyBmaWxlIHJhdGhlciB0aGFu
IGhhdmluZyB0aGVzZSBwbGFjZWhvbGRlcnMuCisgICAgICAgIEkgZG9uJ3QgdGhpbmsgRUZMIGFj
dHVhbGx5IGhhcyBkcmFnIHN1cHBvcnQsIGFuZCBpdCBtYWtlcyB3b3JrIHRvIGhhdmUgdG8ga2Vl
cAorICAgICAgICBzb3VyY2UgZmlsZXMgdXAgdG8gZGF0ZSB0aGF0IGFyZSByZWFsbHkgdW51c2Vk
LgorCisgICAgICAgICogcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVk
LiBDYWxscyBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBDYWxscyB0byBEcmFnQ2xpZW50LCB3aGljaAor
ICAgICAgICBkb2VzIHRoZSB3b3JrLgorICAgICAgICAqIHBhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKTogQWRkZWQuIENhbGxzIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UuCisgICAgICAg
ICogcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBVc2VzIFBhc3Rl
Ym9hcmQgZnVuY3Rpb25zIHRvCisgICAgICAgIGRvIHRoZSB3b3JrLgorCisgICAgICAgICogcGxh
dGZvcm0vUGFzdGVib2FyZC5oOiBBZGRlZCBhIG5ldyB3cml0ZU1hcmt1cCBmdW5jdGlvbiwgaW1w
bGVtZW50ZWQgb25seSBmb3IgV2luZG93cworICAgICAgICBhdCB0aGlzIHRpbWUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcDogRGVsZXRlZCBkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vcXQv
Q2xpcGJvYXJkUXQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
V2luLmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRvRGF0YU9i
amVjdCk6IFRvb2sgb3V0IGEgcG9pbnRsZXNzIGxpbmUgb2YgY29kZS4KKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OndyaXRlTWFya3VwKTogQWRkZWQuIEN1cnJlbnRseSBpbXBsZW1lbnRl
ZCBvbmx5IGZvciBXaW5kb3dzLgorICAgICAgICBUaGlzIGZhY3RvcnMgb3V0IGEgc2lnbmlmaWNh
bnQgcGllY2Ugb2YgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSwKKyAg
ICAgICAgYW5kIHdpbGwgcHJvYmFibHkgYmUgaGFuZHkgZm9yIG90aGVyIHBsYXRmb3JtcyBsYXRl
ci4KKwogMjAxMy0wNi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVHJ5IHRvIGZpeCBpT1MgYWZ0ZXIgbGFzdCBQYXN0ZWJvYXJkIGNoYW5nZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaAppbmRleCBjNWQ0NzJlZTRmYjkyZjUwNGY4YjM2MmI1NjM5ZTEzMGE1ODk3ZjRi
Li5kNjQ2YzJiZTFhYzM2YTU2N2UzNDI0OWYwZGUwMmU5ZWMxZGMyNjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5oCkBAIC0xMDAsOSArMTAwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBOb2RlKiBkcmFnSW1hZ2VFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnSW1hZ2VFbGVt
ZW50LmdldCgpOyB9CiAgICAgICAgIAogICAgICAgICBMRUdBQ1lfVklSVFVBTCBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0IExFR0FDWV9Q
VVJFOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgIExFR0FDWV9WSVJUVUFMIHZv
aWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgRnJhbWUqKSBMRUdBQ1lfUFVSRTsKLSNlbmRpZgogICAgICAgICBMRUdB
Q1lfVklSVFVBTCB2b2lkIHdyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopIExFR0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lkIHdyaXRlUmFuZ2Uo
UmFuZ2UqLCBGcmFtZSopIExFR0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lk
IHdyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpIExFR0FDWV9QVVJFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA3YjQyMmIwNjgxZGU4ZmUyM2Y4ZDUzMTVjN2Iz
NjBhODAyZDY1ZWFhLi5jMTcwMzk0Njk2NzI3N2FhMzEzYTlhMjM2Mzc5OWMzNDJlYWI5MzExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNzAwLDE0ICs3MDAsMTMg
QEAgc3RhdGljIEltYWdlKiBnZXRJbWFnZShFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBjYWNo
ZWRJbWFnZS0+aW1hZ2UoKSA6IDA7CiB9CiAKLXN0YXRpYyB2b2lkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcoRnJhbWUqIHNvdXJjZSwgQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQq
IG5vZGUsIGNvbnN0IEtVUkwmIGxpbmtVUkwsIGNvbnN0IEtVUkwmIGltYWdlVVJMLCBjb25zdCBT
dHJpbmcmIGxhYmVsKQorc3RhdGljIHZvaWQgc2VsZWN0SW1hZ2VCZWZvcmVEcmFnZ2luZyhFbGVt
ZW50KiBlbGVtZW50KQogewotICAgIGlmIChub2RlLT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgp
KSB7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzb3VyY2UtPmRvY3VtZW50KCktPmNy
ZWF0ZVJhbmdlKCk7Ci0gICAgICAgIHJhbmdlLT5zZWxlY3ROb2RlKG5vZGUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwotICAgICAgICBzb3VyY2UtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbihyYW5nZS5nZXQoKSwgRE9XTlNUUkVBTSkpOworICAgIGlmIChlbGVtZW50
LT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpKSB7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5jcmVhdGVSYW5nZSgpOworICAgICAgICByYW5nZS0+
c2VsZWN0Tm9kZShlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKHJhbmdlLmdldCgpLCBET1dOU1RSRUFNKSk7CiAgICAgfQotICAgIGNsaXBib2Fy
ZC0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKG5vZGUsICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxp
bmtVUkwgOiBpbWFnZVVSTCwgbGFiZWwsIHNvdXJjZSk7CiB9CiAKIHN0YXRpYyBJbnRQb2ludCBk
cmFnTG9jRm9yREhUTUxEcmFnKGNvbnN0IEludFBvaW50JiBtb3VzZURyYWdnZWRQb2ludCwgY29u
c3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGNvbnN0IEludFBvaW50JiBkcmFnSW1hZ2VPZmZzZXQs
IGJvb2wgaXNMaW5rSW1hZ2UpCkBAIC04MDUsMTQgKzgwNCwxNCBAQCBib29sIERyYWdDb250cm9s
bGVyOjpzdGFydERyYWcoRnJhbWUqIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09w
ZXJhdGlvbgogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09yaWdpbi54
KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CiAgICAgICAg
IH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFnZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkLCBzcmMsIGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKCFpbWFnZVVSTC5pc0VtcHR5
KCkgJiYgZWxlbWVudCAmJiBpbWFnZSAmJiAhaW1hZ2UtPmlzTnVsbCgpCi0gICAgICAgICAgICAg
ICAmJiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1NvdXJjZUFjdGlvbkltYWdlKSkgeworICAg
IH0gZWxzZSBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSAmJiBlbGVtZW50ICYmIGltYWdlICYmICFp
bWFnZS0+aXNOdWxsKCkgJiYgKG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25J
bWFnZSkpIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGJlIHN0YXJ0aW5nIGEgZHJhZyBmb3Ig
YW4gaW1hZ2UgdGhhdCBjYW4ndCBwcm92aWRlIGFuIGV4dGVuc2lvbi4KICAgICAgICAgLy8gVGhp
cyBpcyBhbiBlYXJseSBkZXRlY3Rpb24gZm9yIHByb2JsZW1zIGVuY291bnRlcmVkIGxhdGVyIHVw
b24gZHJvcC4KICAgICAgICAgQVNTRVJUKCFpbWFnZS0+ZmlsZW5hbWVFeHRlbnNpb24oKS5pc0Vt
cHR5KCkpOwogICAgICAgICBpZiAoIWNsaXBib2FyZC0+aGFzRGF0YSgpKSB7CiAgICAgICAgICAg
ICBtX2RyYWdnaW5nSW1hZ2VVUkwgPSBpbWFnZVVSTDsKLSAgICAgICAgICAgIHByZXBhcmVDbGlw
Ym9hcmRGb3JJbWFnZURyYWcoc3JjLCBjbGlwYm9hcmQsIGVsZW1lbnQsIGxpbmtVUkwsIGltYWdl
VVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CisgICAgICAgICAgICBzZWxl
Y3RJbWFnZUJlZm9yZURyYWdnaW5nKGVsZW1lbnQpOworICAgICAgICAgICAgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKGNsaXBib2FyZCwgZWxlbWVudCwgIWxpbmtVUkwuaXNFbXB0eSgpID8gbGlu
a1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJpbmcoKSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBtX2NsaWVudC0+d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERy
YWdTb3VyY2VBY3Rpb25JbWFnZSwgZHJhZ09yaWdpbiwgY2xpcGJvYXJkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA5ZmU3YTY0ZDFiOTg5NzQ4MmRiM2U1NzgwOTY2OGJj
YTk1ZWM4MmYyLi5hZWViYTE4NzMwNWEwZTAwNmZlNDJhZjJjMzJlZmE4MGFlMDcyMTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC00MSwxMiArNDEsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRnJhbWVTZWxlY3Rpb247
CiAgICAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKLSAgICBjbGFzcyBJbWFnZTsKICAgICBjbGFz
cyBJbnRSZWN0OwotICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBQ
bGF0Zm9ybU1vdXNlRXZlbnQ7Ci0gICAgY2xhc3MgUmFuZ2U7CiAKICAgICBzdHJ1Y3QgRHJhZ1Nl
c3Npb247CiAgICAgc3RydWN0IERyYWdTdGF0ZTsKQEAgLTExMyw2ICsxMTAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9JbWFnZURyYWcoRWxlbWVudCosIGNvbnN0IElu
dFBvaW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2FyZCosIEZyYW1lKiwgSW50UG9pbnQmKTsK
ICAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYs
IGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkKiwgRnJhbWUqLCBib29sIGZvckxpbmspOwogICAg
ICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsKKyAgICAgICAgdm9pZCBkZWNsYXJl
QW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIGxhYmVsKTsKIAogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIERyYWdD
bGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJh
Z0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xs
ZXJFZmwuY3BwCmluZGV4IGY1YzBlY2NjZGQ4NDY4YjJlN2YxNGMzZTNjODMxY2ViYWE2NTQzYjAu
LjI3NTBlMmUzOWQ2NzVkYjIyODk3OGZmMTdkNGZlMDRlODhmYzVkOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAKQEAgLTY0LDYgKzY0LDExIEBA
IGNvbnN0IEludFNpemUmIERyYWdDb250cm9sbGVyOjptYXhEcmFnSW1hZ2VTaXplKCkKIH0KIAog
dm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCi17fQoreworfQor
Cit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJk
KiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKQoreworfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKaW5kZXggMjk3NDll
MmZlZDE4Y2ZkNDRiZTY1ZmIyOWI5YjI5YzRkOTIxN2U5NC4uZDRkZTI3ZTI5YWZiZTEyZTlhNzI0
MTEzMmI1ZThlY2JmYTVjNzM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RHJhZ0NvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdD
b250cm9sbGVyR3RrLmNwcApAQCAtMjYsMTAgKzI2LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgog
I2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhc3RlYm9hcmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw0ICs2OSw5
IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5c3RlbURyYWcoKQogewogfQog
Cit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJk
KiBjbGlwYm9hcmQsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCkKK3sKKyAgICBjbGlwYm9hcmQtPnBhc3RlYm9hcmQoKS53cml0ZUltYWdlKGVs
ZW1lbnQsIHVybCwgbGFiZWwpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0Ry
YWdDb250cm9sbGVyTWFjLm1tCmluZGV4IDcwYTEwYTc0YzYyMTQxMTYyOTAzNDQzOTE4ZjVlYmQx
MzgwODY1ZTUuLjcyNjMwMWYzODEzZTIwYzM2MThkNTQ0NmM3M2FjY2UwYmFhN2NkMDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCkBAIC0yNywxMCAr
MjcsMTUgQEAKICNpbXBvcnQgIkRyYWdDb250cm9sbGVyLmgiCiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2ltcG9ydCAiQ2xpcGJvYXJkLmgiCisjaW1wb3J0ICJET01FbGVtZW50SW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRyYWdDbGllbnQuaCIKICNpbXBvcnQgIkRyYWdEYXRhLmgiCisjaW1w
b3J0ICJFbGVtZW50LmgiCiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVWaWV3Lmgi
CiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJQYXN0ZWJvYXJkLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzksNiArODQsMTEgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51
cEFmdGVyU3lzdGVtRHJhZygpCiAgICAgICAgIGRyYWdFbmRlZCgpOwogfQogCit2b2lkIERyYWdD
b250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQs
IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkK
K3sKKyAgICBjbGllbnQoKS0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNsaXBib2FyZC0+cGFz
dGVib2FyZCgpLm5hbWUoKSwga2l0KGVsZW1lbnQpLCB1cmwsIGxhYmVsLCBlbGVtZW50LT5kb2N1
bWVudCgpLT5mcmFtZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
cXQvRHJhZ0NvbnRyb2xsZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3F0L0RyYWdDb250
cm9sbGVyUXQuY3BwCmluZGV4IDM0OTM3ZTc0ODZhOTk2ZWQ0OTdjYjdjYTVlNjc5NGQwNjVjMWVm
NzUuLmNkOTYzMTBjZjAzMTdkMDFhMGFkMjliOWE0YWQyZjBhZGNiMTY1ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJRdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9xdC9EcmFnQ29udHJvbGxlclF0LmNwcApAQCAtMjYsMTAgKzI2LDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKIAorI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiRWxl
bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02OCw0ICs3MSw5IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBBZnRl
clN5c3RlbURyYWcoKQogewogfQogCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBjbGlwYm9hcmQtPnBhc3Rl
Ym9hcmQoKS53cml0ZUltYWdlKGVsZW1lbnQsIHVybCwgbGFiZWwpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKaW5kZXggYTdiZTZkOGFi
YjgyNTEwN2E0YWNlYTU4YjhiYTQyNTVjZjc0MDZjMS4uNGM3NGNlMDlmNDRiMmZjYjU3NmJiYzAy
YTEzMzlmMDk3ODRjYjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJh
Z0NvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250
cm9sbGVyV2luLmNwcApAQCAtNjYsNCArNjYsMTggQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xl
YW51cEFmdGVyU3lzdGVtRHJhZygpCiB7CiB9CiAKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNsaXBib2FyZCwgRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIFBhc3RlYm9h
cmQqIHBhc3RlYm9hcmQgPSBjbGlwYm9hcmQtPnBhc3RlYm9hcmQoKTsKKworICAgIC8vIEZJWE1F
OiBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGNoZWNrPworICAgIGlmICghcGFzdGVib2FyZC0+d3Jp
dGFibGVEYXRhT2JqZWN0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9yZGVyIGlzIGlt
cG9ydGFudCBoZXJlIGZvciBFeHBsb3JlcidzIHNha2UKKyAgICBwYXN0ZWJvYXJkLT53cml0ZVVS
TFRvV3JpdGFibGVEYXRhT2JqZWN0KHVybCwgbGFiZWwpOworICAgIHBhc3RlYm9hcmQtPndyaXRl
SW1hZ2VUb0RhdGFPYmplY3QoZWxlbWVudCwgdXJsKTsKKyAgICBwYXN0ZWJvYXJkLT53cml0ZU1h
cmt1cChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxz
KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA5MzZiMjg0
Njk5MzUyYTAyMjY0ZjE4M2I2MzM3ZDcxMWFmNjk1NGEwLi4yODAzMjhkMzVkYzFmMzk2MjEyMzNh
ZWQ5OGQ5YTUxM2QzM2RmNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBA
IC0xMzEsNiArMTMxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB3cml0ZVN0cmluZyhjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlv
bihSYW5nZSosIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiwgU2hvdWxkU2VyaWFs
aXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID0gRGVmYXVsdFNlbGVjdGVkVGV4dFR5cGUpOwor
ICAgIHZvaWQgd3JpdGVNYXJrdXAoY29uc3QgU3RyaW5nJiBtYXJrdXApOwogICAgIHZvaWQgd3Jp
dGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRSZXBsYWNlT3B0aW9uKTsKICNpZiAhUExB
VEZPUk0oSU9TKQogICAgIHZvaWQgd3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYs
IEZyYW1lKiA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Ns
aXBib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmNwcAppbmRleCBhOGM5NDA4YWY0N2VkNDFlOWM2YWM1YzhmNGFhMzNlM2I3NjhhNzFhLi5mMGVj
Y2Y5YzJiNjY2MDNiZDNkY2UxMTkxMDE0ZThmMzljNDgyM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcApAQCAtMzMsMTMgKzMzLDYgQEAgRHJhZ0lt
YWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JikgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12b2lkIENsaXBib2FyZDo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3Ry
aW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0jZW5kaWYKLQogI2lm
IEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQogUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
TGlzdD4gQ2xpcGJvYXJkOjppdGVtcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9DbGlwYm9hcmRHdGsuY3BwCmluZGV4IGQzODhiNWI2YzE3MGY3Y2QzNWVjNDA3ZWYxYWFlYWY0
YzRmNmIyNzkuLjgwZTljYTcyZTRjOGU3NjA5MDBiYzdiYjA3MmNlYzU4MzRhNjE1YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCkBAIC00Miw5ICs0
Miw0IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYg
bG9jYXRpb24pIGNvbnN0CiAgICAgcmV0dXJuIDA7IC8vIFdlIGRvIG5vdCBoYXZlIGVub3VnaCBp
bmZvcm1hdGlvbiB0byBjcmVhdGUgYSBkcmFnIGltYWdlLCB1c2UgdGhlIGRlZmF1bHQgaWNvbi4K
IH0KIAotdm9pZCBDbGlwYm9hcmQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKiBmcmFt
ZSkKLXsKLSAgICBtX3Bhc3RlYm9hcmQtPndyaXRlSW1hZ2UoZWxlbWVudC0+dG9Ob2RlKCksIHVy
bCwgbGFiZWwpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvQ2xpcGJvYXJkSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJk
SU9TLmgKaW5kZXggNTAwMTkzY2YzNzVhM2M0YjlhMGYxYzk4ZGMxYzRjODBkZDllODNjYi4uZmU1
YmQ3MWM4YmMxNjNhYzg1ZDFjMjQ1ZWQ5YWVmZGM3MjQ2ODMyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaApAQCAtNTksOSArNTksNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZUVsZW1lbnQoTm9kZSAqLCBjb25zdCBJbnRQb2lu
dCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdl
KEludFBvaW50JiBkcmFnTG9jKSBjb25zdCBPVkVSUklERTsKLSNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCos
IGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBGcmFtZSopIE9WRVJSSURFOwotI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwg
RnJhbWUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVQbGFpblRleHQoY29uc3Qg
U3RyaW5nJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvQ2xpcGJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NsaXBib2Fy
ZElPUy5tbQppbmRleCA1ODViNmI1YjMzY2RiODQ3OTQxYjkxMjY2Yzc1NWQwZjg3NDcxY2QxLi5h
ZTIwOTQzYjUzZjZiZTA1MjZmZDA4MDQ4MzNiOWQ1NDFhNDA1ZGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MubW0KQEAgLTI3MiwxNSArMjcyLDYgQEAgdm9p
ZCBDbGlwYm9hcmRJT1M6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopCiB7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9pZCBDbGlwYm9hcmRJT1M6
OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBBU1NFUlQoZnJh
bWUpOwotICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS0+Y2xpZW50KCktPmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShtX3Bh
c3RlYm9hcmQuZ2V0KCksIGtpdChlbGVtZW50KSwgdXJsLCB0aXRsZSwgZnJhbWUpOwotfQotI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KIERyYWdJbWFnZVJlZiBDbGlwYm9hcmRJT1M6
OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQppbmRleCA1N2M3YjMxZjFk
NjlmODU4OWVmMGYxZjdkZGM2ZTBjOGNkNDI2ZDVjLi43MzY0NGRkODAxNTEwMTQwNGQzMGUyNzJj
ZTg2NGQ3YTc2NzM2MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q2xpcGJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9h
cmRNYWMubW0KQEAgLTQwLDEzICs0MCw2IEBACiAjaW1wb3J0ICJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIENsaXBib2FyZDo6ZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQotewotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgaWYg
KFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5kcmFnQ29udHJvbGxl
cigpLT5jbGllbnQoKS0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKG1fcGFzdGVib2FyZC0+bmFt
ZSgpLCBraXQoZWxlbWVudCksIHVybCwgdGl0bGUsIGZyYW1lKTsKLX0KICAgICAKIERyYWdJbWFn
ZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKaW5kZXggZjJl
NjQxMzUyMzU3NzUwZDM1ZGMxZTgzYTlkODY4MjA5ZGZkYzQ0Ny4uZmE0ZGM5OWU1MTYxODMzYjk2
ZTQ4YTdhZjI1MTgwYzllZmNlM2QzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvQ2xpcGJvYXJkUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Ns
aXBib2FyZFF0LmNwcApAQCAtNTYsOSArNTYsNCBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpj
cmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogICAgIHJldHVybiAwOyAv
LyBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY3JlYXRlIGEgZHJhZyBpbWFn
ZSwgdXNlIHRoZSBkZWZhdWx0IGljb24uCiB9CiAKLXZvaWQgQ2xpcGJvYXJkOjpkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIGxhYmVsLCBGcmFtZSogZnJhbWUpCi17Ci0gICAgbV9wYXN0ZWJvYXJkLT53cml0ZUlt
YWdlKGVsZW1lbnQtPnRvTm9kZSgpLCB1cmwsIGxhYmVsKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAppbmRleCBlZGZlMjM3NGUzNzAwZDQ5
ZGFkMDRiMjdjNGZlODFmNjE1MDc1MjI3Li41YzY1YzFmZDk5NTFmNDdiYzAxN2I5Y2I2OGE0ZTcy
Y2E0MGQ0MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJv
YXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2lu
LmNwcApAQCAtNTgsMzEgKzU4LDQgQEAgRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJh
Z0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12b2lkIENsaXBib2FyZDo6ZGVjbGFyZUFu
ZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQotewotICAgIC8vIE9yZGVyIGlzIGltcG9ydGFu
dCBoZXJlIGZvciBFeHBsb3JlcidzIHNha2UKLSAgICBpZiAoIW1fcGFzdGVib2FyZC0+d3JpdGFi
bGVEYXRhT2JqZWN0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3Bhc3RlYm9hcmQtPndyaXRl
VVJMVG9Xcml0YWJsZURhdGFPYmplY3QodXJsLCB0aXRsZSk7Ci0gICAgbV9wYXN0ZWJvYXJkLT53
cml0ZUltYWdlVG9EYXRhT2JqZWN0KGVsZW1lbnQsIHVybCk7Ci0gICAgQXRvbWljU3RyaW5nIGlt
YWdlVVJMID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0cik7Ci0gICAg
aWYgKGltYWdlVVJMLmlzRW1wdHkoKSkgCi0gICAgICAgIHJldHVybjsKLQotICAgIEtVUkwgZnVs
bFVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFp
bGluZ0hUTUxTcGFjZXMoaW1hZ2VVUkwpKTsKLSAgICBpZiAoZnVsbFVSTC5pc0VtcHR5KCkpIAot
ICAgICAgICByZXR1cm47Ci0gICAgU1RHTUVESVVNIG1lZGl1bSA9IHswfTsKLSAgICBtZWRpdW0u
dHltZWQgPSBUWU1FRF9IR0xPQkFMOwotCi0gICAgLy8gUHV0IGltZyB0YWcgb24gdGhlIGNsaXBi
b2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKLSAgICBWZWN0b3I8Y2hhcj4gZGF0YTsKLSAgICBt
YXJrdXBUb0NGSFRNTChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAsIFJlc29s
dmVBbGxVUkxzKSwgIiIsIGRhdGEpOwotICAgIG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFs
RGF0YShkYXRhKTsKLSAgICBpZiAobWVkaXVtLmhHbG9iYWwgJiYgRkFJTEVEKG1fcGFzdGVib2Fy
ZC0+d3JpdGFibGVEYXRhT2JqZWN0KCktPlNldERhdGEoaHRtbEZvcm1hdCgpLCAmbWVkaXVtLCBU
UlVFKSkpCi0gICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEdsb2JhbCk7Ci19Ci0jZW5kaWYK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDhhNTEwZGRlY2U5YjUyMTgzODNiMDA3OTBkODAzOWVj
YWY4ZjkxYzEuLjdiOTU4ZmQ2YzU0NmZjNTExN2UzNTY4ODI5NjM5YWM5MTI0ZDk0MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTUwNCw4
ICs1MDQsNiBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0VG9EYXRhT2JqZWN0KGNv
bnN0IFN0cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aQogICAgIG1lZGl1bS5oR2xvYmFsID0g
Y3JlYXRlR2xvYmFsRGF0YShzdHIpOwogICAgIGlmIChtZWRpdW0uaEdsb2JhbCAmJiBGQUlMRUQo
bV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEocGxhaW5UZXh0V0Zvcm1hdCgpLCAmbWVkaXVt
LCBUUlVFKSkpCiAgICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEdsb2JhbCk7ICAgICAgICAK
LQotICAgIG1lZGl1bS5oR2xvYmFsID0gMDsKIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBs
YWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGlvbiBzbWFydFJlcGxh
Y2VPcHRpb24pCkBAIC0xMDU1LDQgKzEwNTMsMTcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVS
TFRvV3JpdGFibGVEYXRhT2JqZWN0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXQK
ICAgICBXZWJDb3JlOjp3cml0ZVVSTChtX3dyaXRhYmxlRGF0YU9iamVjdC5nZXQoKSwgdXJsLCB0
aXRsZSwgdHJ1ZSwgZmFsc2UpOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlTWFya3VwKGNv
bnN0IFN0cmluZyYgbWFya3VwKQoreworICAgIFZlY3RvcjxjaGFyPiBkYXRhOworICAgIG1hcmt1
cFRvQ0ZIVE1MKG1hcmt1cCwgIiIsIGRhdGEpOworCisgICAgU1RHTUVESVVNIG1lZGl1bSA9IHsw
fTsKKyAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOworCisgICAgbWVkaXVtLmhHbG9i
YWwgPSBjcmVhdGVHbG9iYWxEYXRhKGRhdGEpOworICAgIGlmIChtZWRpdW0uaEdsb2JhbCAmJiBG
QUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEoaHRtbEZvcm1hdCgpLCAmbWVkaXVt
LCBUUlVFKSkpCisgICAgICAgIEdsb2JhbEZyZWUobWVkaXVtLmhHbG9iYWwpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205272</attachid>
            <date>2013-06-23 18:02:28 -0700</date>
            <delta_ts>2013-08-12 09:26:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117683-20130623180034.patch</filename>
            <type>text/plain</type>
            <size>20278</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E2NjI1MWJjMzE3YTYx
MTE3ZjRlNTdhZjIxM2IxN2EyYmFlOGJiOS4uN2MzZWZjMWE4ZjMzNzc3Y2E2MTNmMjljYTVmNTUx
ODZmM2JmNjRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTA2LTE2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIENsaXBib2FyZDo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlIHRvIERyYWdDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc2ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDogUmVtb3Zl
ZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEltYWdlQmVmb3JlRHJhZ2dpbmcpOiBI
YWxmIG9mIHRoZSBvbGQgcHJlcGFyZUNsaXBib2FyZEZvckltYWdlRHJhZworICAgICAgICBpcyBu
b3cgcmVmYWN0b3JlZCBpbnRvIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6c3RhcnREcmFnKTogV2hlcmUgd2UgY2FsbGVkIHByZXBhcmVDbGlwYm9hcmRG
b3JJbWFnZURyYWcsCisgICAgICAgIGluc3RlYWQgY2FsbCBzZWxlY3RJbWFnZUJlZm9yZURyYWdn
aW5nIGFuZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuIFRoaXMgaXMgbmVlZGVkCisgICAgICAg
IGJlY2F1c2UgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlIG5lZWRzIHRvIGJlIGEgbWVtYmVyIGZ1
bmN0aW9uLCBmb3IgTWFjIGF0IGxlYXN0LgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxl
ci5oOiBBZGRlZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UuCisKKyAgICAgICAgKiBwYWdlL2Vm
bC9EcmFnQ29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKTogQWRkZWQgZW1wdHkgcGxhY2Vob2xkZXIuCisg
ICAgICAgIEl0IHdvdWxkIGJlIGJldHRlciB0byBkZWxldGUgdGhpcyBmaWxlIHJhdGhlciB0aGFu
IGhhdmluZyB0aGVzZSBwbGFjZWhvbGRlcnMuCisgICAgICAgIEkgZG9uJ3QgdGhpbmsgRUZMIGFj
dHVhbGx5IGhhcyBkcmFnIHN1cHBvcnQsIGFuZCBpdCBtYWtlcyB3b3JrIHRvIGhhdmUgdG8ga2Vl
cAorICAgICAgICBzb3VyY2UgZmlsZXMgdXAgdG8gZGF0ZSB0aGF0IGFyZSByZWFsbHkgdW51c2Vk
LgorCisgICAgICAgICogcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVk
LiBDYWxscyBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBDYWxscyB0byBEcmFnQ2xpZW50LCB3aGljaAor
ICAgICAgICBkb2VzIHRoZSB3b3JrLgorICAgICAgICAqIHBhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKTogQWRkZWQuIENhbGxzIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UuCisgICAgICAg
ICogcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6IEFkZGVkLiBVc2VzIFBhc3Rl
Ym9hcmQgZnVuY3Rpb25zIHRvCisgICAgICAgIGRvIHRoZSB3b3JrLgorCisgICAgICAgICogcGxh
dGZvcm0vQ2xpcGJvYXJkLmg6IENoYW5nZWQgdGhlIHBhc3RlYm9hcmQgZnVuY3Rpb24gdG8gcmV0
dXJuIGEgbm9uLWNvbnN0IHJlZmVyZW5jZS4KKyAgICAgICAgRm9yIG5vdywgaXQncyBub3QgY2xl
YXIgd2hhdCBjb25zdCB3aWxsIG1lYW4gZm9yIHBhc3RlYm9hcmRzLCBhbmQgaXQncyBjdXJyZW50
bHkgbm90CisgICAgICAgIHBvc3NpYmxlIHRvIHdyaXRlIHRvIGEgY29uc3QgcGFzdGVib2FyZCwg
d2hpY2ggd2UgbmVlZCB0byBkbyBpbiB0aGUgbmV3CisgICAgICAgIERyYWdDb250cm9sbGVyOjpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UgZnVuY3Rpb25zLgorCisgICAgICAgICogcGxhdGZvcm0v
UGFzdGVib2FyZC5oOiBBZGRlZCBhIG5ldyB3cml0ZU1hcmt1cCBmdW5jdGlvbiwgaW1wbGVtZW50
ZWQgb25seSBmb3IgV2luZG93cworICAgICAgICBhdCB0aGlzIHRpbWUuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcDogRGVsZXRlZCBkZWNsYXJlQW5kV3JpdGVEcmFn
SW1hZ2UuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaDogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bWFjL0NsaXBib2FyZE1hYy5tbTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNw
cDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRvRGF0YU9iamVjdCk6
IFRvb2sgb3V0IGEgcG9pbnRsZXNzIGxpbmUgb2YgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OndyaXRlTWFya3VwKTogQWRkZWQuIEN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbmx5
IGZvciBXaW5kb3dzLgorICAgICAgICBUaGlzIGZhY3RvcnMgb3V0IGEgc2lnbmlmaWNhbnQgcGll
Y2Ugb2YgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSwKKyAgICAgICAg
YW5kIHdpbGwgcHJvYmFibHkgYmUgaGFuZHkgZm9yIG90aGVyIHBsYXRmb3JtcyBsYXRlci4KKwog
MjAxMy0wNi0xNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU29y
dCBhbGwgdGhlIFhjb2RlIHByb2plY3QgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRleCBj
NWQ0NzJlZTRmYjkyZjUwNGY4YjM2MmI1NjM5ZTEzMGE1ODk3ZjRiLi5lYjI3NDY0YjNkMzVhNDEx
ZWFmMTQ4M2ZiY2RkYzAyYzBkOTVhODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0xMDAs
OSArMTAwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBkcmFnSW1hZ2VF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnSW1hZ2VFbGVtZW50LmdldCgpOyB9CiAgICAg
ICAgIAogICAgICAgICBMRUdBQ1lfVklSVFVBTCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdl
KEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0IExFR0FDWV9QVVJFOwotI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCi0gICAgICAgIExFR0FDWV9WSVJUVUFMIHZvaWQgZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJh
bWUqKSBMRUdBQ1lfUFVSRTsKLSNlbmRpZgogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lkIHdy
aXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopIExFR0FDWV9QVVJFOwog
ICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lkIHdyaXRlUmFuZ2UoUmFuZ2UqLCBGcmFtZSopIExF
R0FDWV9QVVJFOwogICAgICAgICBMRUdBQ1lfVklSVFVBTCB2b2lkIHdyaXRlUGxhaW5UZXh0KGNv
bnN0IFN0cmluZyYpIExFR0FDWV9QVVJFOwpAQCAtMTM1LDcgKzEzMiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNpZiAhVVNFKExFR0FDWV9TVFlMRV9BQlNUUkFDVF9DTElQQk9BUkRfQ0xBU1Mp
CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBib2FyZD4gY3JlYXRlRm9yQ29weUFuZFBh
c3RlKENsaXBib2FyZEFjY2Vzc1BvbGljeSk7CiAKLSAgICAgICAgY29uc3QgUGFzdGVib2FyZCYg
cGFzdGVib2FyZCgpIHsgcmV0dXJuICptX3Bhc3RlYm9hcmQ7IH0KKyAgICAgICAgUGFzdGVib2Fy
ZCYgcGFzdGVib2FyZCgpIHsgcmV0dXJuICptX3Bhc3RlYm9hcmQ7IH0KICNlbmRpZgogCiAjaWYg
IVVTRShMRUdBQ1lfU1RZTEVfQUJTVFJBQ1RfQ0xJUEJPQVJEX0NMQVNTKSAmJiBFTkFCTEUoRFJB
R19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA3YjQy
MmIwNjgxZGU4ZmUyM2Y4ZDUzMTVjN2IzNjBhODAyZDY1ZWFhLi5jMTcwMzk0Njk2NzI3N2FhMzEz
YTlhMjM2Mzc5OWMzNDJlYWI5MzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcApAQCAtNzAwLDE0ICs3MDAsMTMgQEAgc3RhdGljIEltYWdlKiBnZXRJbWFnZShFbGVtZW50
KiBlbGVtZW50KQogICAgICAgICBjYWNoZWRJbWFnZS0+aW1hZ2UoKSA6IDA7CiB9CiAKLXN0YXRp
YyB2b2lkIHByZXBhcmVDbGlwYm9hcmRGb3JJbWFnZURyYWcoRnJhbWUqIHNvdXJjZSwgQ2xpcGJv
YXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQqIG5vZGUsIGNvbnN0IEtVUkwmIGxpbmtVUkwsIGNvbnN0
IEtVUkwmIGltYWdlVVJMLCBjb25zdCBTdHJpbmcmIGxhYmVsKQorc3RhdGljIHZvaWQgc2VsZWN0
SW1hZ2VCZWZvcmVEcmFnZ2luZyhFbGVtZW50KiBlbGVtZW50KQogewotICAgIGlmIChub2RlLT5p
c0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpKSB7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBzb3VyY2UtPmRvY3VtZW50KCktPmNyZWF0ZVJhbmdlKCk7Ci0gICAgICAgIHJhbmdlLT5zZWxl
Y3ROb2RlKG5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBzb3VyY2UtPnNlbGVj
dGlvbigpLT5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5nZXQoKSwgRE9XTlNU
UkVBTSkpOworICAgIGlmIChlbGVtZW50LT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpKSB7Cisg
ICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5jcmVhdGVS
YW5nZSgpOworICAgICAgICByYW5nZS0+c2VsZWN0Tm9kZShlbGVtZW50LCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2VsZWN0aW9u
KCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLmdldCgpLCBET1dOU1RSRUFN
KSk7CiAgICAgfQotICAgIGNsaXBib2FyZC0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKG5vZGUs
ICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxpbmtVUkwgOiBpbWFnZVVSTCwgbGFiZWwsIHNvdXJjZSk7
CiB9CiAKIHN0YXRpYyBJbnRQb2ludCBkcmFnTG9jRm9yREhUTUxEcmFnKGNvbnN0IEludFBvaW50
JiBtb3VzZURyYWdnZWRQb2ludCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGNvbnN0IElu
dFBvaW50JiBkcmFnSW1hZ2VPZmZzZXQsIGJvb2wgaXNMaW5rSW1hZ2UpCkBAIC04MDUsMTQgKzgw
NCwxNCBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUqIHNyYywgY29uc3Qg
RHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0
ID0gSW50UG9pbnQoZHJhZ09yaWdpbi54KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkg
LSBkcmFnTG9jLnkoKSk7CiAgICAgICAgIH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKGRyYWdJbWFn
ZSwgZHJhZ0xvYywgZHJhZ09yaWdpbiwgY2xpcGJvYXJkLCBzcmMsIGZhbHNlKTsKLSAgICB9IGVs
c2UgaWYgKCFpbWFnZVVSTC5pc0VtcHR5KCkgJiYgZWxlbWVudCAmJiBpbWFnZSAmJiAhaW1hZ2Ut
PmlzTnVsbCgpCi0gICAgICAgICAgICAgICAmJiAobV9kcmFnU291cmNlQWN0aW9uICYgRHJhZ1Nv
dXJjZUFjdGlvbkltYWdlKSkgeworICAgIH0gZWxzZSBpZiAoIWltYWdlVVJMLmlzRW1wdHkoKSAm
JiBlbGVtZW50ICYmIGltYWdlICYmICFpbWFnZS0+aXNOdWxsKCkgJiYgKG1fZHJhZ1NvdXJjZUFj
dGlvbiAmIERyYWdTb3VyY2VBY3Rpb25JbWFnZSkpIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkbid0
IGJlIHN0YXJ0aW5nIGEgZHJhZyBmb3IgYW4gaW1hZ2UgdGhhdCBjYW4ndCBwcm92aWRlIGFuIGV4
dGVuc2lvbi4KICAgICAgICAgLy8gVGhpcyBpcyBhbiBlYXJseSBkZXRlY3Rpb24gZm9yIHByb2Js
ZW1zIGVuY291bnRlcmVkIGxhdGVyIHVwb24gZHJvcC4KICAgICAgICAgQVNTRVJUKCFpbWFnZS0+
ZmlsZW5hbWVFeHRlbnNpb24oKS5pc0VtcHR5KCkpOwogICAgICAgICBpZiAoIWNsaXBib2FyZC0+
aGFzRGF0YSgpKSB7CiAgICAgICAgICAgICBtX2RyYWdnaW5nSW1hZ2VVUkwgPSBpbWFnZVVSTDsK
LSAgICAgICAgICAgIHByZXBhcmVDbGlwYm9hcmRGb3JJbWFnZURyYWcoc3JjLCBjbGlwYm9hcmQs
IGVsZW1lbnQsIGxpbmtVUkwsIGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFsdERpc3BsYXlTdHJp
bmcoKSk7CisgICAgICAgICAgICBzZWxlY3RJbWFnZUJlZm9yZURyYWdnaW5nKGVsZW1lbnQpOwor
ICAgICAgICAgICAgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNsaXBib2FyZCwgZWxlbWVudCwg
IWxpbmtVUkwuaXNFbXB0eSgpID8gbGlua1VSTCA6IGltYWdlVVJMLCBoaXRUZXN0UmVzdWx0LmFs
dERpc3BsYXlTdHJpbmcoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2NsaWVudC0+d2lsbFBl
cmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb25JbWFnZSwgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA5ZmU3YTY0
ZDFiOTg5NzQ4MmRiM2U1NzgwOTY2OGJjYTk1ZWM4MmYyLi5hZWViYTE4NzMwNWEwZTAwNmZlNDJh
ZjJjMzJlZmE4MGFlMDcyMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBA
IC00MSwxMiArNDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRnJhbWU7CiAg
ICAgY2xhc3MgRnJhbWVTZWxlY3Rpb247CiAgICAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKLSAg
ICBjbGFzcyBJbWFnZTsKICAgICBjbGFzcyBJbnRSZWN0OwotICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgUGFnZTsKICAgICBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7Ci0gICAgY2xhc3MgUmFu
Z2U7CiAKICAgICBzdHJ1Y3QgRHJhZ1Nlc3Npb247CiAgICAgc3RydWN0IERyYWdTdGF0ZTsKQEAg
LTExMyw2ICsxMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZG9JbWFn
ZURyYWcoRWxlbWVudCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYsIENsaXBib2Fy
ZCosIEZyYW1lKiwgSW50UG9pbnQmKTsKICAgICAgICAgdm9pZCBkb1N5c3RlbURyYWcoRHJhZ0lt
YWdlUmVmLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkKiwgRnJh
bWUqLCBib29sIGZvckxpbmspOwogICAgICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWco
KTsKKyAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiwgRWxl
bWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAogICAgICAgICBQYWdl
KiBtX3BhZ2U7CiAgICAgICAgIERyYWdDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwCmluZGV4IGY1YzBlY2NjZGQ4NDY4YjJl
N2YxNGMzZTNjODMxY2ViYWE2NTQzYjAuLjI3NTBlMmUzOWQ2NzVkYjIyODk3OGZmMTdkNGZlMDRl
ODhmYzVkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9s
bGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVm
bC5jcHAKQEAgLTY0LDYgKzY0LDExIEBAIGNvbnN0IEludFNpemUmIERyYWdDb250cm9sbGVyOjpt
YXhEcmFnSW1hZ2VTaXplKCkKIH0KIAogdm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVy
U3lzdGVtRHJhZygpCi17fQoreworfQorCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmKQoreworfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9E
cmFnQ29udHJvbGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJv
bGxlckd0ay5jcHAKaW5kZXggMjk3NDllMmZlZDE4Y2ZkNDRiZTY1ZmIyOWI5YjI5YzRkOTIxN2U5
NC4uZDRkZTI3ZTI5YWZiZTEyZTlhNzI0MTEzMmI1ZThlY2JmYTVjNzM0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcApAQCAtMjYsMTAgKzI2LDEz
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKIAor
I2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC02Niw0ICs2OSw5IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBB
ZnRlclN5c3RlbURyYWcoKQogewogfQogCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBjbGlwYm9hcmQtPnBh
c3RlYm9hcmQoKS53cml0ZUltYWdlKGVsZW1lbnQsIHVybCwgbGFiZWwpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCmluZGV4IDcwYTEwYTc0
YzYyMTQxMTYyOTAzNDQzOTE4ZjVlYmQxMzgwODY1ZTUuLjcyNjMwMWYzODEzZTIwYzM2MThkNTQ0
NmM3M2FjY2UwYmFhN2NkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0Ry
YWdDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250
cm9sbGVyTWFjLm1tCkBAIC0yNywxMCArMjcsMTUgQEAKICNpbXBvcnQgIkRyYWdDb250cm9sbGVy
LmgiCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2ltcG9ydCAiQ2xpcGJvYXJkLmgiCisj
aW1wb3J0ICJET01FbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRyYWdDbGllbnQuaCIKICNp
bXBvcnQgIkRyYWdEYXRhLmgiCisjaW1wb3J0ICJFbGVtZW50LmgiCiAjaW1wb3J0ICJGcmFtZS5o
IgogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJQYXN0
ZWJvYXJkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzksNiArODQsMTEgQEAgdm9p
ZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiAgICAgICAgIGRyYWdF
bmRlZCgpOwogfQogCit2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBjbGllbnQoKS0+ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKGNsaXBib2FyZC0+cGFzdGVib2FyZCgpLm5hbWUoKSwga2l0KGVsZW1lbnQpLCB1
cmwsIGxhYmVsLCBlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRHJhZ0NvbnRyb2xsZXJRdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3F0L0RyYWdDb250cm9sbGVyUXQuY3BwCmluZGV4IDM0OTM3ZTc0ODZhOTk2
ZWQ0OTdjYjdjYTVlNjc5NGQwNjVjMWVmNzUuLmNkOTYzMTBjZjAzMTdkMDFhMGFkMjliOWE0YWQy
ZjBhZGNiMTY1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRHJhZ0NvbnRy
b2xsZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9EcmFnQ29udHJvbGxlclF0
LmNwcApAQCAtMjYsMTAgKzI2LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
RHJhZ0NvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkRy
YWdEYXRhLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhc3RlYm9h
cmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02OCw0ICs3MSw5IEBAIHZvaWQgRHJh
Z0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5c3RlbURyYWcoKQogewogfQogCit2b2lkIERyYWdD
b250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoQ2xpcGJvYXJkKiBjbGlwYm9hcmQs
IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCkK
K3sKKyAgICBjbGlwYm9hcmQtPnBhc3RlYm9hcmQoKS53cml0ZUltYWdlKGVsZW1lbnQsIHVybCwg
bGFiZWwpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFn
Q29udHJvbGxlcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxl
cldpbi5jcHAKaW5kZXggYTdiZTZkOGFiYjgyNTEwN2E0YWNlYTU4YjhiYTQyNTVjZjc0MDZjMS4u
NGM3NGNlMDlmNDRiMmZjYjU3NmJiYzAyYTEzMzlmMDk3ODRjYjRiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcApAQCAtNjYsNCArNjYsMTggQEAg
dm9pZCBEcmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZygpCiB7CiB9CiAKK3Zv
aWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShDbGlwYm9hcmQqIGNs
aXBib2FyZCwgRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQoreworICAgIFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQgPSBjbGlwYm9hcmQtPnBhc3Rl
Ym9hcmQoKTsKKworICAgIC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGNoZWNrPwor
ICAgIGlmICghcGFzdGVib2FyZC0+d3JpdGFibGVEYXRhT2JqZWN0KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlIGZvciBFeHBsb3JlcidzIHNha2UK
KyAgICBwYXN0ZWJvYXJkLT53cml0ZVVSTFRvV3JpdGFibGVEYXRhT2JqZWN0KHVybCwgbGFiZWwp
OworICAgIHBhc3RlYm9hcmQtPndyaXRlSW1hZ2VUb0RhdGFPYmplY3QoZWxlbWVudCwgdXJsKTsK
KyAgICBwYXN0ZWJvYXJkLT53cml0ZU1hcmt1cChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVk
ZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaAppbmRleCA5MzZiMjg0Njk5MzUyYTAyMjY0ZjE4M2I2MzM3ZDcxMWFmNjk1NGEw
Li4yODAzMjhkMzVkYzFmMzk2MjEyMzNhZWQ5OGQ5YTUxM2QzM2RmNjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC0xMzEsNiArMTMxLDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCB3cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7
CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxl
dGUsIEZyYW1lKiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID0gRGVm
YXVsdFNlbGVjdGVkVGV4dFR5cGUpOworICAgIHZvaWQgd3JpdGVNYXJrdXAoY29uc3QgU3RyaW5n
JiBtYXJrdXApOwogICAgIHZvaWQgd3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiwgU21hcnRS
ZXBsYWNlT3B0aW9uKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgd3JpdGVVUkwoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKiA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAppbmRleCBhOGM5NDA4YWY0N2VkNDFlOWM2YWM1
YzhmNGFhMzNlM2I3NjhhNzFhLi5mMGVjY2Y5YzJiNjY2MDNiZDNkY2UxMTkxMDE0ZThmMzljNDgy
M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcApA
QCAtMzMsMTMgKzMzLDYgQEAgRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdl
KEludFBvaW50JikgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi12b2lkIENsaXBib2FyZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQq
LCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQogUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkOjppdGVtcygpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCmluZGV4IGQzODhiNWI2
YzE3MGY3Y2QzNWVjNDA3ZWYxYWFlYWY0YzRmNmIyNzkuLjgwZTljYTcyZTRjOGU3NjA5MDBiYzdi
YjA3MmNlYzU4MzRhNjE1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9DbGlwYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlw
Ym9hcmRHdGsuY3BwCkBAIC00Miw5ICs0Miw0IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNy
ZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0CiAgICAgcmV0dXJuIDA7IC8v
IFdlIGRvIG5vdCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYSBkcmFnIGltYWdl
LCB1c2UgdGhlIGRlZmF1bHQgaWNvbi4KIH0KIAotdm9pZCBDbGlwYm9hcmQ6OmRlY2xhcmVBbmRX
cml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgbGFiZWwsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBtX3Bhc3RlYm9hcmQtPndyaXRlSW1h
Z2UoZWxlbWVudC0+dG9Ob2RlKCksIHVybCwgbGFiZWwpOwotfQotCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLmgKaW5kZXggNTAwMTkzY2YzNzVhM2M0YjlhMGYx
Yzk4ZGMxYzRjODBkZDllODNjYi4uZmU1YmQ3MWM4YmMxNjNhYzg1ZDFjMjQ1ZWQ5YWVmZGM3MjQ2
ODMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElP
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MuaApAQCAt
NTksOSArNTksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZUVsZW1l
bnQoTm9kZSAqLCBjb25zdCBJbnRQb2ludCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBEcmFn
SW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jKSBjb25zdCBPVkVSUklE
RTsKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBGcmFtZSopIE9WRVJSSURFOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUmFuZ2Uo
UmFuZ2UqLCBGcmFtZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVVSTChjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgd3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0NsaXBib2FyZElPUy5tbQppbmRleCA1ODViNmI1YjMzY2RiODQ3OTQx
YjkxMjY2Yzc1NWQwZjg3NDcxY2QxLi5hZTIwOTQzYjUzZjZiZTA1MjZmZDA4MDQ4MzNiOWQ1NDFh
NDA1ZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ2xpcGJvYXJk
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9DbGlwYm9hcmRJT1MubW0K
QEAgLTI3MiwxNSArMjcyLDYgQEAgdm9pZCBDbGlwYm9hcmRJT1M6OndyaXRlVVJMKGNvbnN0IEtV
UkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCiB7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQotdm9pZCBDbGlwYm9hcmRJT1M6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50
KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZyYW1lKiBm
cmFtZSkKLXsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUt
PnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+Y2xpZW50KCktPmRlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZShtX3Bhc3RlYm9hcmQuZ2V0KCksIGtpdChlbGVtZW50KSwgdXJs
LCB0aXRsZSwgZnJhbWUpOwotfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KIERy
YWdJbWFnZVJlZiBDbGlwYm9hcmRJT1M6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvQ2xpcGJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2Fy
ZE1hYy5tbQppbmRleCA1N2M3YjMxZjFkNjlmODU4OWVmMGYxZjdkZGM2ZTBjOGNkNDI2ZDVjLi43
MzY0NGRkODAxNTEwMTQwNGQzMGUyNzJjZTg2NGQ3YTc2NzM2MDcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW0KQEAgLTQwLDEzICs0MCw2IEBACiAjaW1w
b3J0ICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lk
IENsaXBib2FyZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQotewotICAg
IEFTU0VSVChmcmFtZSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQotICAg
ICAgICBwYWdlLT5kcmFnQ29udHJvbGxlcigpLT5jbGllbnQoKS0+ZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlKG1fcGFzdGVib2FyZC0+bmFtZSgpLCBraXQoZWxlbWVudCksIHVybCwgdGl0bGUsIGZy
YW1lKTsKLX0KICAgICAKIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJ
bnRQb2ludCYgbG9jYXRpb24pIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9D
bGlwYm9hcmRRdC5jcHAKaW5kZXggZjJlNjQxMzUyMzU3NzUwZDM1ZGMxZTgzYTlkODY4MjA5ZGZk
YzQ0Ny4uZmE0ZGM5OWU1MTYxODMzYjk2ZTQ4YTdhZjI1MTgwYzllZmNlM2QzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcApAQCAtNTYsOSArNTYsNCBAQCBE
cmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9u
KSBjb25zdAogICAgIHJldHVybiAwOyAvLyBXZSBkbyBub3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRp
b24gdG8gY3JlYXRlIGEgZHJhZyBpbWFnZSwgdXNlIHRoZSBkZWZhdWx0IGljb24uCiB9CiAKLXZv
aWQgQ2xpcGJvYXJkOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGcmFtZSogZnJhbWUpCi17Ci0g
ICAgbV9wYXN0ZWJvYXJkLT53cml0ZUltYWdlKGVsZW1lbnQtPnRvTm9kZSgpLCB1cmwsIGxhYmVs
KTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNw
cAppbmRleCBlZGZlMjM3NGUzNzAwZDQ5ZGFkMDRiMjdjNGZlODFmNjE1MDc1MjI3Li41YzY1YzFm
ZDk5NTFmNDdiYzAxN2I5Y2I2OGE0ZTcyY2E0MGQ0MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNTgsMzEgKzU4LDQgQEAgRHJhZ0ltYWdl
UmVmIENsaXBib2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNv
bnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12
b2lkIENsaXBib2FyZDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQs
IGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqIGZyYW1lKQotewot
ICAgIC8vIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlIGZvciBFeHBsb3JlcidzIHNha2UKLSAgICBp
ZiAoIW1fcGFzdGVib2FyZC0+d3JpdGFibGVEYXRhT2JqZWN0KCkpCi0gICAgICAgIHJldHVybjsK
LSAgICBtX3Bhc3RlYm9hcmQtPndyaXRlVVJMVG9Xcml0YWJsZURhdGFPYmplY3QodXJsLCB0aXRs
ZSk7Ci0gICAgbV9wYXN0ZWJvYXJkLT53cml0ZUltYWdlVG9EYXRhT2JqZWN0KGVsZW1lbnQsIHVy
bCk7Ci0gICAgQXRvbWljU3RyaW5nIGltYWdlVVJMID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6c3JjQXR0cik7Ci0gICAgaWYgKGltYWdlVVJMLmlzRW1wdHkoKSkgCi0gICAgICAg
IHJldHVybjsKLQotICAgIEtVUkwgZnVsbFVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaW1hZ2VVUkwpKTsKLSAgICBp
ZiAoZnVsbFVSTC5pc0VtcHR5KCkpIAotICAgICAgICByZXR1cm47Ci0gICAgU1RHTUVESVVNIG1l
ZGl1bSA9IHswfTsKLSAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwotCi0gICAgLy8g
UHV0IGltZyB0YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKLSAgICBW
ZWN0b3I8Y2hhcj4gZGF0YTsKLSAgICBtYXJrdXBUb0NGSFRNTChjcmVhdGVNYXJrdXAoZWxlbWVu
dCwgSW5jbHVkZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSwgIiIsIGRhdGEpOwotICAgIG1lZGl1
bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKLSAgICBpZiAobWVkaXVtLmhHbG9i
YWwgJiYgRkFJTEVEKG1fcGFzdGVib2FyZC0+d3JpdGFibGVEYXRhT2JqZWN0KCktPlNldERhdGEo
aHRtbEZvcm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCi0gICAgICAgIDo6R2xvYmFsRnJlZShtZWRp
dW0uaEdsb2JhbCk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDhhNTEwZGRl
Y2U5YjUyMTgzODNiMDA3OTBkODAzOWVjYWY4ZjkxYzEuLjdiOTU4ZmQ2YzU0NmZjNTExN2UzNTY4
ODI5NjM5YWM5MTI0ZDk0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFz
dGVib2FyZFdpbi5jcHAKQEAgLTUwNCw4ICs1MDQsNiBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
UGxhaW5UZXh0VG9EYXRhT2JqZWN0KGNvbnN0IFN0cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0
aQogICAgIG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShzdHIpOwogICAgIGlmICht
ZWRpdW0uaEdsb2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEocGxh
aW5UZXh0V0Zvcm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCiAgICAgICAgIDo6R2xvYmFsRnJlZSht
ZWRpdW0uaEdsb2JhbCk7ICAgICAgICAKLQotICAgIG1lZGl1bS5oR2xvYmFsID0gMDsKIH0KIAog
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0
UmVwbGFjZU9wdGlvbiBzbWFydFJlcGxhY2VPcHRpb24pCkBAIC0xMDU1LDQgKzEwNTMsMTcgQEAg
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTFRvV3JpdGFibGVEYXRhT2JqZWN0KGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXQKICAgICBXZWJDb3JlOjp3cml0ZVVSTChtX3dyaXRhYmxl
RGF0YU9iamVjdC5nZXQoKSwgdXJsLCB0aXRsZSwgdHJ1ZSwgZmFsc2UpOwogfQogCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlTWFya3VwKGNvbnN0IFN0cmluZyYgbWFya3VwKQoreworICAgIFZlY3Rv
cjxjaGFyPiBkYXRhOworICAgIG1hcmt1cFRvQ0ZIVE1MKG1hcmt1cCwgIiIsIGRhdGEpOworCisg
ICAgU1RHTUVESVVNIG1lZGl1bSA9IHswfTsKKyAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xP
QkFMOworCisgICAgbWVkaXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9iYWxEYXRhKGRhdGEpOworICAg
IGlmIChtZWRpdW0uaEdsb2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERh
dGEoaHRtbEZvcm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCisgICAgICAgIEdsb2JhbEZyZWUobWVk
aXVtLmhHbG9iYWwpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="226762"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="226765"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>