<?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>78611</bug_id>
          
          <creation_ts>2012-02-14 09:42:07 -0800</creation_ts>
          <short_desc>[Qt] Eliminate first set of QtWidgets dependencies from WebCore</short_desc>
          <delta_ts>2012-02-16 02:07:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78109</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Simon Hausmann">hausmann</assigned_to>
          <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>556354</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-14 09:42:07 -0800</bug_when>
    <thetext>[Qt] Eliminate first set of QtWidgets dependencies from WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556369</commentid>
    <comment_count>1</comment_count>
      <attachid>126993</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-14 10:02:22 -0800</bug_when>
    <thetext>Created attachment 126993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556379</commentid>
    <comment_count>2</comment_count>
      <attachid>126993</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-14 10:14:59 -0800</bug_when>
    <thetext>Comment on attachment 126993
Patch

Attachment 126993 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11522308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557018</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 01:13:57 -0800</bug_when>
    <thetext>Attachment 126993 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Last 3072 characters of output:
p/tests/inspector/elements-test.js
	M	LayoutTests/inspector/styles/undo-change-property-expected.txt
	M	LayoutTests/inspector/styles/undo-add-property-expected.txt
	M	LayoutTests/inspector/styles/undo-add-new-rule-expected.txt
	M	LayoutTests/inspector/styles/undo-set-selector-text-expected.txt
	M	LayoutTests/inspector/styles/undo-change-property.html
	M	LayoutTests/inspector/styles/undo-add-property.html
	M	LayoutTests/inspector/styles/undo-add-new-rule.html
	M	LayoutTests/inspector/styles/undo-set-selector-text.html
	M	LayoutTests/inspector/styles/undo-property-toggle-expected.txt
	M	LayoutTests/inspector/styles/undo-property-toggle.html
	M	LayoutTests/inspector/elements/undo-dom-edits-2-expected.txt
	M	LayoutTests/inspector/elements/undo-dom-edits-expected.txt
	M	LayoutTests/ChangeLog
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/inspector/front-end/DOMAgent.js
	M	Source/WebCore/inspector/front-end/CSSStyleModel.js
	M	Source/WebCore/inspector/front-end/ElementsPanel.js
	M	Source/WebCore/inspector/InspectorHistory.cpp
	M	Source/WebCore/inspector/InspectorDOMAgent.h
	M	Source/WebCore/inspector/Inspector.json
	M	Source/WebCore/inspector/InspectorCSSAgent.cpp
	M	Source/WebCore/inspector/DOMEditor.cpp
	M	Source/WebCore/inspector/InspectorDOMAgent.cpp
	M	Source/WebCore/inspector/InspectorHistory.h
r107792 = a9730c4e2cf51fc2723bd4e3129fbec8e7be2e6d (refs/remotes/origin/master)
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168753 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/wk2/Skipped
Auto-merging Source/WebCore/ChangeLog
Auto-merging Source/WebCore/css/CSSCalculationValue.cpp
Auto-merging Source/WebCore/css/CSSCalculationValue.h
Auto-merging Source/WebCore/css/CSSParser.cpp
Auto-merging Source/WebKit/mac/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit/mac/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557119</commentid>
    <comment_count>4</comment_count>
      <attachid>127153</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-15 03:45:02 -0800</bug_when>
    <thetext>Created attachment 127153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557131</commentid>
    <comment_count>5</comment_count>
      <attachid>127153</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-15 03:55:39 -0800</bug_when>
    <thetext>Comment on attachment 127153
Patch

r=me, good work. Nice descriptions :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557196</commentid>
    <comment_count>6</comment_count>
      <attachid>127153</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-15 05:54:23 -0800</bug_when>
    <thetext>Comment on attachment 127153
Patch

Attachment 127153 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11515745</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557257</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-15 07:24:38 -0800</bug_when>
    <thetext>Committed r107811: &lt;http://trac.webkit.org/changeset/107811&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557270</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-15 07:39:25 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Committed r107811: &lt;http://trac.webkit.org/changeset/107811&gt;

It broke 4 tests on Qt 4.8 (on Qt5 plugin tests are skipped because of https://bugs.webkit.org/show_bug.cgi?id=70023)

Could you check if these new results are correct or not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557271</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-15 07:39:58 -0800</bug_when>
    <thetext>Results can be found here:
http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release/r107811%20%2833778%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557272</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-15 07:41:47 -0800</bug_when>
    <thetext>And it broke Qt Mac build too:
http://build.webkit.sed.hu/builders/Qt%20Lion%20Intel%20Release/builds/487/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557930</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-15 23:15:32 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Results can be found here:
&gt; http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release/r107811%20%2833778%29/results.html

I updated the expected files - http://trac.webkit.org/changeset/107892
I assumed the new ones are correct. Please validate them.

And otherwise Mac build is still broken. Are you going to fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557995</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:07:26 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; Results can be found here:
&gt; &gt; http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release/r107811%20%2833778%29/results.html
&gt; 
&gt; I updated the expected files - http://trac.webkit.org/changeset/107892
&gt; I assumed the new ones are correct. Please validate them.

Argh, yes, I forgot to update them. Thanks! The new ones you submitted are correct.

&gt; And otherwise Mac build is still broken. Are you going to fix it?

Prospective build fix landed in r107913. I&apos;ll watch the bot.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126993</attachid>
            <date>2012-02-14 10:02:22 -0800</date>
            <delta_ts>2012-02-15 03:44:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78611-20120214190221.patch</filename>
            <type>text/plain</type>
            <size>31665</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNlZjcxYTQyZmMxNmRm
ZjJiNTNjZjAzNDFkNTNlZjExZTk1MjA5ZS4uNDdlMTlkNDE0YThmYWUxMGIzMWI1YmQ3YjU3NWU1
MDhlYjcwYzA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTAyLTE0ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIEVs
aW1pbmF0ZSBmaXJzdCBzZXQgb2YgUXRXaWRnZXRzIGRlcGVuZGVuY2llcyBmcm9tIFdlYkNvcmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjExCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwOiBSZW1vdmUgdW51c2VkIGluY2x1ZGUuCisgICAg
ICAgICogcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFJlcGxhY2UgaW1wb3J0CisgICAgICAg
IG9mIHByaXZhdGUgUXQoV2lkZ2V0cykgdmFyaWFibGUgd2l0aCB0aGUgZGVmYXVsdCBvZiBRdCA1
LCB3aGVyZQorICAgICAgICBpdCBpcyBhbHNvIG5vdCBjb25maWd1cmFibGUuCisgICAgICAgICog
cGxhdGZvcm0vQ29udGV4dE1lbnUuaDogUmVtb3ZlIHVudXNlZCBpbmNsdWRlLgorICAgICAgICAq
IHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9X
aWRnZXQuaDogVXNlIFFPYmplY3QgYXMgdHlwZSBmb3IgUGxhdGZvcm1XaWRnZXQKKyAgICAgICAg
aW5zdGVhZCBvZiBRV2lkZ2V0LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ljb24uaDoK
KyAgICAgICAgKEljb24pOiBQcmVmZXIgUUltYWdlIG92ZXIgUUljb24gZm9yIHN0b3JhZ2UuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlkZW9XaW5kb3dQ
cml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlKTogTWFrZSBpdCBjb21waWxlIHdpdGggUVdpbmRv
dyBmb3IgUXQgNSBhbmQgUVdpZGdldCBmb3IgUXQgNC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd1F0LmNwcDoKKyAgICAgICAgKEZ1bGxT
Y3JlZW5WaWRlb1dpbmRvdzo6RnVsbFNjcmVlblZpZGVvV2luZG93KToKKyAgICAgICAgKEZ1bGxT
Y3JlZW5WaWRlb1dpbmRvdzo6a2V5UHJlc3NFdmVudCk6CisgICAgICAgIChGdWxsU2NyZWVuVmlk
ZW9XaW5kb3c6OmV2ZW50KToKKyAgICAgICAgKEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzo6c2hvd0Z1
bGxTY3JlZW4pOgorICAgICAgICAoUGxhdGZvcm1WaWRlb1dpbmRvdzo6UGxhdGZvcm1WaWRlb1dp
bmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSWNvblF0LmNwcDogUmV2ZXJ0
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNsYXNzCisgICAgICAgIGJhY2sgdG8gbm90SW1w
bGVtZW50ZWQoKS4gSXQgd2FzIHRyeWluZyB0byBsb2FkIHRoZSBhY3R1YWwgZmlsZSBhcyBRSWNv
bgorICAgICAgICBpbnN0ZWFkIG9mIHRyeWluZyB0byBmaW5kIGEgc3ltYm9saWMgaWNvbiBmb3Ig
dGhlIGdpdmVuIGZpbGUuIFdlIHNob3VsZAorICAgICAgICBwcm9iYWJseSB1c2UgdGhlIFFNaW1l
VHlwZSBBUEkgaW4gUXQgNSBvbmNlIGl0IGJlY29tZXMgYXZhaWxhYmxlLgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246
OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoKKyAg
ICAgICAgKGdyYXBoaWNzKTogUmVtb3ZlIHVzZSBvZiBRU3R5bGUgZm9yIHJldHJpZXZpbmcgaWNv
bnMuIENvZGUgbW92ZWQgdG8KKyAgICAgICAgV2ViQ29yZVN1cHBvcnQgaW5zdGVhZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcDogUmVtb3ZlZCB1bnVzZWQgaW5jbHVk
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDogQWRkICNpZmRl
ZnMgdG8gdXNlIFFTY3JlZW4gQVBJCisgICAgICAgIHdpdGggUXQgNS4KKyAgICAgICAgKFdlYkNv
cmU6OnNjcmVlbkRlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9u
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJl
Y3QpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50Lmg6IEFkZCBob29rIGZv
ciBzaG93aW5nL2hpZGluZyB3aWRnZXQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFFX
ZWJQYWdlQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnN5c3RlbUJlZXApOiBCZWVwIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBRdCA1
IGFuZCBpdHMgdXNlIGlzCisgICAgICAgIHF1ZXN0aW9uYWJsZS4gTW92ZSBiYWNrIHRvIG5vdElt
cGxlbWVudGVkKCkgdW50aWwgcHJvcGVyIFFQQSBBUEkgYmVjb21lcworICAgICAgICBhdmFpbGFi
bGUgaW4gUXQgNSAoaWYgZXZlci4uLikuCisgICAgICAgICogcGxhdGZvcm0vcXQvV2lkZ2V0UXQu
Y3BwOiBEZWxlZ2F0ZSBRV2lkZ2V0IHNwZWNpZmljIHNob3cvaGlkZSBjYWxscworICAgICAgICB0
byB0aGUgUGFnZUNsaWVudCwgb3V0IG9mIFdlYkNvcmUuCisgICAgICAgIChXZWJDb3JlOjpXaWRn
ZXQ6OldpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNob3cpOgorICAgICAgICAo
V2ViQ29yZTo6V2lkZ2V0OjpoaWRlKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDog
UmVtb3ZlIHVudXNlZCBpbmNsdWRlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVy
T2JqZWN0KTogV2hlbiBkdW1waW5nIHByb3BlcnRpZXMgb2YKKyAgICAgICAgUVdpZGdldCwgdXNl
IHRoZSBRT2JqZWN0IHByb3BlcnR5IEFQSSB0byByZXRyaWV2ZSB0aGUgdmFsdWVzIGluc3RlYWQg
b2YKKyAgICAgICAgUVdpZGdldCBzcGVjaWZpYyBBUEkuIFJlbW92ZWQgdGhlIG1hc2sgZnJvbSB0
aGUgZHVtcCBhcyBpdCdzIG5vdCBhdmFpbGFibGUKKyAgICAgICAgYXMgcHJvcGVydHkgYW5kIG91
ciBsYXlvdXQgdGVzdHMgZG9uJ3Qgc2VlbSB0byB1c2UgaXQuCisKIDIwMTItMDItMTQgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBUeXBvIGZpeCBhZnRl
ciByMTA3NzA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyM2M1ZTc2YzBlNDY3OWM0YzM2YTA0MGU2ZTlk
ODUzOTU1YjEzNDExLi43NGUzMzYxMjBiNWNhYjAwMWRlZWQzYmE3YThmZjNhOGMwNGMyOThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTE0ICBTaW1vbiBIYXVzbWFu
biAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIEVsaW1pbmF0ZSBm
aXJzdCBzZXQgb2YgUXRXaWRnZXRzIGRlcGVuZGVuY2llcyBmcm9tIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3Bw
OiBBZGQgbWlzc2luZyBpbmNsdWRlcy4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwOiBNYWtlIGl0IGNvbXBpbGUgYnkgY2FzdGluZworICAgICAg
ICB0aGUgUU9iamVjdCBiYXNlZCBQbGF0Zm9ybVdpZGdldCBiYWNrIHRvIFFXaWRnZXQgYmVmb3Jl
IGRvaW5nIFFXaWRnZXQKKyAgICAgICAgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbHMuCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5pdFdlYkNvcmVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
bml0aWFsaXplV2ViQ29yZVF0KTogTW92ZWQgUVN0eWxlIHNwZWNpZmljIHdlYi1ncmFwaGljIGlu
aXRpYWxpemF0aW9uCisgICAgICAgIGhlcmUgZnJvbSBXZWJDb3JlLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ2xpZW50
UVdpZGdldDo6c2V0V2lkZ2V0VmlzaWJsZSk6IEltcGxlbWVudCBzaG93L2hpZGluZyBvZiB3aWRn
ZXRzCisgICAgICAgIHRocm91Z2ggZGVsZWdhdGlvbiB0byBRV2lkZ2V0LgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0OjpzZXRX
aWRnZXRWaXNpYmxlKTogUHJvdmlkZSBlbXB0eSB3aWRnZXQKKyAgICAgICAgc2hvdy9oaWRlIGlt
cGxlbWVudGF0aW9uLCBhcyBpdCBkb2Vzbid0IHNlZW0gdG8gbWFrZSBzZW5zZSBmb3IgZ3JhcGhp
Y3N2aWV3cy4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaDoKKyAgICAg
ICAgKFBhZ2VDbGllbnRRV2lkZ2V0KToKKyAgICAgICAgKFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRn
ZXQpOgorCiAyMDEyLTAyLTExICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0u
Y29tPgogCiAgICAgICAgIENvbnZlcnQgc3ZnL2FuaW1hdGlvbnMgdG8gdXNlIFNNSUwgbWV0aG9k
cyBmb3IgZHJpdmluZyB0aGUgdGltZWxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiZGE1NmVhN2FhMmFmN2E5
Y2I5OTZlOWQ3NTAyN2E0YzFmOThiYTcwLi45YjM5MjMxYjgzOWUyODg3ZjViN2NlMThlNGRlYTQ5
NjAwZjMwODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMTQgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gRWxp
bWluYXRlIGZpcnN0IHNldCBvZiBRdFdpZGdldHMgZGVwZW5kZW5jaWVzIGZyb20gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VFdmVudEhhbmRsZXIuY3BwOiBBZGQgbWlzc2luZyBRQ3Vyc29yIGluY2x1
ZGUKKyAgICAgICAgdG8gZml4IGNvbXBpbGF0aW9uLgorCiAyMDEyLTAyLTE0ICBObydhbSBSb3Nl
bnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtUZXhtYXBd
IFJlZmFjdG9yIGJhY2tpbmctc3RvcmUgY29kZSBpbiBUZXh0dXJlTWFwcGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlclF0LmNwcAppbmRleCBhOGNk
ZjlkZDBlY2NmODMyN2U3NWY1ODMyYjk1ZmFlMDcwNTNmMzcyLi45NzlhNGY2NThkZWM5OTdmYTkx
OTg1YTllOTM4OGIyYWQ0YWQyZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXJRdC5jcHAKQEAgLTQyLDggKzQyLDYgQEAKICNpbmNsdWRlICJx
dF9pbnN0YW5jZS5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogCi0jaW5jbHVkZSA8UVdp
ZGdldD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6
Okluc3RhbmNlPiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdl
dChXZWJDb3JlOjpXaWRnZXQqIHdpZGdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9FdmVudEhh
bmRsZXJRdC5jcHAKaW5kZXggMDZkYjEwNDU1Y2I3ZmUyYzc1YmQwMDllMGNlYWVjMjQ2MzY1ZTkx
ZS4uOGFlYmI5YzlhOTc2MWJkNjEwMWJkMmQ4NTE2NmU1MWQ2NWEzYWU2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAKQEAgLTUwLDkgKzUwLDExIEBACiAjaW5j
bHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAKKyNpZiBRVF9W
RVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQogUVRfQkVHSU5fTkFNRVNQQUNFCiBR
X0dVSV9FWFBPUlQgZXh0ZXJuIGJvb2wgcXRfdGFiX2FsbF93aWRnZXRzOyAvLyBmcm9tIHFhcHBs
aWNhdGlvbi5jcHAKIFFUX0VORF9OQU1FU1BBQ0UKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTY0LDcgKzY2LDExIEBAIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgPSAwLjA7CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJv
bHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0CiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9W
RVJTSU9OX0NIRUNLKDUsIDAsIDApCisgICAgcmV0dXJuICFpc0tleWJvYXJkT3B0aW9uVGFiKGV2
ZW50KTsKKyNlbHNlCiAgICAgcmV0dXJuIChpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KSA/ICFx
dF90YWJfYWxsX3dpZGdldHMgOiBxdF90YWJfYWxsX3dpZGdldHMpOworI2VuZGlmCiB9CiAKIHZv
aWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnUuaAppbmRleCAyYzUwYTkyMGJlMTcxMDBkNzY4YWJjYzlkM2U0MzkwY2M0ZGJj
NWNkLi4wMGNlYjIwMDk2OWRmMzI0ZmI0MTJkMmJlMjBmN2Y0MGVhZTQ1MzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTMzLDggKzMzLDYgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+Ci0jZWxpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxRTWVudT4KICNlbGlmIFBMQVRG
T1JNKFdJTikKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggMjUyMGM2NGU2ODI1NDgyOGIyNmVhZmUyMzI2
MDFmZWI1MzlhYTM5ZS4uMTViZmY0ODM5NTBjYzVlNTY3MTA5ZGNlMTI0NDMwMTQ1NmVmOWVhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTM5LDggKzM5
LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgdGFnTUVOVUlURU1JTkZPVyBNRU5VSVRFTUlORk87CiAjZWxp
ZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07
CiB0eXBlZGVmIHN0cnVjdCBfR3RrQWN0aW9uIEd0a0FjdGlvbjsKLSNlbGlmIFBMQVRGT1JNKFFU
KQotI2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNzIHd4TWVudUl0
ZW07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggM2YxOWI2MWUyYzk1OWJj
YzYwNjlmOGFhYzY4N2ViZDdiNTI3NjRiMi4uZDcxMDcxNmJhNzQ0OTc3ZWE4MjA1Y2IwMTI1NzIy
YTMyOWQ5NWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTYzLDkgKzYzLDkgQEAg
dHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogCiAjaWYgUExBVEZPUk0oUVQpCiBR
VF9CRUdJTl9OQU1FU1BBQ0UKLWNsYXNzIFFXaWRnZXQ7CitjbGFzcyBRT2JqZWN0OwogUVRfRU5E
X05BTUVTUEFDRQotdHlwZWRlZiBRV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKK3R5cGVkZWYgUU9i
amVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdYKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IDc4MWEwOGNiMmU2Mzk4MGY5Mjll
YjI0Y2ZjYWI3MDBhY2E5Nzk3MjQuLmI3MDNjNzE0MTkwNWUwN2YwYWZhYTIzZTA3Y2UzOWYwNTlk
Y2JmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKQEAgLTMyLDcg
KzMyLDcgQEAgT0JKQ19DTEFTUyBOU0ltYWdlOwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRl
ZiBzdHJ1Y3QgSElDT05fXyogSElDT047CiAjZWxpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxR
SWNvbj4KKyNpbmNsdWRlIDxRSW1hZ2U+CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0
cnVjdCBfR2RrUGl4YnVmIEdka1BpeGJ1ZjsKICNlbGlmIFBMQVRGT1JNKEVGTCkKQEAgLTcwLDcg
KzcwLDcgQEAgcHJpdmF0ZToKICAgICBISUNPTiBtX2hJY29uOwogI2VsaWYgUExBVEZPUk0oUVQp
CiAgICAgSWNvbigpOwotICAgIFFJY29uIG1faWNvbjsKKyAgICBRSW1hZ2UgbV9pbWFnZTsKICNl
bGlmIFBMQVRGT1JNKEdUSykKICAgICBJY29uKCk7CiAgICAgR2RrUGl4YnVmKiBtX2ljb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxh
dGZvcm1WaWRlb1dpbmRvd1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZS5oCmluZGV4IGVlYjA4YzJl
MzBkMTI4ZmIwM2E5MTkxNmVhZDFjZmE4M2ZmOTA5ZmQuLjMzNjAwZjY5NmQ2NGYwZWMwNTIxZmEy
Mjk2M2Q4MjMxOWI1ZTNiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93
UHJpdmF0ZS5oCkBAIC0yMCwxOCArMjAsMjYgQEAKICNpZm5kZWYgUGxhdGZvcm1WaWRlb1dpbmRv
d1ByaXZhdGVfaAogI2RlZmluZSBQbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZV9oCiAKKyNpbmNs
dWRlIDxRRXZlbnQ+CiAjaW5jbHVkZSA8UVRpbWVyPgotI2luY2x1ZGUgPFFXaWRnZXQ+CiAKLVFU
X0JFR0lOX05BTUVTUEFDRQotY2xhc3MgUUtleUV2ZW50OwotUVRfRU5EX05BTUVTUEFDRQorI2lm
IFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorI2luY2x1ZGUgPFFXaW5k
b3c+CisjZWxzZQorI2luY2x1ZGUgPFFXaWRnZXQ+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogCi1jbGFzcyBGdWxsU2NyZWVuVmlkZW9X
aW5kb3c6IHB1YmxpYyBRV2lkZ2V0IHsKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hF
Q0soNSwgMCwgMCkKK3R5cGVkZWYgUVdpbmRvdyBCYXNlOworI2Vsc2UKK3R5cGVkZWYgUVdpZGdl
dCBCYXNlOworI2VuZGlmCisKK2NsYXNzIEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzogcHVibGljIEJh
c2UgewogUV9PQkpFQ1QKIHB1YmxpYzoKICAgICBGdWxsU2NyZWVuVmlkZW9XaW5kb3coKTsKQEAg
LTM5LDcgKzQ3LDYgQEAgcHVibGljOgogc2lnbmFsczoKICAgICB2b2lkIGNsb3NlZCgpOwogcHJv
dGVjdGVkOgotICAgIHZvaWQgY2xvc2VFdmVudChRQ2xvc2VFdmVudCopOwogICAgIHZvaWQga2V5
UHJlc3NFdmVudChRS2V5RXZlbnQqKTsKICAgICBib29sIGV2ZW50KFFFdmVudCopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZv
cm1WaWRlb1dpbmRvd1F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UXQuY3BwCmluZGV4IDBhNmM0NWJmNzBiNzBiYTYx
MzFkZTNhMjMzMWRlOTY5YTAzMWZmYzguLjA2YTc5MjUwNTQ2ZDI5MjdhYjM4ODMxOWM4MDM1N2I1
YWY0NThlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UXQuY3BwCkBAIC0y
MywxMCArMjMsMTEgQEAKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1WaWRlb1dpbmRvd1ByaXZhdGUuaCIKIAorI2luY2x1ZGUgPFFDdXJzb3I+CiAjaW5j
bHVkZSA8UUd1aUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEZXNrdG9wV2lkZ2V0PgogI2luY2x1
ZGUgPFFLZXlFdmVudD4KICNpbmNsdWRlIDxRUGFsZXR0ZT4KKwogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKICNpZm5kZWYgUVRfTk9fQ1VSU09SCkBAIC0zNCwxMyArMzUsMTQgQEAgc3RhdGlj
IGNvbnN0IGludCBnSGlkZU1vdXNlQ3Vyc29yRGVsYXkgPSAzMDAwOwogI2VuZGlmCiAKIEZ1bGxT
Y3JlZW5WaWRlb1dpbmRvdzo6RnVsbFNjcmVlblZpZGVvV2luZG93KCkKLSAgICA6IFFXaWRnZXQo
MCwgUXQ6OldpbmRvdykKLSAgICAsIG1fbWVkaWFFbGVtZW50KDApCisgICAgOiBtX21lZGlhRWxl
bWVudCgwKQogeworI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCiAg
ICAgc2V0QXR0cmlidXRlKFF0OjpXQV9OYXRpdmVXaW5kb3cpOwotICAgIHNldFdpbmRvd01vZGFs
aXR5KFF0OjpBcHBsaWNhdGlvbk1vZGFsKTsKICAgICBzZXRBdHRyaWJ1dGUoUXQ6OldBX05vU3lz
dGVtQmFja2dyb3VuZCwgdHJ1ZSk7CiAgICAgc2V0QXR0cmlidXRlKFF0OjpXQV9QYWludE9uU2Ny
ZWVuLCB0cnVlKTsKKyNlbmRpZgorICAgIHNldFdpbmRvd01vZGFsaXR5KFF0OjpBcHBsaWNhdGlv
bk1vZGFsKTsKIAogI2lmbmRlZiBRVF9OT19DVVJTT1IKICAgICBtX2N1cnNvclRpbWVyLnNldFNp
bmdsZVNob3QodHJ1ZSk7CkBAIC01MywxOCArNTUsNiBAQCB2b2lkIEZ1bGxTY3JlZW5WaWRlb1dp
bmRvdzo6c2V0VmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIGVsZW1lbnQpCiAgICAgbV9t
ZWRpYUVsZW1lbnQgPSBlbGVtZW50OwogfQogCi12b2lkIEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzo6
Y2xvc2VFdmVudChRQ2xvc2VFdmVudCopCi17Ci0jaWZuZGVmIFFUX05PX0NVUlNPUgotICAgIG1f
Y3Vyc29yVGltZXIuc3RvcCgpOwotI2VuZGlmCi0gICAgc2V0TW91c2VUcmFja2luZyhmYWxzZSk7
Ci0gICAgcmVsZWFzZU1vdXNlKCk7Ci0jaWZuZGVmIFFUX05PX0NVUlNPUgotICAgIFFHdWlBcHBs
aWNhdGlvbjo6cmVzdG9yZU92ZXJyaWRlQ3Vyc29yKCk7Ci0jZW5kaWYKLX0KLQogdm9pZCBGdWxs
U2NyZWVuVmlkZW9XaW5kb3c6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBldikKIHsKICAgICBp
ZiAobV9tZWRpYUVsZW1lbnQgJiYgZXYtPmtleSgpID09IFF0OjpLZXlfU3BhY2UpIHsKQEAgLTc0
LDcgKzY0LDcgQEAgdm9pZCBGdWxsU2NyZWVuVmlkZW9XaW5kb3c6OmtleVByZXNzRXZlbnQoUUtl
eUV2ZW50KiBldikKICAgICAgICAgICAgIG1fbWVkaWFFbGVtZW50LT5wbGF5KCk7CiAgICAgfSBl
bHNlIGlmIChldi0+a2V5KCkgPT0gUXQ6OktleV9Fc2NhcGUpCiAgICAgICAgIGVtaXQgY2xvc2Vk
KCk7Ci0gICAgUVdpZGdldDo6a2V5UHJlc3NFdmVudChldik7CisgICAgQmFzZTo6a2V5UHJlc3NF
dmVudChldik7CiB9CiAKIGJvb2wgRnVsbFNjcmVlblZpZGVvV2luZG93OjpldmVudChRRXZlbnQq
IGV2KQpAQCAtODgsMTcgKzc4LDM0IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvV2luZG93OjpldmVu
dChRRXZlbnQqIGV2KQogICAgICAgICBlbWl0IGNsb3NlZCgpOwogICAgICAgICBldi0+YWNjZXB0
KCk7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUUV2ZW50OjpDbG9zZToKKyNpZm5k
ZWYgUVRfTk9fQ1VSU09SCisgICAgICAgIG1fY3Vyc29yVGltZXIuc3RvcCgpOworI2VuZGlmCisj
aWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyAgICAgICAgc2V0TW91
c2VUcmFja2luZyhmYWxzZSk7CisgICAgICAgIHJlbGVhc2VNb3VzZSgpOworI2VuZGlmCisjaWZu
ZGVmIFFUX05PX0NVUlNPUgorICAgICAgICBRR3VpQXBwbGljYXRpb246OnJlc3RvcmVPdmVycmlk
ZUN1cnNvcigpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiBRV2lkZ2V0OjpldmVudChldik7CisgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBy
ZXR1cm4gQmFzZTo6ZXZlbnQoZXYpOwogfQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzo6
c2hvd0Z1bGxTY3JlZW4oKQogewotICAgIFFXaWRnZXQ6OnNob3dGdWxsU2NyZWVuKCk7CisgICAg
QmFzZTo6c2hvd0Z1bGxTY3JlZW4oKTsKKyNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVD
Syg1LCAwLCAwKQogICAgIHNldE1vdXNlVHJhY2tpbmcodHJ1ZSk7CisjZW5kaWYKICAgICByYWlz
ZSgpOworI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCiAgICAgc2V0
Rm9jdXMoKTsKKyNlbmRpZgogICAgIGhpZGVDdXJzb3IoKTsKIH0KIApAQCAtMTIwLDE0ICsxMjcs
MTggQEAgdm9pZCBGdWxsU2NyZWVuVmlkZW9XaW5kb3c6OnNob3dDdXJzb3IoKQogCiBQbGF0Zm9y
bVZpZGVvV2luZG93OjpQbGF0Zm9ybVZpZGVvV2luZG93KCkKIHsKLSAgICBtX3dpbmRvdyA9IG5l
dyBGdWxsU2NyZWVuVmlkZW9XaW5kb3coKTsKLSAgICBtX3dpbmRvdy0+c2V0V2luZG93RmxhZ3Mo
bV93aW5kb3ctPndpbmRvd0ZsYWdzKCkgfCBRdDo6RnJhbWVsZXNzV2luZG93SGludCk7CisgICAg
QmFzZSogd2luID0gbmV3IEZ1bGxTY3JlZW5WaWRlb1dpbmRvdygpOworICAgIG1fd2luZG93ID0g
d2luOworICAgIHdpbi0+c2V0V2luZG93RmxhZ3Mod2luLT53aW5kb3dGbGFncygpIHwgUXQ6OkZy
YW1lbGVzc1dpbmRvd0hpbnQpOworICAgIC8vIEZJWE1FOiBQb3J0IHRvIFF0IDUuCisjaWYgUVRf
VkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKICAgICBRUGFsZXR0ZSBwOwogICAg
IHAuc2V0Q29sb3IoUVBhbGV0dGU6OkJhc2UsIFF0OjpibGFjayk7CiAgICAgcC5zZXRDb2xvcihR
UGFsZXR0ZTo6V2luZG93LCBRdDo6YmxhY2spOwotICAgIG1fd2luZG93LT5zZXRQYWxldHRlKHAp
OwotICAgIG1fd2luZG93LT5zaG93RnVsbFNjcmVlbigpOwotICAgIG1fdmlkZW9XaW5kb3dJZCA9
IG1fd2luZG93LT53aW5JZCgpOworICAgIHdpbi0+c2V0UGFsZXR0ZShwKTsKKyNlbmRpZgorICAg
IHdpbi0+c2hvd0Z1bGxTY3JlZW4oKTsKKyAgICBtX3ZpZGVvV2luZG93SWQgPSB3aW4tPndpbklk
KCk7CiB9CiAKIFBsYXRmb3JtVmlkZW9XaW5kb3c6On5QbGF0Zm9ybVZpZGVvV2luZG93KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ljb25RdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JY29uUXQuY3BwCmluZGV4IGVi
MDllZGE2YjYxZWI3YWVlMDNhYzM3ZjdiZGFhMjhiNmRlOWU4MzkuLjdkMjYxM2ZiZDE3OTNmOGIw
MTgyNTQwYzYyNWEzMjhhZTJlOWNmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ljb25RdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSWNvblF0LmNwcApAQCAtMjIsMTMgKzIyLDEwIEBACiAjaW5jbHVkZSAiSWNv
bi5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCi0jaW5jbHVkZSA8cXBhaW50ZXIuaD4K
LSNpbmNsdWRlIDxxcGl4bWFwLmg+Ci0jaW5jbHVkZSA8cXJlY3QuaD4KLSNpbmNsdWRlIDxxZ2xv
YmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsMjcgKzM4LDE2IEBAIEljb246
On5JY29uKCkKIH0KIAogLy8gRklYTUU6IE1vdmUgdGhlIGNvZGUgdG8gQ2hyb21lQ2xpZW50Ojpp
Y29uRm9yRmlsZXMoKS4KLVBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCitQYXNzUmVmUHRyPEljb24+IEljb246
OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7Ci0gICAgaWYgKGZp
bGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKGZpbGVuYW1l
cy5zaXplKCkgPT0gMSkgewotICAgICAgICBSZWZQdHI8SWNvbj4gaSA9IGFkb3B0UmVmKG5ldyBJ
Y29uKTsKLSAgICAgICAgaS0+bV9pY29uID0gUUljb24oZmlsZW5hbWVzWzBdKTsKLSAgICAgICAg
cmV0dXJuIGkucmVsZWFzZSgpOwotICAgIH0KLQotICAgIC8vRklYTUU6IEltcGxlbWVudCB0aGlz
CisgICAgLy8gRklYTUU6IFNob3VsZCB1c2UgUU1pbWVUeXBlIGluIFF0IDUuCisgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJY29uOjpwYWludChHcmFwaGlj
c0NvbnRleHQqIGN0eCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCiB7Ci0gICAgUVBpeG1hcCBweCA9IG1faWNv
bi5waXhtYXAocmVjdC5zaXplKCkpOwotICAgIFFQYWludGVyICpwID0gc3RhdGljX2Nhc3Q8UVBh
aW50ZXIqPihjdHgtPnBsYXRmb3JtQ29udGV4dCgpKTsKLSAgICBpZiAocCAmJiAhcHguaXNOdWxs
KCkpCi0gICAgICAgIHAtPmRyYXdQaXhtYXAocmVjdC54KCksIHJlY3QueSgpLCBweCk7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCBmYTc4ZTAxYmU4NjZmZDc4ODcxZWJiYTQ2MjM0
ZTIyNGYyNTUxNTFiLi5lYjRiZTJkNGEzYzQxYTA3NWQzOTkzN2Q4ODY3N2Q5YjMyMzY3MmY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcApA
QCAtNDEsMTMgKzQxLDEyIEBACiAjaW5jbHVkZSAiU2hhZG93Qmx1ci5oIgogI2luY2x1ZGUgIlN0
aWxsSW1hZ2VRdC5oIgogCi0jaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFDb3Jl
QXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlYnVnPgogI2luY2x1ZGUgPFFJbWFnZT4KICNpbmNs
dWRlIDxRSW1hZ2VSZWFkZXI+CiAjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSA8UVBpeG1h
cD4KLSNpbmNsdWRlIDxRU3R5bGU+CiAjaW5jbHVkZSA8UVRyYW5zZm9ybT4KIAogI2luY2x1ZGUg
PG1hdGguaD4KQEAgLTgxLDEwICs4MCw2IEBAIHN0YXRpYyBXZWJHcmFwaGljSGFzaCogZ3JhcGhp
Y3MoKQogICAgICAgICBoYXNoLT5pbnNlcnQoImRlbGV0ZUJ1dHRvbiIsIFFQaXhtYXAoUUxhdGlu
MVN0cmluZygiOndlYmtpdC9yZXNvdXJjZXMvZGVsZXRlQnV0dG9uLnBuZyIpKSk7CiAgICAgICAg
IC8vIFFXZWJTZXR0aW5nczo6SW5wdXRTcGVlY2hCdXR0b25HcmFwaGljCiAgICAgICAgIGhhc2gt
Pmluc2VydCgiaW5wdXRTcGVlY2giLCBRUGl4bWFwKFFMYXRpbjFTdHJpbmcoIjp3ZWJraXQvcmVz
b3VyY2VzL2lucHV0U3BlZWNoLnBuZyIpKSk7Ci0gICAgICAgIC8vIFFXZWJTZXR0aW5nczo6U2Vh
cmNoQ2FuY2VsQnV0dG9uR3JhcGhpYwotICAgICAgICBoYXNoLT5pbnNlcnQoInNlYXJjaENhbmNl
bEJ1dHRvbiIsIFFBcHBsaWNhdGlvbjo6c3R5bGUoKS0+c3RhbmRhcmRQaXhtYXAoUVN0eWxlOjpT
UF9EaWFsb2dDbG9zZUJ1dHRvbikpOwotICAgICAgICAvLyBRV2ViU2V0dGluZ3M6OlNlYXJjaENh
bmNlbEJ1dHRvblByZXNzZWRHcmFwaGljCi0gICAgICAgIGhhc2gtPmluc2VydCgic2VhcmNoQ2Fu
Y2VsQnV0dG9uUHJlc3NlZCIsIFFBcHBsaWNhdGlvbjo6c3R5bGUoKS0+c3RhbmRhcmRQaXhtYXAo
UVN0eWxlOjpTUF9EaWFsb2dDbG9zZUJ1dHRvbikpOwogICAgIH0KIAogICAgIHJldHVybiBoYXNo
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29udGV4dE1lbnVRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAppbmRleCA2
MWFhYjZkYWRkMGIxOTg3Njk2ZWYyYjljYTA5MzBiNzE5MWQ3MWI4Li4wZmVmZWI5ODY5ZTBiNDQ0
MjUyMDM4NzZlMzMwODc2OTMxYTk5OWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9Db250ZXh0TWVudVF0LmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPERvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8RnJhbWUuaD4KICNpbmNsdWRlIDxGcmFtZVZpZXcuaD4KLSNpbmNsdWRl
IDxRQWN0aW9uPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2Ny
ZWVuUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAKaW5kZXggM2MxMzI5YmEzMTJkMmVjNTJmNzEzZmE1ZGYyMjMxNDI5NmMzMzhhMy4uNjJkY2Y1
MDFmMmI2NDJkMDYwMGE4OTI2NzJmZTdjNDQ5NmIwMzI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKQEAgLTM4LDggKzM4LDEzIEBACiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRl
ICJRV2ViUGFnZUNsaWVudC5oIgorI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1
LCAwLCAwKQorI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRU2NyZWVuPgor
I2Vsc2UKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlc2t0b3BXaWRnZXQ+
CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NiwxMSArNzEsMjAgQEAgc3Rh
dGljIGludCBzY3JlZW5OdW1iZXIoV2lkZ2V0KiB3KQogCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0
KiB3KQogeworI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorICAg
IHJldHVybiBRR3VpQXBwbGljYXRpb246OnNjcmVlbnMoKS52YWx1ZShzY3JlZW5OdW1iZXIodykp
LT5kZXB0aCgpOworI2Vsc2UKICAgICByZXR1cm4gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNj
cmVlbihzY3JlZW5OdW1iZXIodykpLT5kZXB0aCgpOworI2VuZGlmCiB9CiAKIGludCBzY3JlZW5E
ZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHcpCiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDUsIDAsIDApCisgICAgaW50IGRlcHRoID0gUUd1aUFwcGxpY2F0aW9uOjpwcmlt
YXJ5U2NyZWVuKCktPmRlcHRoKCk7CisgICAgLy8gRklYTUU6IFVzZSB3aWRnZXQncyBzY3JlZW4K
KyAgICBRX1VOVVNFRCh3KTsKKyNlbHNlCiAgICAgaW50IGRlcHRoID0gUUFwcGxpY2F0aW9uOjpk
ZXNrdG9wKCktPnNjcmVlbigwKS0+ZGVwdGgoKTsKICAgICBpZiAodykgewogICAgICAgICBRV2Vi
UGFnZUNsaWVudCogY2xpZW50ID0gdy0+cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpOwpAQCAtODEsNiArOTUsNyBAQCBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQo
V2lkZ2V0KiB3KQogICAgICAgICAgICAgICAgIGRlcHRoID0gdmlldy0+ZGVwdGgoKTsKICAgICAg
ICAgfQogICAgIH0KKyNlbmRpZgogICAgIC8vIEFuIGludGVyZmFjZSB0byBlc3RhYmxpc2ggdGhl
IGFjdHVhbCBudW1iZXIgb2YgYml0cyBwZXIgY29sb3IKICAgICAvLyBkb2Vzbid0IGV4aXN0IGlu
IFF0LCBvciBwcm9iYWJseSBhdCBhbGwsIHNvIHVzZSBjb21tb24tc2Vuc2UKICAgICAvLyB2YWx1
ZXMgZm9yIGVhY2ggc2NyZWVuIGRlcHRoIGFuZCBhc3N1bWUgUkdCL1JHQkEgd2hlcmUgYXBwcm9w
cmlhdGUuCkBAIC05OSwxOCArMTE0LDMyIEBAIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChX
aWRnZXQqIHcpCiAKIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCogdykKIHsKKyNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyAgICBRX1VOVVNFRCh3KTsK
KyAgICAvLyBGSVhNRTogSW4gUXQgNSBjb2xvckNvdW50KCkgaXNuJ3QgZXZlbiBpbXBsZW1lbnRl
ZCBiZXlvbmQgcmV0dXJuaW5nIDI1NiA6KQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCiAgICAg
cmV0dXJuIFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW4oc2NyZWVuTnVtYmVyKHcpKS0+
Y29sb3JDb3VudCgpID09IDI7CisjZW5kaWYKIH0KIAogRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lk
Z2V0KiB3aWRnZXQpCiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAs
IDApCisgICAgUVJlY3QgciA9IFFHdWlBcHBsaWNhdGlvbjo6c2NyZWVucygpLnZhbHVlKHNjcmVl
bk51bWJlcih3aWRnZXQpKS0+Z2VvbWV0cnkoKTsKKyNlbHNlCiAgICAgUVJlY3QgciA9IFFBcHBs
aWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShzY3JlZW5OdW1iZXIod2lkZ2V0KSk7
CisjZW5kaWYKICAgICByZXR1cm4gRmxvYXRSZWN0KHIueCgpLCByLnkoKSwgci53aWR0aCgpLCBy
LmhlaWdodCgpKTsKIH0KIAogRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0KiB3
aWRnZXQpCiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisg
ICAgUVJlY3QgciA9IFFHdWlBcHBsaWNhdGlvbjo6c2NyZWVucygpLnZhbHVlKHNjcmVlbk51bWJl
cih3aWRnZXQpKS0+YXZhaWxhYmxlR2VvbWV0cnkoKTsKKyNlbHNlCiAgICAgUVJlY3QgciA9IFFB
cHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5hdmFpbGFibGVHZW9tZXRyeShzY3JlZW5OdW1iZXIod2lk
Z2V0KSk7CisjZW5kaWYKICAgICByZXR1cm4gRmxvYXRSZWN0KHIueCgpLCByLnkoKSwgci53aWR0
aCgpLCByLmhlaWdodCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvUVdlYlBhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQ
YWdlQ2xpZW50LmgKaW5kZXggODM5NmNhY2E1ZTVhNWQ2ZTRkOGQ3NWI0NWY0M2U1M2U1ZTk2Mzk3
My4uYzhmMjRmMzZiYjQ3OWFlNTAzMGJhMDE2ZGI0M2ZlYzFjOGNiMGY0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCkBAIC00MSw2ICs0MSwxMCBAQCBR
VF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFTdHlsZTsKIFFUX0VORF9OQU1FU1BBQ0UKIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgV2lkZ2V0OworfQorCiBjbGFzcyBRV2ViUGFnZUNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UVdlYlBhZ2VDbGllbnQoKSB7IH0KQEAgLTk1LDYg
Kzk5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBRUmVjdEYgd2luZG93UmVjdCgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRXaWRnZXRWaXNpYmxlKFdlYkNvcmU6OldpZGdl
dCosIGJvb2wgdmlzaWJsZSkgPSAwOworCiBwcm90ZWN0ZWQ6CiAjaWZuZGVmIFFUX05PX0NVUlNP
UgogICAgIHZpcnR1YWwgUUN1cnNvciBjdXJzb3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1NvdW5kUXQuY3BwCmluZGV4IGJmOWUxNDI2YWYwYzhkMmI4ZmNjMmNlYzY2NDQy
OTE2MTk2Y2ZmM2IuLjdlM2M5OTExOWZjNjMzZGI5MTg3YmNjODZlZTgzNmU3YTAyNDhlYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NvdW5kUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NvdW5kUXQuY3BwCkBAIC0yOCwxMyArMjgsMTYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTb3VuZC5oIgogCi0jaW5jbHVkZSA8UUFw
cGxpY2F0aW9uPgorI2luY2x1ZGUgPE5vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdm9pZCBzeXN0ZW1CZWVwKCkKIHsKLSAgICBRQXBwbGljYXRpb246OmJlZXAoKTsK
KyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIGluIFF0IDUgcmlnaHQgbm93LiBUaGUgaW1w
bGVtZW50YXRpb24gaW4gUUFwcGxpY2F0aW9uOmJlZXAoKQorICAgIC8vIGlzIGVtcHR5LiBJZiBh
bnlvbmUgaXMgZ29pbmcgdG8gYm90aGVyIGltcGxlbWVudGluZyB0aGlzIHZpYSBRUGxhdGZvcm1O
YXRpdmVJbnRlcmZhY2UsIHRoZW4KKyAgICAvLyB3ZSBjb3VsZCB1c2UgdGhhdCBoZXJlLgorICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1dpZGdldFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dpZGdl
dFF0LmNwcAppbmRleCA1MjE1ZTY2NjExOTkwOTFhYmI2MTA5ODJiMjg2NjUzZjI3MGZiMTJlLi44
NmVlNDMwN2YyYWM5YWMwYmM5ZDNkYjVlZThmMzdlNjAxN2VhNDkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvV2lkZ2V0UXQuY3BwCkBAIC00NSwxMSArNDUsMTAgQEAKICNpbmNsdWRlIDxR
RGVidWc+CiAjaW5jbHVkZSA8UVBhaW50RW5naW5lPgogI2luY2x1ZGUgPFFQYWludGVyPgotI2lu
Y2x1ZGUgPFFXaWRnZXQ+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2lkZ2V0OjpXaWRnZXQo
UVdpZGdldCogd2lkZ2V0KQorV2lkZ2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQog
ewogICAgIGluaXQod2lkZ2V0KTsKIH0KQEAgLTg5LDE2ICs4OCwyNCBAQCB2b2lkIFdpZGdldDo6
c2hvdygpCiB7CiAgICAgc2V0U2VsZlZpc2libGUodHJ1ZSk7CiAKLSAgICBpZiAoaXNQYXJlbnRW
aXNpYmxlKCkgJiYgcGxhdGZvcm1XaWRnZXQoKSkKLSAgICAgICAgcGxhdGZvcm1XaWRnZXQoKS0+
c2hvdygpOworICAgIGlmICghaXNQYXJlbnRWaXNpYmxlKCkgfHwgIXBsYXRmb3JtV2lkZ2V0KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSByb290KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgaWYgKGNsaWVudCkKKyAg
ICAgICAgY2xpZW50LT5zZXRXaWRnZXRWaXNpYmxlKHRoaXMsIHRydWUpOwogfQogCiB2b2lkIFdp
ZGdldDo6aGlkZSgpCiB7CiAgICAgc2V0U2VsZlZpc2libGUoZmFsc2UpOwogCi0gICAgaWYgKGlz
UGFyZW50VmlzaWJsZSgpICYmIHBsYXRmb3JtV2lkZ2V0KCkpCi0gICAgICAgIHBsYXRmb3JtV2lk
Z2V0KCktPmhpZGUoKTsKKyAgICBpZiAoIWlzUGFyZW50VmlzaWJsZSgpIHx8ICFwbGF0Zm9ybVdp
ZGdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0g
cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmIChjbGll
bnQpCisgICAgICAgIGNsaWVudC0+c2V0V2lkZ2V0VmlzaWJsZSh0aGlzLCBmYWxzZSk7CiB9CiAK
IHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggY2IzZWU0MmNhYTM1YzhhMzlmOTIzMjU2
ZmE5NmNjM2JjZWVkZDZkMS4uMTEyODUyMmQwMjFmODFhOGJmNWZkZTFkZDc2MWMzNjBkNDhjMWY1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTYxLDcgKzYxLDYgQEAgdHlw
ZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBsdWdpbldpZGdldDsKICNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIgogI2VuZGlmCiAKLSNpbmNsdWRlIDxRR3JhcGhpY3NJ
dGVtPgogI2luY2x1ZGUgPFFJbWFnZT4KIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUVBhaW50
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5k
ZXggMDZlMGZlOThlMjUyYWExYzAwMzY2MzYxMjE4M2NmZTY1YmFiYWEwZC4uNGNiNGMwZTY3NTU2
MmFhOGEyYjUzN2MzYTJkNjM4YzBiYWQ0MmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNjksNyArNjksNyBAQAogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxRV2lkZ2V0PgorI2luY2x1ZGUgPFFWYXJpYW50Pgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3NSwxNCArNDc1LDEzIEBAIHZvaWQg
UmVuZGVyVHJlZUFzVGV4dDo6d3JpdGVSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFJlbmRlck9iamVjdCYgbywKICAgICBpZiAoby5pc1JlbmRlclBhcnQoKSkgewogICAgICAgICBj
b25zdCBSZW5kZXJQYXJ0KiBwYXJ0ID0gdG9SZW5kZXJQYXJ0KGNvbnN0X2Nhc3Q8UmVuZGVyT2Jq
ZWN0Kj4oJm8pKTsKICAgICAgICAgaWYgKHBhcnQtPndpZGdldCgpICYmIHBhcnQtPndpZGdldCgp
LT5wbGF0Zm9ybVdpZGdldCgpKSB7Ci0gICAgICAgICAgICBRV2lkZ2V0KiB3aWQgPSBwYXJ0LT53
aWRnZXQoKS0+cGxhdGZvcm1XaWRnZXQoKTsKKyAgICAgICAgICAgIFFPYmplY3QqIHdpZCA9IHBh
cnQtPndpZGdldCgpLT5wbGF0Zm9ybVdpZGdldCgpOwogCiAgICAgICAgICAgICB0cyA8PCAiIFtR
VDogIjsKLSAgICAgICAgICAgIHRzIDw8ICJnZW9tZXRyeTogeyIgPDwgd2lkLT5nZW9tZXRyeSgp
IDw8ICJ9ICI7Ci0gICAgICAgICAgICB0cyA8PCAiaXNIaWRkZW46ICIgPDwgd2lkLT5pc0hpZGRl
bigpIDw8ICIgIjsKKyAgICAgICAgICAgIHRzIDw8ICJnZW9tZXRyeTogeyIgPDwgd2lkLT5wcm9w
ZXJ0eSgiZ2VvbWV0cnkiKS50b1JlY3QoKSA8PCAifSAiOworICAgICAgICAgICAgdHMgPDwgImlz
SGlkZGVuOiAiIDw8ICF3aWQtPnByb3BlcnR5KCJpc1Zpc2libGUiKS50b0Jvb2woKSA8PCAiICI7
CiAgICAgICAgICAgICB0cyA8PCAiaXNTZWxmVmlzaWJsZTogIiA8PCBwYXJ0LT53aWRnZXQoKS0+
aXNTZWxmVmlzaWJsZSgpIDw8ICIgIjsKLSAgICAgICAgICAgIHRzIDw8ICJpc1BhcmVudFZpc2li
bGU6ICIgPDwgcGFydC0+d2lkZ2V0KCktPmlzUGFyZW50VmlzaWJsZSgpIDw8ICIgIjsKLSAgICAg
ICAgICAgIHRzIDw8ICJtYXNrOiB7IiA8PCB3aWQtPm1hc2soKS5ib3VuZGluZ1JlY3QoKSA8PCAi
fSBdICI7CisgICAgICAgICAgICB0cyA8PCAiaXNQYXJlbnRWaXNpYmxlOiAiIDw8IHBhcnQtPndp
ZGdldCgpLT5pc1BhcmVudFZpc2libGUoKSA8PCAiIF0gIjsKICAgICAgICAgfQogICAgIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDhlZDdjMWM5OWJiYmViMTE1YmMx
NzczZGY4ZmNmNTg4NDA3YTFjMGEuLmZlZWE2ZmQ2ZGYwMDM0NGE1MWEzOTE0NmEwMDJiM2U3NDZh
MjMwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTExNSw2ICsxMTUsNyBAQAog
I2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAK
KyNpbmNsdWRlIDxRQWN0aW9uPgogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxR
QmFzaWNUaW1lcj4KICNpbmNsdWRlIDxRQml0QXJyYXk+CkBAIC0xMjYsNiArMTI3LDcgQEAKICNp
bmNsdWRlIDxRRHJvcEV2ZW50PgogI2luY2x1ZGUgPFFGaWxlRGlhbG9nPgogI2luY2x1ZGUgPFFJ
bnB1dERpYWxvZz4KKyNpbmNsdWRlIDxRTWVudT4KICNpbmNsdWRlIDxRTWVzc2FnZUJveD4KICNp
bmNsdWRlIDxRTmV0d29ya1Byb3h5PgogI2luY2x1ZGUgPFFVbmRvU3RhY2s+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCmluZGV4IDYyYWE2NDM1Y2EzNmIwZDAyYTIzNmVmMmZlN2JmMWYyNDdjN2I0NGEu
LjkyYzk4Y2QzN2FiNzkyMzU3ODljMWM1NTVmNmE4ZTMwZTA3NTBhMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCkBAIC05OCw2ICs5OCw5IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UXQuaCIKICNlbmRpZgogCisjaW5jbHVkZSA8UUFjdGlvbj4KKyNpbmNsdWRlIDxRTWVudT4KKwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFFNYXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBt
X3dvcmxkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMjBmMzFiM2I2YWJjOGZjYjY2YzUyNWNjMGQ2
ZTcyOTkyZDA3MmFkNy4uYWI3ZTk1Y2E2YTU5MzA2MDc1Yzk5MTU3MzIwMTdlZGY0NzY0NWQ2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCkBAIC0xNDUxLDE1ICsxNDUxLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcikKICAgICB7IAogICAgICAg
ICBpZiAocGxhdGZvcm1XaWRnZXQoKSkKLSAgICAgICAgICAgIHBsYXRmb3JtV2lkZ2V0KCktPnVw
ZGF0ZShyKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFFXaWRnZXQqPihwbGF0Zm9ybVdpZGdl
dCgpKS0+dXBkYXRlKHIpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVSZWN0c0NoYW5n
ZWQoKQogICAgIHsKLSAgICAgICAgaWYgKCFwbGF0Zm9ybVdpZGdldCgpKQorICAgICAgICBRV2lk
Z2V0KiB3aWRnZXQgPSBzdGF0aWNfY2FzdDxRV2lkZ2V0Kj4ocGxhdGZvcm1XaWRnZXQoKSk7Cisg
ICAgICAgIGlmICghd2lkZ2V0KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIEludFJl
Y3Qgd2luZG93UmVjdCA9IGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coSW50UmVjdCgwLCAwLCBm
cmFtZVJlY3QoKS53aWR0aCgpLCBmcmFtZVJlY3QoKS5oZWlnaHQoKSkpOwotICAgICAgICBwbGF0
Zm9ybVdpZGdldCgpLT5zZXRHZW9tZXRyeSh3aW5kb3dSZWN0KTsKKyAgICAgICAgd2lkZ2V0LT5z
ZXRHZW9tZXRyeSh3aW5kb3dSZWN0KTsKIAogICAgICAgICBTY3JvbGxWaWV3KiBwYXJlbnRTY3Jv
bGxWaWV3ID0gcGFyZW50KCk7CiAgICAgICAgIGlmICghcGFyZW50U2Nyb2xsVmlldykKQEAgLTE0
NjgsMTQgKzE0NjksMTQgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocGFyZW50U2Nyb2xsVmll
dy0+aXNGcmFtZVZpZXcoKSk7CiAgICAgICAgIEludFJlY3QgY2xpcFJlY3Qoc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyktPndpbmRvd0NsaXBSZWN0KCkpOwogICAgICAg
ICBjbGlwUmVjdC5tb3ZlKC13aW5kb3dSZWN0LngoKSwgLXdpbmRvd1JlY3QueSgpKTsKLSAgICAg
ICAgY2xpcFJlY3QuaW50ZXJzZWN0KHBsYXRmb3JtV2lkZ2V0KCktPnJlY3QoKSk7CisgICAgICAg
IGNsaXBSZWN0LmludGVyc2VjdCh3aWRnZXQtPnJlY3QoKSk7CiAKICAgICAgICAgUVJlZ2lvbiBj
bGlwUmVnaW9uID0gUVJlZ2lvbihjbGlwUmVjdCk7Ci0gICAgICAgIHBsYXRmb3JtV2lkZ2V0KCkt
PnNldE1hc2soY2xpcFJlZ2lvbik7CisgICAgICAgIHdpZGdldC0+c2V0TWFzayhjbGlwUmVnaW9u
KTsKIAogICAgICAgICBoYW5kbGVWaXNpYmlsaXR5KCk7CiAKLSAgICAgICAgcGxhdGZvcm1XaWRn
ZXQoKS0+dXBkYXRlKCk7CisgICAgICAgIHdpZGdldC0+dXBkYXRlKCk7CiAgICAgfQogCiAgICAg
dmlydHVhbCB2b2lkIHNob3coKQpAQCAtMTQ5MCwxMCArMTQ5MSwxMSBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAoIWlzVmlzaWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIFFX
aWRnZXQqIHdpZGdldCA9IHN0YXRpY19jYXN0PFFXaWRnZXQqPihwbGF0Zm9ybVdpZGdldCgpKTsK
ICAgICAgICAgLy8gSWYgc2V0TWFzayBpcyBzZXQgd2l0aCBhbiBlbXB0eSBRUmVnaW9uLCBubyBj
bGlwcGluZyB3aWxsCiAgICAgICAgIC8vIGJlIHBlcmZvcm1lZCwgc28gaW4gdGhhdCBjYXNlIHdl
IGhpZGUgdGhlIHBsYXRmb3JtV2lkZ2V0LgotICAgICAgICBRUmVnaW9uIG1hc2sgPSBwbGF0Zm9y
bVdpZGdldCgpLT5tYXNrKCk7Ci0gICAgICAgIHBsYXRmb3JtV2lkZ2V0KCktPnNldFZpc2libGUo
IW1hc2suaXNFbXB0eSgpKTsKKyAgICAgICAgUVJlZ2lvbiBtYXNrID0gd2lkZ2V0LT5tYXNrKCk7
CisgICAgICAgIHdpZGdldC0+c2V0VmlzaWJsZSghbWFzay5pc0VtcHR5KCkpOwogICAgIH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5pdFdlYkNv
cmVRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luaXRXZWJDb3JlUXQu
Y3BwCmluZGV4IDQwZjZmZTdjOTdlYmM0ZGI2N2RhY2IwOTU0OTcyYTA5ZjhkOGUyMTcuLjVjYmQ4
MmM1ODRlM2M0NDY4ODdmYmM4OWM2YTZmMTFjMjgzYTc1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5pdFdlYkNvcmVRdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Jbml0V2ViQ29yZVF0LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluaXRXZWJDb3JlUXQuaCIKIAorI2lu
Y2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAg
LTM5LDYgKzQwLDggQEAKICNlbmRpZgogCiAjaW5jbHVkZSAicXdlYmVsZW1lbnRfcC5oIgorI2lu
Y2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRU3R5bGU+CiAKICNpbmNsdWRlIDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpA
QCAtNjMsNiArNjYsMTEgQEAgdm9pZCBpbml0aWFsaXplV2ViQ29yZVF0KCkKICAgICBJbml0V2Vi
Q29yZVN5c3RlbUludGVyZmFjZSgpOwogI2VuZGlmCiAKKyAgICAvLyBRV2ViU2V0dGluZ3M6OlNl
YXJjaENhbmNlbEJ1dHRvbkdyYXBoaWMKKyAgICBJbWFnZTo6c2V0UGxhdGZvcm1SZXNvdXJjZSgi
c2VhcmNoQ2FuY2VsQnV0dG9uIiwgUUFwcGxpY2F0aW9uOjpzdHlsZSgpLT5zdGFuZGFyZFBpeG1h
cChRU3R5bGU6OlNQX0RpYWxvZ0Nsb3NlQnV0dG9uKSk7CisgICAgLy8gUVdlYlNldHRpbmdzOjpT
ZWFyY2hDYW5jZWxCdXR0b25QcmVzc2VkR3JhcGhpYworICAgIEltYWdlOjpzZXRQbGF0Zm9ybVJl
c291cmNlKCJzZWFyY2hDYW5jZWxCdXR0b25QcmVzc2VkIiwgUUFwcGxpY2F0aW9uOjpzdHlsZSgp
LT5zdGFuZGFyZFBpeG1hcChRU3R5bGU6OlNQX0RpYWxvZ0Nsb3NlQnV0dG9uKSk7CisKICAgICBp
bml0aWFsaXplZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUGFnZUNsaWVudFF0LmNwcAppbmRleCA0NWRjZmJiZTEyM2RhNmUyYzE2MzYwYzE3MWVm
ODgyNzE5MzEwZTM0Li40NjM4NWExNjNkMWRmNTRlODJlOGUzNGE3NDJmYWQxMmQ1OTFkZjUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuY3Bw
CkBAIC0xNzgsNiArMTc4LDE0IEBAIFFSZWN0RiBQYWdlQ2xpZW50UVdpZGdldDo6d2luZG93UmVj
dCgpIGNvbnN0CiAgICAgcmV0dXJuIFFSZWN0Rih2aWV3LT53aW5kb3coKS0+Z2VvbWV0cnkoKSk7
CiB9CiAKK3ZvaWQgUGFnZUNsaWVudFFXaWRnZXQ6OnNldFdpZGdldFZpc2libGUoV2lkZ2V0ICp3
aWRnZXQsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBRV2lkZ2V0KiBxdFdpZGdldCA9IHFvYmplY3Rf
Y2FzdDxRV2lkZ2V0Kj4od2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKTsKKyAgICBpZiAoIXF0V2lk
Z2V0KQorICAgICAgICByZXR1cm47CisgICAgcXRXaWRnZXQtPnNldFZpc2libGUodmlzaWJsZSk7
Cit9CisKICNpZiAhZGVmaW5lZChRVF9OT19HUkFQSElDU1ZJRVcpCiBQYWdlQ2xpZW50UUdyYXBo
aWNzV2lkZ2V0Ojp+UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCgpCiB7CkBAIC00MDUsNiArNDEz
LDExIEBAIFFTdHlsZSogUGFnZUNsaWVudFFHcmFwaGljc1dpZGdldDo6c3R5bGUoKSBjb25zdAog
ICAgIHJldHVybiB2aWV3LT5zdHlsZSgpOwogfQogCit2b2lkIFBhZ2VDbGllbnRRR3JhcGhpY3NX
aWRnZXQ6OnNldFdpZGdldFZpc2libGUoV2lkZ2V0ICosIGJvb2wpCit7CisgICAgLy8gRG9lc24n
dCBtYWtlIHNlbnNlLCBkb2VzIGl0PworfQorCiBRUmVjdEYgUGFnZUNsaWVudFFHcmFwaGljc1dp
ZGdldDo6d2luZG93UmVjdCgpIGNvbnN0CiB7CiAgICAgaWYgKCF2aWV3LT5zY2VuZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmgKaW5kZXggMzQ4
MDQ0OWQyYjk4MzBlNjkyZjdjZTM4ZWI1ZjgwNjMyOWQwNmY0OS4uZmFiZjkwZDc2NzYxYWJmMTY1
ZTZkMGM4N2M2ZDhjOGUxMDVjMThjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1BhZ2VDbGllbnRRdC5oCkBAIC05Nyw2ICs5Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgUVJlY3RGIHdpbmRvd1JlY3QoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRX
aWRnZXRWaXNpYmxlKFdpZGdldCosIGJvb2wgdmlzaWJsZSk7CisKICAgICBRV2lkZ2V0KiB2aWV3
OwogICAgIFFXZWJQYWdlKiBwYWdlOwogCkBAIC0xOTgsNiArMjAwLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBib29sIHZpZXdSZXNpemVzVG9Db250ZW50c0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiB2aWV3UmVzaXplc1RvQ29udGVudHM7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRXaWRn
ZXRWaXNpYmxlKFdpZGdldCosIGJvb2wpOworCiAgICAgdm9pZCBjcmVhdGVPckRlbGV0ZU92ZXJs
YXkoKTsKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmNwcAppbmRleCBmZWJh
ODJmN2NmNWZjNjFiMzJkYmU1ZWI3MjY3OTQ4MDgzMjE0MDAxLi43MmI5NmJhZTQzOTlhYjBlNzMx
YzNjNTE4ZmU1OWU2MDFmZTQ3NTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oIgogI2luY2x1ZGUgInFxdWlja3dl
YnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUgPFFDdXJz
b3I+CiAjaW5jbHVkZSA8UURyYWc+CiAjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
PgogI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127153</attachid>
            <date>2012-02-15 03:45:02 -0800</date>
            <delta_ts>2012-02-15 05:54:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78611-20120215124500.patch</filename>
            <type>text/plain</type>
            <size>32873</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNlZjcxYTQyZmMxNmRm
ZjJiNTNjZjAzNDFkNTNlZjExZTk1MjA5ZS4uNDdlMTlkNDE0YThmYWUxMGIzMWI1YmQ3YjU3NWU1
MDhlYjcwYzA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTAyLTE0ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIEVs
aW1pbmF0ZSBmaXJzdCBzZXQgb2YgUXRXaWRnZXRzIGRlcGVuZGVuY2llcyBmcm9tIFdlYkNvcmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjExCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwOiBSZW1vdmUgdW51c2VkIGluY2x1ZGUuCisgICAg
ICAgICogcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFJlcGxhY2UgaW1wb3J0CisgICAgICAg
IG9mIHByaXZhdGUgUXQoV2lkZ2V0cykgdmFyaWFibGUgd2l0aCB0aGUgZGVmYXVsdCBvZiBRdCA1
LCB3aGVyZQorICAgICAgICBpdCBpcyBhbHNvIG5vdCBjb25maWd1cmFibGUuCisgICAgICAgICog
cGxhdGZvcm0vQ29udGV4dE1lbnUuaDogUmVtb3ZlIHVudXNlZCBpbmNsdWRlLgorICAgICAgICAq
IHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9X
aWRnZXQuaDogVXNlIFFPYmplY3QgYXMgdHlwZSBmb3IgUGxhdGZvcm1XaWRnZXQKKyAgICAgICAg
aW5zdGVhZCBvZiBRV2lkZ2V0LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ljb24uaDoK
KyAgICAgICAgKEljb24pOiBQcmVmZXIgUUltYWdlIG92ZXIgUUljb24gZm9yIHN0b3JhZ2UuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1BsYXRmb3JtVmlkZW9XaW5kb3dQ
cml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlKTogTWFrZSBpdCBjb21waWxlIHdpdGggUVdpbmRv
dyBmb3IgUXQgNSBhbmQgUVdpZGdldCBmb3IgUXQgNC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvUGxhdGZvcm1WaWRlb1dpbmRvd1F0LmNwcDoKKyAgICAgICAgKEZ1bGxT
Y3JlZW5WaWRlb1dpbmRvdzo6RnVsbFNjcmVlblZpZGVvV2luZG93KToKKyAgICAgICAgKEZ1bGxT
Y3JlZW5WaWRlb1dpbmRvdzo6a2V5UHJlc3NFdmVudCk6CisgICAgICAgIChGdWxsU2NyZWVuVmlk
ZW9XaW5kb3c6OmV2ZW50KToKKyAgICAgICAgKEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzo6c2hvd0Z1
bGxTY3JlZW4pOgorICAgICAgICAoUGxhdGZvcm1WaWRlb1dpbmRvdzo6UGxhdGZvcm1WaWRlb1dp
bmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSWNvblF0LmNwcDogUmV2ZXJ0
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNsYXNzCisgICAgICAgIGJhY2sgdG8gbm90SW1w
bGVtZW50ZWQoKS4gSXQgd2FzIHRyeWluZyB0byBsb2FkIHRoZSBhY3R1YWwgZmlsZSBhcyBRSWNv
bgorICAgICAgICBpbnN0ZWFkIG9mIHRyeWluZyB0byBmaW5kIGEgc3ltYm9saWMgaWNvbiBmb3Ig
dGhlIGdpdmVuIGZpbGUuIFdlIHNob3VsZAorICAgICAgICBwcm9iYWJseSB1c2UgdGhlIFFNaW1l
VHlwZSBBUEkgaW4gUXQgNSBvbmNlIGl0IGJlY29tZXMgYXZhaWxhYmxlLgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246
OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoKKyAg
ICAgICAgKGdyYXBoaWNzKTogUmVtb3ZlIHVzZSBvZiBRU3R5bGUgZm9yIHJldHJpZXZpbmcgaWNv
bnMuIENvZGUgbW92ZWQgdG8KKyAgICAgICAgV2ViQ29yZVN1cHBvcnQgaW5zdGVhZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcDogUmVtb3ZlZCB1bnVzZWQgaW5jbHVk
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDogQWRkICNpZmRl
ZnMgdG8gdXNlIFFTY3JlZW4gQVBJCisgICAgICAgIHdpdGggUXQgNS4KKyAgICAgICAgKFdlYkNv
cmU6OnNjcmVlbkRlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9u
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJl
Y3QpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50Lmg6IEFkZCBob29rIGZv
ciBzaG93aW5nL2hpZGluZyB3aWRnZXQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFFX
ZWJQYWdlQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnN5c3RlbUJlZXApOiBCZWVwIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBRdCA1
IGFuZCBpdHMgdXNlIGlzCisgICAgICAgIHF1ZXN0aW9uYWJsZS4gTW92ZSBiYWNrIHRvIG5vdElt
cGxlbWVudGVkKCkgdW50aWwgcHJvcGVyIFFQQSBBUEkgYmVjb21lcworICAgICAgICBhdmFpbGFi
bGUgaW4gUXQgNSAoaWYgZXZlci4uLikuCisgICAgICAgICogcGxhdGZvcm0vcXQvV2lkZ2V0UXQu
Y3BwOiBEZWxlZ2F0ZSBRV2lkZ2V0IHNwZWNpZmljIHNob3cvaGlkZSBjYWxscworICAgICAgICB0
byB0aGUgUGFnZUNsaWVudCwgb3V0IG9mIFdlYkNvcmUuCisgICAgICAgIChXZWJDb3JlOjpXaWRn
ZXQ6OldpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNob3cpOgorICAgICAgICAo
V2ViQ29yZTo6V2lkZ2V0OjpoaWRlKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDog
UmVtb3ZlIHVudXNlZCBpbmNsdWRlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVy
T2JqZWN0KTogV2hlbiBkdW1waW5nIHByb3BlcnRpZXMgb2YKKyAgICAgICAgUVdpZGdldCwgdXNl
IHRoZSBRT2JqZWN0IHByb3BlcnR5IEFQSSB0byByZXRyaWV2ZSB0aGUgdmFsdWVzIGluc3RlYWQg
b2YKKyAgICAgICAgUVdpZGdldCBzcGVjaWZpYyBBUEkuIFJlbW92ZWQgdGhlIG1hc2sgZnJvbSB0
aGUgZHVtcCBhcyBpdCdzIG5vdCBhdmFpbGFibGUKKyAgICAgICAgYXMgcHJvcGVydHkgYW5kIG91
ciBsYXlvdXQgdGVzdHMgZG9uJ3Qgc2VlbSB0byB1c2UgaXQuCisKIDIwMTItMDItMTQgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBUeXBvIGZpeCBhZnRl
ciByMTA3NzA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyM2M1ZTc2YzBlNDY3OWM0YzM2YTA0MGU2ZTlk
ODUzOTU1YjEzNDExLi43NGUzMzYxMjBiNWNhYjAwMWRlZWQzYmE3YThmZjNhOGMwNGMyOThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTE0ICBTaW1vbiBIYXVzbWFu
biAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIEVsaW1pbmF0ZSBm
aXJzdCBzZXQgb2YgUXRXaWRnZXRzIGRlcGVuZGVuY2llcyBmcm9tIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3Bw
OiBBZGQgbWlzc2luZyBpbmNsdWRlcy4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwOiBNYWtlIGl0IGNvbXBpbGUgYnkgY2FzdGluZworICAgICAg
ICB0aGUgUU9iamVjdCBiYXNlZCBQbGF0Zm9ybVdpZGdldCBiYWNrIHRvIFFXaWRnZXQgYmVmb3Jl
IGRvaW5nIFFXaWRnZXQKKyAgICAgICAgc3BlY2lmaWMgZnVuY3Rpb24gY2FsbHMuCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5pdFdlYkNvcmVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
bml0aWFsaXplV2ViQ29yZVF0KTogTW92ZWQgUVN0eWxlIHNwZWNpZmljIHdlYi1ncmFwaGljIGlu
aXRpYWxpemF0aW9uCisgICAgICAgIGhlcmUgZnJvbSBXZWJDb3JlLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ2xpZW50
UVdpZGdldDo6c2V0V2lkZ2V0VmlzaWJsZSk6IEltcGxlbWVudCBzaG93L2hpZGluZyBvZiB3aWRn
ZXRzCisgICAgICAgIHRocm91Z2ggZGVsZWdhdGlvbiB0byBRV2lkZ2V0LgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0OjpzZXRX
aWRnZXRWaXNpYmxlKTogUHJvdmlkZSBlbXB0eSB3aWRnZXQKKyAgICAgICAgc2hvdy9oaWRlIGlt
cGxlbWVudGF0aW9uLCBhcyBpdCBkb2Vzbid0IHNlZW0gdG8gbWFrZSBzZW5zZSBmb3IgZ3JhcGhp
Y3N2aWV3cy4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaDoKKyAgICAg
ICAgKFBhZ2VDbGllbnRRV2lkZ2V0KToKKyAgICAgICAgKFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRn
ZXQpOgorCiAyMDEyLTAyLTExICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0u
Y29tPgogCiAgICAgICAgIENvbnZlcnQgc3ZnL2FuaW1hdGlvbnMgdG8gdXNlIFNNSUwgbWV0aG9k
cyBmb3IgZHJpdmluZyB0aGUgdGltZWxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiZGE1NmVhN2FhMmFmN2E5
Y2I5OTZlOWQ3NTAyN2E0YzFmOThiYTcwLi45YjM5MjMxYjgzOWUyODg3ZjViN2NlMThlNGRlYTQ5
NjAwZjMwODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMTQgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gRWxp
bWluYXRlIGZpcnN0IHNldCBvZiBRdFdpZGdldHMgZGVwZW5kZW5jaWVzIGZyb20gV2ViQ29yZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VFdmVudEhhbmRsZXIuY3BwOiBBZGQgbWlzc2luZyBRQ3Vyc29yIGluY2x1
ZGUKKyAgICAgICAgdG8gZml4IGNvbXBpbGF0aW9uLgorCiAyMDEyLTAyLTE0ICBObydhbSBSb3Nl
bnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtUZXhtYXBd
IFJlZmFjdG9yIGJhY2tpbmctc3RvcmUgY29kZSBpbiBUZXh0dXJlTWFwcGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlclF0LmNwcAppbmRleCBhOGNk
ZjlkZDBlY2NmODMyN2U3NWY1ODMyYjk1ZmFlMDcwNTNmMzcyLi45NzlhNGY2NThkZWM5OTdmYTkx
OTg1YTllOTM4OGIyYWQ0YWQyZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXJRdC5jcHAKQEAgLTQyLDggKzQyLDYgQEAKICNpbmNsdWRlICJx
dF9pbnN0YW5jZS5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogCi0jaW5jbHVkZSA8UVdp
ZGdldD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6
Okluc3RhbmNlPiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdl
dChXZWJDb3JlOjpXaWRnZXQqIHdpZGdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9FdmVudEhh
bmRsZXJRdC5jcHAKaW5kZXggMDZkYjEwNDU1Y2I3ZmUyYzc1YmQwMDllMGNlYWVjMjQ2MzY1ZTkx
ZS4uOGFlYmI5YzlhOTc2MWJkNjEwMWJkMmQ4NTE2NmU1MWQ2NWEzYWU2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAKQEAgLTUwLDkgKzUwLDExIEBACiAjaW5j
bHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAKKyNpZiBRVF9W
RVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQogUVRfQkVHSU5fTkFNRVNQQUNFCiBR
X0dVSV9FWFBPUlQgZXh0ZXJuIGJvb2wgcXRfdGFiX2FsbF93aWRnZXRzOyAvLyBmcm9tIHFhcHBs
aWNhdGlvbi5jcHAKIFFUX0VORF9OQU1FU1BBQ0UKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTY0LDcgKzY2LDExIEBAIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgPSAwLjA7CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJv
bHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0CiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9W
RVJTSU9OX0NIRUNLKDUsIDAsIDApCisgICAgcmV0dXJuICFpc0tleWJvYXJkT3B0aW9uVGFiKGV2
ZW50KTsKKyNlbHNlCiAgICAgcmV0dXJuIChpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KSA/ICFx
dF90YWJfYWxsX3dpZGdldHMgOiBxdF90YWJfYWxsX3dpZGdldHMpOworI2VuZGlmCiB9CiAKIHZv
aWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnUuaAppbmRleCAyYzUwYTkyMGJlMTcxMDBkNzY4YWJjYzlkM2U0MzkwY2M0ZGJj
NWNkLi4wMGNlYjIwMDk2OWRmMzI0ZmI0MTJkMmJlMjBmN2Y0MGVhZTQ1MzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTMzLDggKzMzLDYgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+Ci0jZWxpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxRTWVudT4KICNlbGlmIFBMQVRG
T1JNKFdJTikKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggMjUyMGM2NGU2ODI1NDgyOGIyNmVhZmUyMzI2
MDFmZWI1MzlhYTM5ZS4uMTViZmY0ODM5NTBjYzVlNTY3MTA5ZGNlMTI0NDMwMTQ1NmVmOWVhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTM5LDggKzM5
LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgdGFnTUVOVUlURU1JTkZPVyBNRU5VSVRFTUlORk87CiAjZWxp
ZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07
CiB0eXBlZGVmIHN0cnVjdCBfR3RrQWN0aW9uIEd0a0FjdGlvbjsKLSNlbGlmIFBMQVRGT1JNKFFU
KQotI2luY2x1ZGUgPFFBY3Rpb24+CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNzIHd4TWVudUl0
ZW07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggM2YxOWI2MWUyYzk1OWJj
YzYwNjlmOGFhYzY4N2ViZDdiNTI3NjRiMi4uZDcxMDcxNmJhNzQ0OTc3ZWE4MjA1Y2IwMTI1NzIy
YTMyOWQ5NWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTYzLDkgKzYzLDkgQEAg
dHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogCiAjaWYgUExBVEZPUk0oUVQpCiBR
VF9CRUdJTl9OQU1FU1BBQ0UKLWNsYXNzIFFXaWRnZXQ7CitjbGFzcyBRT2JqZWN0OwogUVRfRU5E
X05BTUVTUEFDRQotdHlwZWRlZiBRV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKK3R5cGVkZWYgUU9i
amVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdYKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IDc4MWEwOGNiMmU2Mzk4MGY5Mjll
YjI0Y2ZjYWI3MDBhY2E5Nzk3MjQuLmI3MDNjNzE0MTkwNWUwN2YwYWZhYTIzZTA3Y2UzOWYwNTlk
Y2JmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKQEAgLTMyLDcg
KzMyLDcgQEAgT0JKQ19DTEFTUyBOU0ltYWdlOwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRl
ZiBzdHJ1Y3QgSElDT05fXyogSElDT047CiAjZWxpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxR
SWNvbj4KKyNpbmNsdWRlIDxRSW1hZ2U+CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0
cnVjdCBfR2RrUGl4YnVmIEdka1BpeGJ1ZjsKICNlbGlmIFBMQVRGT1JNKEVGTCkKQEAgLTcwLDcg
KzcwLDcgQEAgcHJpdmF0ZToKICAgICBISUNPTiBtX2hJY29uOwogI2VsaWYgUExBVEZPUk0oUVQp
CiAgICAgSWNvbigpOwotICAgIFFJY29uIG1faWNvbjsKKyAgICBRSW1hZ2UgbV9pbWFnZTsKICNl
bGlmIFBMQVRGT1JNKEdUSykKICAgICBJY29uKCk7CiAgICAgR2RrUGl4YnVmKiBtX2ljb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxh
dGZvcm1WaWRlb1dpbmRvd1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZS5oCmluZGV4IGVlYjA4YzJl
MzBkMTI4ZmIwM2E5MTkxNmVhZDFjZmE4M2ZmOTA5ZmQuLjMzNjAwZjY5NmQ2NGYwZWMwNTIxZmEy
Mjk2M2Q4MjMxOWI1ZTNiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93
UHJpdmF0ZS5oCkBAIC0yMCwxOCArMjAsMjYgQEAKICNpZm5kZWYgUGxhdGZvcm1WaWRlb1dpbmRv
d1ByaXZhdGVfaAogI2RlZmluZSBQbGF0Zm9ybVZpZGVvV2luZG93UHJpdmF0ZV9oCiAKKyNpbmNs
dWRlIDxRRXZlbnQ+CiAjaW5jbHVkZSA8UVRpbWVyPgotI2luY2x1ZGUgPFFXaWRnZXQ+CiAKLVFU
X0JFR0lOX05BTUVTUEFDRQotY2xhc3MgUUtleUV2ZW50OwotUVRfRU5EX05BTUVTUEFDRQorI2lm
IFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorI2luY2x1ZGUgPFFXaW5k
b3c+CisjZWxzZQorI2luY2x1ZGUgPFFXaWRnZXQ+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogCi1jbGFzcyBGdWxsU2NyZWVuVmlkZW9X
aW5kb3c6IHB1YmxpYyBRV2lkZ2V0IHsKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hF
Q0soNSwgMCwgMCkKK3R5cGVkZWYgUVdpbmRvdyBCYXNlOworI2Vsc2UKK3R5cGVkZWYgUVdpZGdl
dCBCYXNlOworI2VuZGlmCisKK2NsYXNzIEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzogcHVibGljIEJh
c2UgewogUV9PQkpFQ1QKIHB1YmxpYzoKICAgICBGdWxsU2NyZWVuVmlkZW9XaW5kb3coKTsKQEAg
LTM5LDcgKzQ3LDYgQEAgcHVibGljOgogc2lnbmFsczoKICAgICB2b2lkIGNsb3NlZCgpOwogcHJv
dGVjdGVkOgotICAgIHZvaWQgY2xvc2VFdmVudChRQ2xvc2VFdmVudCopOwogICAgIHZvaWQga2V5
UHJlc3NFdmVudChRS2V5RXZlbnQqKTsKICAgICBib29sIGV2ZW50KFFFdmVudCopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvUGxhdGZv
cm1WaWRlb1dpbmRvd1F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UXQuY3BwCmluZGV4IDBhNmM0NWJmNzBiNzBiYTYx
MzFkZTNhMjMzMWRlOTY5YTAzMWZmYzguLjA2YTc5MjUwNTQ2ZDI5MjdhYjM4ODMxOWM4MDM1N2I1
YWY0NThlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9QbGF0Zm9ybVZpZGVvV2luZG93UXQuY3BwCkBAIC0y
MywxMCArMjMsMTEgQEAKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1WaWRlb1dpbmRvd1ByaXZhdGUuaCIKIAorI2luY2x1ZGUgPFFDdXJzb3I+CiAjaW5j
bHVkZSA8UUd1aUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEZXNrdG9wV2lkZ2V0PgogI2luY2x1
ZGUgPFFLZXlFdmVudD4KICNpbmNsdWRlIDxRUGFsZXR0ZT4KKwogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKICNpZm5kZWYgUVRfTk9fQ1VSU09SCkBAIC0zNCwxMyArMzUsMTQgQEAgc3RhdGlj
IGNvbnN0IGludCBnSGlkZU1vdXNlQ3Vyc29yRGVsYXkgPSAzMDAwOwogI2VuZGlmCiAKIEZ1bGxT
Y3JlZW5WaWRlb1dpbmRvdzo6RnVsbFNjcmVlblZpZGVvV2luZG93KCkKLSAgICA6IFFXaWRnZXQo
MCwgUXQ6OldpbmRvdykKLSAgICAsIG1fbWVkaWFFbGVtZW50KDApCisgICAgOiBtX21lZGlhRWxl
bWVudCgwKQogeworI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCiAg
ICAgc2V0QXR0cmlidXRlKFF0OjpXQV9OYXRpdmVXaW5kb3cpOwotICAgIHNldFdpbmRvd01vZGFs
aXR5KFF0OjpBcHBsaWNhdGlvbk1vZGFsKTsKICAgICBzZXRBdHRyaWJ1dGUoUXQ6OldBX05vU3lz
dGVtQmFja2dyb3VuZCwgdHJ1ZSk7CiAgICAgc2V0QXR0cmlidXRlKFF0OjpXQV9QYWludE9uU2Ny
ZWVuLCB0cnVlKTsKKyNlbmRpZgorICAgIHNldFdpbmRvd01vZGFsaXR5KFF0OjpBcHBsaWNhdGlv
bk1vZGFsKTsKIAogI2lmbmRlZiBRVF9OT19DVVJTT1IKICAgICBtX2N1cnNvclRpbWVyLnNldFNp
bmdsZVNob3QodHJ1ZSk7CkBAIC01MywxOCArNTUsNiBAQCB2b2lkIEZ1bGxTY3JlZW5WaWRlb1dp
bmRvdzo6c2V0VmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQqIGVsZW1lbnQpCiAgICAgbV9t
ZWRpYUVsZW1lbnQgPSBlbGVtZW50OwogfQogCi12b2lkIEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzo6
Y2xvc2VFdmVudChRQ2xvc2VFdmVudCopCi17Ci0jaWZuZGVmIFFUX05PX0NVUlNPUgotICAgIG1f
Y3Vyc29yVGltZXIuc3RvcCgpOwotI2VuZGlmCi0gICAgc2V0TW91c2VUcmFja2luZyhmYWxzZSk7
Ci0gICAgcmVsZWFzZU1vdXNlKCk7Ci0jaWZuZGVmIFFUX05PX0NVUlNPUgotICAgIFFHdWlBcHBs
aWNhdGlvbjo6cmVzdG9yZU92ZXJyaWRlQ3Vyc29yKCk7Ci0jZW5kaWYKLX0KLQogdm9pZCBGdWxs
U2NyZWVuVmlkZW9XaW5kb3c6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBldikKIHsKICAgICBp
ZiAobV9tZWRpYUVsZW1lbnQgJiYgZXYtPmtleSgpID09IFF0OjpLZXlfU3BhY2UpIHsKQEAgLTc0
LDcgKzY0LDcgQEAgdm9pZCBGdWxsU2NyZWVuVmlkZW9XaW5kb3c6OmtleVByZXNzRXZlbnQoUUtl
eUV2ZW50KiBldikKICAgICAgICAgICAgIG1fbWVkaWFFbGVtZW50LT5wbGF5KCk7CiAgICAgfSBl
bHNlIGlmIChldi0+a2V5KCkgPT0gUXQ6OktleV9Fc2NhcGUpCiAgICAgICAgIGVtaXQgY2xvc2Vk
KCk7Ci0gICAgUVdpZGdldDo6a2V5UHJlc3NFdmVudChldik7CisgICAgQmFzZTo6a2V5UHJlc3NF
dmVudChldik7CiB9CiAKIGJvb2wgRnVsbFNjcmVlblZpZGVvV2luZG93OjpldmVudChRRXZlbnQq
IGV2KQpAQCAtODgsMTcgKzc4LDM0IEBAIGJvb2wgRnVsbFNjcmVlblZpZGVvV2luZG93OjpldmVu
dChRRXZlbnQqIGV2KQogICAgICAgICBlbWl0IGNsb3NlZCgpOwogICAgICAgICBldi0+YWNjZXB0
KCk7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUUV2ZW50OjpDbG9zZToKKyNpZm5k
ZWYgUVRfTk9fQ1VSU09SCisgICAgICAgIG1fY3Vyc29yVGltZXIuc3RvcCgpOworI2VuZGlmCisj
aWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyAgICAgICAgc2V0TW91
c2VUcmFja2luZyhmYWxzZSk7CisgICAgICAgIHJlbGVhc2VNb3VzZSgpOworI2VuZGlmCisjaWZu
ZGVmIFFUX05PX0NVUlNPUgorICAgICAgICBRR3VpQXBwbGljYXRpb246OnJlc3RvcmVPdmVycmlk
ZUN1cnNvcigpOworI2VuZGlmCisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiBRV2lkZ2V0OjpldmVudChldik7CisgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBy
ZXR1cm4gQmFzZTo6ZXZlbnQoZXYpOwogfQogCiB2b2lkIEZ1bGxTY3JlZW5WaWRlb1dpbmRvdzo6
c2hvd0Z1bGxTY3JlZW4oKQogewotICAgIFFXaWRnZXQ6OnNob3dGdWxsU2NyZWVuKCk7CisgICAg
QmFzZTo6c2hvd0Z1bGxTY3JlZW4oKTsKKyNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVD
Syg1LCAwLCAwKQogICAgIHNldE1vdXNlVHJhY2tpbmcodHJ1ZSk7CisjZW5kaWYKICAgICByYWlz
ZSgpOworI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCiAgICAgc2V0
Rm9jdXMoKTsKKyNlbmRpZgogICAgIGhpZGVDdXJzb3IoKTsKIH0KIApAQCAtMTIwLDE0ICsxMjcs
MTggQEAgdm9pZCBGdWxsU2NyZWVuVmlkZW9XaW5kb3c6OnNob3dDdXJzb3IoKQogCiBQbGF0Zm9y
bVZpZGVvV2luZG93OjpQbGF0Zm9ybVZpZGVvV2luZG93KCkKIHsKLSAgICBtX3dpbmRvdyA9IG5l
dyBGdWxsU2NyZWVuVmlkZW9XaW5kb3coKTsKLSAgICBtX3dpbmRvdy0+c2V0V2luZG93RmxhZ3Mo
bV93aW5kb3ctPndpbmRvd0ZsYWdzKCkgfCBRdDo6RnJhbWVsZXNzV2luZG93SGludCk7CisgICAg
QmFzZSogd2luID0gbmV3IEZ1bGxTY3JlZW5WaWRlb1dpbmRvdygpOworICAgIG1fd2luZG93ID0g
d2luOworICAgIHdpbi0+c2V0V2luZG93RmxhZ3Mod2luLT53aW5kb3dGbGFncygpIHwgUXQ6OkZy
YW1lbGVzc1dpbmRvd0hpbnQpOworICAgIC8vIEZJWE1FOiBQb3J0IHRvIFF0IDUuCisjaWYgUVRf
VkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKICAgICBRUGFsZXR0ZSBwOwogICAg
IHAuc2V0Q29sb3IoUVBhbGV0dGU6OkJhc2UsIFF0OjpibGFjayk7CiAgICAgcC5zZXRDb2xvcihR
UGFsZXR0ZTo6V2luZG93LCBRdDo6YmxhY2spOwotICAgIG1fd2luZG93LT5zZXRQYWxldHRlKHAp
OwotICAgIG1fd2luZG93LT5zaG93RnVsbFNjcmVlbigpOwotICAgIG1fdmlkZW9XaW5kb3dJZCA9
IG1fd2luZG93LT53aW5JZCgpOworICAgIHdpbi0+c2V0UGFsZXR0ZShwKTsKKyNlbmRpZgorICAg
IHdpbi0+c2hvd0Z1bGxTY3JlZW4oKTsKKyAgICBtX3ZpZGVvV2luZG93SWQgPSB3aW4tPndpbklk
KCk7CiB9CiAKIFBsYXRmb3JtVmlkZW9XaW5kb3c6On5QbGF0Zm9ybVZpZGVvV2luZG93KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ljb25RdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JY29uUXQuY3BwCmluZGV4IGVi
MDllZGE2YjYxZWI3YWVlMDNhYzM3ZjdiZGFhMjhiNmRlOWU4MzkuLjdkMjYxM2ZiZDE3OTNmOGIw
MTgyNTQwYzYyNWEzMjhhZTJlOWNmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ljb25RdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSWNvblF0LmNwcApAQCAtMjIsMTMgKzIyLDEwIEBACiAjaW5jbHVkZSAiSWNv
bi5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCi0jaW5jbHVkZSA8cXBhaW50ZXIuaD4K
LSNpbmNsdWRlIDxxcGl4bWFwLmg+Ci0jaW5jbHVkZSA8cXJlY3QuaD4KLSNpbmNsdWRlIDxxZ2xv
YmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsMjcgKzM4LDE2IEBAIEljb246
On5JY29uKCkKIH0KIAogLy8gRklYTUU6IE1vdmUgdGhlIGNvZGUgdG8gQ2hyb21lQ2xpZW50Ojpp
Y29uRm9yRmlsZXMoKS4KLVBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCitQYXNzUmVmUHRyPEljb24+IEljb246
OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7Ci0gICAgaWYgKGZp
bGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKGZpbGVuYW1l
cy5zaXplKCkgPT0gMSkgewotICAgICAgICBSZWZQdHI8SWNvbj4gaSA9IGFkb3B0UmVmKG5ldyBJ
Y29uKTsKLSAgICAgICAgaS0+bV9pY29uID0gUUljb24oZmlsZW5hbWVzWzBdKTsKLSAgICAgICAg
cmV0dXJuIGkucmVsZWFzZSgpOwotICAgIH0KLQotICAgIC8vRklYTUU6IEltcGxlbWVudCB0aGlz
CisgICAgLy8gRklYTUU6IFNob3VsZCB1c2UgUU1pbWVUeXBlIGluIFF0IDUuCisgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJY29uOjpwYWludChHcmFwaGlj
c0NvbnRleHQqIGN0eCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCiB7Ci0gICAgUVBpeG1hcCBweCA9IG1faWNv
bi5waXhtYXAocmVjdC5zaXplKCkpOwotICAgIFFQYWludGVyICpwID0gc3RhdGljX2Nhc3Q8UVBh
aW50ZXIqPihjdHgtPnBsYXRmb3JtQ29udGV4dCgpKTsKLSAgICBpZiAocCAmJiAhcHguaXNOdWxs
KCkpCi0gICAgICAgIHAtPmRyYXdQaXhtYXAocmVjdC54KCksIHJlY3QueSgpLCBweCk7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCBmYTc4ZTAxYmU4NjZmZDc4ODcxZWJiYTQ2MjM0
ZTIyNGYyNTUxNTFiLi5lYjRiZTJkNGEzYzQxYTA3NWQzOTkzN2Q4ODY3N2Q5YjMyMzY3MmY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcApA
QCAtNDEsMTMgKzQxLDEyIEBACiAjaW5jbHVkZSAiU2hhZG93Qmx1ci5oIgogI2luY2x1ZGUgIlN0
aWxsSW1hZ2VRdC5oIgogCi0jaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFDb3Jl
QXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlYnVnPgogI2luY2x1ZGUgPFFJbWFnZT4KICNpbmNs
dWRlIDxRSW1hZ2VSZWFkZXI+CiAjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSA8UVBpeG1h
cD4KLSNpbmNsdWRlIDxRU3R5bGU+CiAjaW5jbHVkZSA8UVRyYW5zZm9ybT4KIAogI2luY2x1ZGUg
PG1hdGguaD4KQEAgLTgxLDEwICs4MCw2IEBAIHN0YXRpYyBXZWJHcmFwaGljSGFzaCogZ3JhcGhp
Y3MoKQogICAgICAgICBoYXNoLT5pbnNlcnQoImRlbGV0ZUJ1dHRvbiIsIFFQaXhtYXAoUUxhdGlu
MVN0cmluZygiOndlYmtpdC9yZXNvdXJjZXMvZGVsZXRlQnV0dG9uLnBuZyIpKSk7CiAgICAgICAg
IC8vIFFXZWJTZXR0aW5nczo6SW5wdXRTcGVlY2hCdXR0b25HcmFwaGljCiAgICAgICAgIGhhc2gt
Pmluc2VydCgiaW5wdXRTcGVlY2giLCBRUGl4bWFwKFFMYXRpbjFTdHJpbmcoIjp3ZWJraXQvcmVz
b3VyY2VzL2lucHV0U3BlZWNoLnBuZyIpKSk7Ci0gICAgICAgIC8vIFFXZWJTZXR0aW5nczo6U2Vh
cmNoQ2FuY2VsQnV0dG9uR3JhcGhpYwotICAgICAgICBoYXNoLT5pbnNlcnQoInNlYXJjaENhbmNl
bEJ1dHRvbiIsIFFBcHBsaWNhdGlvbjo6c3R5bGUoKS0+c3RhbmRhcmRQaXhtYXAoUVN0eWxlOjpT
UF9EaWFsb2dDbG9zZUJ1dHRvbikpOwotICAgICAgICAvLyBRV2ViU2V0dGluZ3M6OlNlYXJjaENh
bmNlbEJ1dHRvblByZXNzZWRHcmFwaGljCi0gICAgICAgIGhhc2gtPmluc2VydCgic2VhcmNoQ2Fu
Y2VsQnV0dG9uUHJlc3NlZCIsIFFBcHBsaWNhdGlvbjo6c3R5bGUoKS0+c3RhbmRhcmRQaXhtYXAo
UVN0eWxlOjpTUF9EaWFsb2dDbG9zZUJ1dHRvbikpOwogICAgIH0KIAogICAgIHJldHVybiBoYXNo
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29udGV4dE1lbnVRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAppbmRleCA2
MWFhYjZkYWRkMGIxOTg3Njk2ZWYyYjljYTA5MzBiNzE5MWQ3MWI4Li4wZmVmZWI5ODY5ZTBiNDQ0
MjUyMDM4NzZlMzMwODc2OTMxYTk5OWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9Db250ZXh0TWVudVF0LmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPERvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8RnJhbWUuaD4KICNpbmNsdWRlIDxGcmFtZVZpZXcuaD4KLSNpbmNsdWRl
IDxRQWN0aW9uPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2Ny
ZWVuUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAKaW5kZXggM2MxMzI5YmEzMTJkMmVjNTJmNzEzZmE1ZGYyMjMxNDI5NmMzMzhhMy4uNjJkY2Y1
MDFmMmI2NDJkMDYwMGE4OTI2NzJmZTdjNDQ5NmIwMzI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKQEAgLTM4LDggKzM4LDEzIEBACiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRl
ICJRV2ViUGFnZUNsaWVudC5oIgorI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1
LCAwLCAwKQorI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRU2NyZWVuPgor
I2Vsc2UKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlc2t0b3BXaWRnZXQ+
CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NiwxMSArNzEsMjAgQEAgc3Rh
dGljIGludCBzY3JlZW5OdW1iZXIoV2lkZ2V0KiB3KQogCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0
KiB3KQogeworI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorICAg
IHJldHVybiBRR3VpQXBwbGljYXRpb246OnNjcmVlbnMoKS52YWx1ZShzY3JlZW5OdW1iZXIodykp
LT5kZXB0aCgpOworI2Vsc2UKICAgICByZXR1cm4gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNj
cmVlbihzY3JlZW5OdW1iZXIodykpLT5kZXB0aCgpOworI2VuZGlmCiB9CiAKIGludCBzY3JlZW5E
ZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHcpCiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDUsIDAsIDApCisgICAgaW50IGRlcHRoID0gUUd1aUFwcGxpY2F0aW9uOjpwcmlt
YXJ5U2NyZWVuKCktPmRlcHRoKCk7CisgICAgLy8gRklYTUU6IFVzZSB3aWRnZXQncyBzY3JlZW4K
KyAgICBRX1VOVVNFRCh3KTsKKyNlbHNlCiAgICAgaW50IGRlcHRoID0gUUFwcGxpY2F0aW9uOjpk
ZXNrdG9wKCktPnNjcmVlbigwKS0+ZGVwdGgoKTsKICAgICBpZiAodykgewogICAgICAgICBRV2Vi
UGFnZUNsaWVudCogY2xpZW50ID0gdy0+cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpOwpAQCAtODEsNiArOTUsNyBAQCBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQo
V2lkZ2V0KiB3KQogICAgICAgICAgICAgICAgIGRlcHRoID0gdmlldy0+ZGVwdGgoKTsKICAgICAg
ICAgfQogICAgIH0KKyNlbmRpZgogICAgIC8vIEFuIGludGVyZmFjZSB0byBlc3RhYmxpc2ggdGhl
IGFjdHVhbCBudW1iZXIgb2YgYml0cyBwZXIgY29sb3IKICAgICAvLyBkb2Vzbid0IGV4aXN0IGlu
IFF0LCBvciBwcm9iYWJseSBhdCBhbGwsIHNvIHVzZSBjb21tb24tc2Vuc2UKICAgICAvLyB2YWx1
ZXMgZm9yIGVhY2ggc2NyZWVuIGRlcHRoIGFuZCBhc3N1bWUgUkdCL1JHQkEgd2hlcmUgYXBwcm9w
cmlhdGUuCkBAIC05OSwxOCArMTE0LDMyIEBAIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChX
aWRnZXQqIHcpCiAKIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCogdykKIHsKKyNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyAgICBRX1VOVVNFRCh3KTsK
KyAgICAvLyBGSVhNRTogSW4gUXQgNSBjb2xvckNvdW50KCkgaXNuJ3QgZXZlbiBpbXBsZW1lbnRl
ZCBiZXlvbmQgcmV0dXJuaW5nIDI1NiA6KQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCiAgICAg
cmV0dXJuIFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW4oc2NyZWVuTnVtYmVyKHcpKS0+
Y29sb3JDb3VudCgpID09IDI7CisjZW5kaWYKIH0KIAogRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lk
Z2V0KiB3aWRnZXQpCiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAs
IDApCisgICAgUVJlY3QgciA9IFFHdWlBcHBsaWNhdGlvbjo6c2NyZWVucygpLnZhbHVlKHNjcmVl
bk51bWJlcih3aWRnZXQpKS0+Z2VvbWV0cnkoKTsKKyNlbHNlCiAgICAgUVJlY3QgciA9IFFBcHBs
aWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShzY3JlZW5OdW1iZXIod2lkZ2V0KSk7
CisjZW5kaWYKICAgICByZXR1cm4gRmxvYXRSZWN0KHIueCgpLCByLnkoKSwgci53aWR0aCgpLCBy
LmhlaWdodCgpKTsKIH0KIAogRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0KiB3
aWRnZXQpCiB7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisg
ICAgUVJlY3QgciA9IFFHdWlBcHBsaWNhdGlvbjo6c2NyZWVucygpLnZhbHVlKHNjcmVlbk51bWJl
cih3aWRnZXQpKS0+YXZhaWxhYmxlR2VvbWV0cnkoKTsKKyNlbHNlCiAgICAgUVJlY3QgciA9IFFB
cHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5hdmFpbGFibGVHZW9tZXRyeShzY3JlZW5OdW1iZXIod2lk
Z2V0KSk7CisjZW5kaWYKICAgICByZXR1cm4gRmxvYXRSZWN0KHIueCgpLCByLnkoKSwgci53aWR0
aCgpLCByLmhlaWdodCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvUVdlYlBhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQ
YWdlQ2xpZW50LmgKaW5kZXggODM5NmNhY2E1ZTVhNWQ2ZTRkOGQ3NWI0NWY0M2U1M2U1ZTk2Mzk3
My4uYzhmMjRmMzZiYjQ3OWFlNTAzMGJhMDE2ZGI0M2ZlYzFjOGNiMGY0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCkBAIC00MSw2ICs0MSwxMCBAQCBR
VF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFTdHlsZTsKIFFUX0VORF9OQU1FU1BBQ0UKIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgV2lkZ2V0OworfQorCiBjbGFzcyBRV2ViUGFnZUNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UVdlYlBhZ2VDbGllbnQoKSB7IH0KQEAgLTk1LDYg
Kzk5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBRUmVjdEYgd2luZG93UmVjdCgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRXaWRnZXRWaXNpYmxlKFdlYkNvcmU6OldpZGdl
dCosIGJvb2wgdmlzaWJsZSkgPSAwOworCiBwcm90ZWN0ZWQ6CiAjaWZuZGVmIFFUX05PX0NVUlNP
UgogICAgIHZpcnR1YWwgUUN1cnNvciBjdXJzb3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1NvdW5kUXQuY3BwCmluZGV4IGJmOWUxNDI2YWYwYzhkMmI4ZmNjMmNlYzY2NDQy
OTE2MTk2Y2ZmM2IuLjdlM2M5OTExOWZjNjMzZGI5MTg3YmNjODZlZTgzNmU3YTAyNDhlYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NvdW5kUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NvdW5kUXQuY3BwCkBAIC0yOCwxMyArMjgsMTYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTb3VuZC5oIgogCi0jaW5jbHVkZSA8UUFw
cGxpY2F0aW9uPgorI2luY2x1ZGUgPE5vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdm9pZCBzeXN0ZW1CZWVwKCkKIHsKLSAgICBRQXBwbGljYXRpb246OmJlZXAoKTsK
KyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIGluIFF0IDUgcmlnaHQgbm93LiBUaGUgaW1w
bGVtZW50YXRpb24gaW4gUUFwcGxpY2F0aW9uOmJlZXAoKQorICAgIC8vIGlzIGVtcHR5LiBJZiBh
bnlvbmUgaXMgZ29pbmcgdG8gYm90aGVyIGltcGxlbWVudGluZyB0aGlzIHZpYSBRUGxhdGZvcm1O
YXRpdmVJbnRlcmZhY2UsIHRoZW4KKyAgICAvLyB3ZSBjb3VsZCB1c2UgdGhhdCBoZXJlLgorICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1dpZGdldFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1dpZGdl
dFF0LmNwcAppbmRleCA1MjE1ZTY2NjExOTkwOTFhYmI2MTA5ODJiMjg2NjUzZjI3MGZiMTJlLi44
NmVlNDMwN2YyYWM5YWMwYmM5ZDNkYjVlZThmMzdlNjAxN2VhNDkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvV2lkZ2V0UXQuY3BwCkBAIC00NSwxMSArNDUsMTAgQEAKICNpbmNsdWRlIDxR
RGVidWc+CiAjaW5jbHVkZSA8UVBhaW50RW5naW5lPgogI2luY2x1ZGUgPFFQYWludGVyPgotI2lu
Y2x1ZGUgPFFXaWRnZXQ+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2lkZ2V0OjpXaWRnZXQo
UVdpZGdldCogd2lkZ2V0KQorV2lkZ2V0OjpXaWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQog
ewogICAgIGluaXQod2lkZ2V0KTsKIH0KQEAgLTg5LDE2ICs4OCwyNCBAQCB2b2lkIFdpZGdldDo6
c2hvdygpCiB7CiAgICAgc2V0U2VsZlZpc2libGUodHJ1ZSk7CiAKLSAgICBpZiAoaXNQYXJlbnRW
aXNpYmxlKCkgJiYgcGxhdGZvcm1XaWRnZXQoKSkKLSAgICAgICAgcGxhdGZvcm1XaWRnZXQoKS0+
c2hvdygpOworICAgIGlmICghaXNQYXJlbnRWaXNpYmxlKCkgfHwgIXBsYXRmb3JtV2lkZ2V0KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSByb290KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CisgICAgaWYgKGNsaWVudCkKKyAg
ICAgICAgY2xpZW50LT5zZXRXaWRnZXRWaXNpYmxlKHRoaXMsIHRydWUpOwogfQogCiB2b2lkIFdp
ZGdldDo6aGlkZSgpCiB7CiAgICAgc2V0U2VsZlZpc2libGUoZmFsc2UpOwogCi0gICAgaWYgKGlz
UGFyZW50VmlzaWJsZSgpICYmIHBsYXRmb3JtV2lkZ2V0KCkpCi0gICAgICAgIHBsYXRmb3JtV2lk
Z2V0KCktPmhpZGUoKTsKKyAgICBpZiAoIWlzUGFyZW50VmlzaWJsZSgpIHx8ICFwbGF0Zm9ybVdp
ZGdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0g
cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOworICAgIGlmIChjbGll
bnQpCisgICAgICAgIGNsaWVudC0+c2V0V2lkZ2V0VmlzaWJsZSh0aGlzLCBmYWxzZSk7CiB9CiAK
IHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggY2IzZWU0MmNhYTM1YzhhMzlmOTIzMjU2
ZmE5NmNjM2JjZWVkZDZkMS4uMTEyODUyMmQwMjFmODFhOGJmNWZkZTFkZDc2MWMzNjBkNDhjMWY1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTYxLDcgKzYxLDYgQEAgdHlw
ZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBsdWdpbldpZGdldDsKICNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllci5oIgogI2VuZGlmCiAKLSNpbmNsdWRlIDxRR3JhcGhpY3NJ
dGVtPgogI2luY2x1ZGUgPFFJbWFnZT4KIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUVBhaW50
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggZTJj
NTVjZmVmN2I0ZmQ3Y2ZiNDY2YzI0ZWQ1ZTZmN2RjNmM3OWU5MC4uYzUzZTNiYzBkZWZiZjU3N2Nk
NTBhYTY2OTg1NGYyMTE0OTc0OTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1
Z2luVmlld1F0LmNwcApAQCAtNTcyLDcgKzU3Miw4IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBX
aW5kb3dJZk5lZWRlZCgpCiAgICAgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UgPSBmYWxzZTsK
IAogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKLSAgICAgICAgcGxhdGZvcm1QbHVnaW5XaWRnZXQo
KS0+c2V0R2VvbWV0cnkobV93aW5kb3dSZWN0KTsKKyAgICAgICAgUVdpZGdldCogd2lkZ2V0ID0g
c3RhdGljX2Nhc3Q8UVdpZGdldCo+KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOworICAgICAgICB3
aWRnZXQtPnNldEdlb21ldHJ5KG1fd2luZG93UmVjdCk7CiAKICAgICAgICAgLy8gQ3V0IG91dCBh
cmVhcyBvZiB0aGUgcGx1Z2luIG9jY2x1ZGVkIGJ5IGlmcmFtZSBzaGltcwogICAgICAgICBWZWN0
b3I8SW50UmVjdD4gY3V0T3V0UmVjdHM7CkBAIC01ODQsOCArNTg1LDggQEAgdm9pZCBQbHVnaW5W
aWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICAgICAgfQogICAgICAgICAvLyBpZiBzZXRN
YXNrIGlzIHNldCB3aXRoIGFuIGVtcHR5IFFSZWdpb24sIG5vIGNsaXBwaW5nIHdpbGwKICAgICAg
ICAgLy8gYmUgcGVyZm9ybWVkLCBzbyBpbiB0aGF0IGNhc2Ugd2UgaGlkZSB0aGUgcGx1Z2luIHZp
ZXcKLSAgICAgICAgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+c2V0VmlzaWJsZSghY2xpcFJlZ2lv
bi5pc0VtcHR5KCkpOwotICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT5zZXRNYXNrKGNs
aXBSZWdpb24pOworICAgICAgICB3aWRnZXQtPnNldFZpc2libGUoIWNsaXBSZWdpb24uaXNFbXB0
eSgpKTsKKyAgICAgICAgd2lkZ2V0LT5zZXRNYXNrKGNsaXBSZWdpb24pOwogCiAgICAgICAgIG1f
bnBXaW5kb3cueCA9IG1fd2luZG93UmVjdC54KCk7CiAgICAgICAgIG1fbnBXaW5kb3cueSA9IG1f
d2luZG93UmVjdC55KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAKaW5kZXggMDZlMGZlOThlMjUyYWExYzAwMzY2MzYxMjE4M2NmZTY1YmFiYWEwZC4u
NGNiNGMwZTY3NTU2MmFhOGEyYjUzN2MzYTJkNjM4YzBiYWQ0MmFkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNjksNyArNjksNyBAQAog
I2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxRV2lkZ2V0PgorI2luY2x1ZGUg
PFFWYXJpYW50PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3NSwxNCArNDc1
LDEzIEBAIHZvaWQgUmVuZGVyVHJlZUFzVGV4dDo6d3JpdGVSZW5kZXJPYmplY3QoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywKICAgICBpZiAoby5pc1JlbmRlclBhcnQoKSkg
ewogICAgICAgICBjb25zdCBSZW5kZXJQYXJ0KiBwYXJ0ID0gdG9SZW5kZXJQYXJ0KGNvbnN0X2Nh
c3Q8UmVuZGVyT2JqZWN0Kj4oJm8pKTsKICAgICAgICAgaWYgKHBhcnQtPndpZGdldCgpICYmIHBh
cnQtPndpZGdldCgpLT5wbGF0Zm9ybVdpZGdldCgpKSB7Ci0gICAgICAgICAgICBRV2lkZ2V0KiB3
aWQgPSBwYXJ0LT53aWRnZXQoKS0+cGxhdGZvcm1XaWRnZXQoKTsKKyAgICAgICAgICAgIFFPYmpl
Y3QqIHdpZCA9IHBhcnQtPndpZGdldCgpLT5wbGF0Zm9ybVdpZGdldCgpOwogCiAgICAgICAgICAg
ICB0cyA8PCAiIFtRVDogIjsKLSAgICAgICAgICAgIHRzIDw8ICJnZW9tZXRyeTogeyIgPDwgd2lk
LT5nZW9tZXRyeSgpIDw8ICJ9ICI7Ci0gICAgICAgICAgICB0cyA8PCAiaXNIaWRkZW46ICIgPDwg
d2lkLT5pc0hpZGRlbigpIDw8ICIgIjsKKyAgICAgICAgICAgIHRzIDw8ICJnZW9tZXRyeTogeyIg
PDwgd2lkLT5wcm9wZXJ0eSgiZ2VvbWV0cnkiKS50b1JlY3QoKSA8PCAifSAiOworICAgICAgICAg
ICAgdHMgPDwgImlzSGlkZGVuOiAiIDw8ICF3aWQtPnByb3BlcnR5KCJpc1Zpc2libGUiKS50b0Jv
b2woKSA8PCAiICI7CiAgICAgICAgICAgICB0cyA8PCAiaXNTZWxmVmlzaWJsZTogIiA8PCBwYXJ0
LT53aWRnZXQoKS0+aXNTZWxmVmlzaWJsZSgpIDw8ICIgIjsKLSAgICAgICAgICAgIHRzIDw8ICJp
c1BhcmVudFZpc2libGU6ICIgPDwgcGFydC0+d2lkZ2V0KCktPmlzUGFyZW50VmlzaWJsZSgpIDw8
ICIgIjsKLSAgICAgICAgICAgIHRzIDw8ICJtYXNrOiB7IiA8PCB3aWQtPm1hc2soKS5ib3VuZGlu
Z1JlY3QoKSA8PCAifSBdICI7CisgICAgICAgICAgICB0cyA8PCAiaXNQYXJlbnRWaXNpYmxlOiAi
IDw8IHBhcnQtPndpZGdldCgpLT5pc1BhcmVudFZpc2libGUoKSA8PCAiIF0gIjsKICAgICAgICAg
fQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDhlZDdjMWM5
OWJiYmViMTE1YmMxNzczZGY4ZmNmNTg4NDA3YTFjMGEuLmZlZWE2ZmQ2ZGYwMDM0NGE1MWEzOTE0
NmEwMDJiM2U3NDZhMjMwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTExNSw2
ICsxMTUsNyBAQAogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCiAKKyNpbmNsdWRlIDxRQWN0aW9uPgogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4K
ICNpbmNsdWRlIDxRQmFzaWNUaW1lcj4KICNpbmNsdWRlIDxRQml0QXJyYXk+CkBAIC0xMjYsNiAr
MTI3LDcgQEAKICNpbmNsdWRlIDxRRHJvcEV2ZW50PgogI2luY2x1ZGUgPFFGaWxlRGlhbG9nPgog
I2luY2x1ZGUgPFFJbnB1dERpYWxvZz4KKyNpbmNsdWRlIDxRTWVudT4KICNpbmNsdWRlIDxRTWVz
c2FnZUJveD4KICNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgogI2luY2x1ZGUgPFFVbmRvU3RhY2s+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDYyYWE2NDM1Y2EzNmIwZDAyYTIzNmVmMmZlN2Jm
MWYyNDdjN2I0NGEuLjkyYzk4Y2QzN2FiNzkyMzU3ODljMWM1NTVmNmE4ZTMwZTA3NTBhMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC05OCw2ICs5OCw5IEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlUXQuaCIKICNlbmRpZgogCisjaW5jbHVkZSA8UUFjdGlvbj4KKyNpbmNsdWRl
IDxRTWVudT4KKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFFNYXA8aW50LCBRV2ViU2Ny
aXB0V29ybGQqPiBtX3dvcmxkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMjBmMzFiM2I2YWJjOGZj
YjY2YzUyNWNjMGQ2ZTcyOTkyZDA3MmFkNy4uYWI3ZTk1Y2E2YTU5MzA2MDc1Yzk5MTU3MzIwMTdl
ZGY0NzY0NWQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0xNDUxLDE1ICsxNDUxLDE2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcikKICAg
ICB7IAogICAgICAgICBpZiAocGxhdGZvcm1XaWRnZXQoKSkKLSAgICAgICAgICAgIHBsYXRmb3Jt
V2lkZ2V0KCktPnVwZGF0ZShyKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFFXaWRnZXQqPihw
bGF0Zm9ybVdpZGdldCgpKS0+dXBkYXRlKHIpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZnJh
bWVSZWN0c0NoYW5nZWQoKQogICAgIHsKLSAgICAgICAgaWYgKCFwbGF0Zm9ybVdpZGdldCgpKQor
ICAgICAgICBRV2lkZ2V0KiB3aWRnZXQgPSBzdGF0aWNfY2FzdDxRV2lkZ2V0Kj4ocGxhdGZvcm1X
aWRnZXQoKSk7CisgICAgICAgIGlmICghd2lkZ2V0KQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIEludFJlY3Qgd2luZG93UmVjdCA9IGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coSW50
UmVjdCgwLCAwLCBmcmFtZVJlY3QoKS53aWR0aCgpLCBmcmFtZVJlY3QoKS5oZWlnaHQoKSkpOwot
ICAgICAgICBwbGF0Zm9ybVdpZGdldCgpLT5zZXRHZW9tZXRyeSh3aW5kb3dSZWN0KTsKKyAgICAg
ICAgd2lkZ2V0LT5zZXRHZW9tZXRyeSh3aW5kb3dSZWN0KTsKIAogICAgICAgICBTY3JvbGxWaWV3
KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCk7CiAgICAgICAgIGlmICghcGFyZW50U2Nyb2xs
VmlldykKQEAgLTE0NjgsMTQgKzE0NjksMTQgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocGFy
ZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSk7CiAgICAgICAgIEludFJlY3QgY2xpcFJlY3Qo
c3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyktPndpbmRvd0NsaXBSZWN0
KCkpOwogICAgICAgICBjbGlwUmVjdC5tb3ZlKC13aW5kb3dSZWN0LngoKSwgLXdpbmRvd1JlY3Qu
eSgpKTsKLSAgICAgICAgY2xpcFJlY3QuaW50ZXJzZWN0KHBsYXRmb3JtV2lkZ2V0KCktPnJlY3Qo
KSk7CisgICAgICAgIGNsaXBSZWN0LmludGVyc2VjdCh3aWRnZXQtPnJlY3QoKSk7CiAKICAgICAg
ICAgUVJlZ2lvbiBjbGlwUmVnaW9uID0gUVJlZ2lvbihjbGlwUmVjdCk7Ci0gICAgICAgIHBsYXRm
b3JtV2lkZ2V0KCktPnNldE1hc2soY2xpcFJlZ2lvbik7CisgICAgICAgIHdpZGdldC0+c2V0TWFz
ayhjbGlwUmVnaW9uKTsKIAogICAgICAgICBoYW5kbGVWaXNpYmlsaXR5KCk7CiAKLSAgICAgICAg
cGxhdGZvcm1XaWRnZXQoKS0+dXBkYXRlKCk7CisgICAgICAgIHdpZGdldC0+dXBkYXRlKCk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHNob3coKQpAQCAtMTQ5MCwxMCArMTQ5MSwxMSBAQCBw
cml2YXRlOgogICAgICAgICBpZiAoIWlzVmlzaWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuOwog
CisgICAgICAgIFFXaWRnZXQqIHdpZGdldCA9IHN0YXRpY19jYXN0PFFXaWRnZXQqPihwbGF0Zm9y
bVdpZGdldCgpKTsKICAgICAgICAgLy8gSWYgc2V0TWFzayBpcyBzZXQgd2l0aCBhbiBlbXB0eSBR
UmVnaW9uLCBubyBjbGlwcGluZyB3aWxsCiAgICAgICAgIC8vIGJlIHBlcmZvcm1lZCwgc28gaW4g
dGhhdCBjYXNlIHdlIGhpZGUgdGhlIHBsYXRmb3JtV2lkZ2V0LgotICAgICAgICBRUmVnaW9uIG1h
c2sgPSBwbGF0Zm9ybVdpZGdldCgpLT5tYXNrKCk7Ci0gICAgICAgIHBsYXRmb3JtV2lkZ2V0KCkt
PnNldFZpc2libGUoIW1hc2suaXNFbXB0eSgpKTsKKyAgICAgICAgUVJlZ2lvbiBtYXNrID0gd2lk
Z2V0LT5tYXNrKCk7CisgICAgICAgIHdpZGdldC0+c2V0VmlzaWJsZSghbWFzay5pc0VtcHR5KCkp
OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvSW5pdFdlYkNvcmVRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0lu
aXRXZWJDb3JlUXQuY3BwCmluZGV4IDQwZjZmZTdjOTdlYmM0ZGI2N2RhY2IwOTU0OTcyYTA5Zjhk
OGUyMTcuLjVjYmQ4MmM1ODRlM2M0NDY4ODdmYmM4OWM2YTZmMTFjMjgzYTc1YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5pdFdlYkNvcmVRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Jbml0V2ViQ29yZVF0LmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluaXRXZWJDb3Jl
UXQuaCIKIAorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKQEAgLTM5LDYgKzQwLDggQEAKICNlbmRpZgogCiAjaW5jbHVkZSAicXdlYmVsZW1l
bnRfcC5oIgorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRU3R5bGU+CiAKICNp
bmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgpAQCAtNjMsNiArNjYsMTEgQEAgdm9pZCBpbml0aWFsaXplV2ViQ29yZVF0KCkK
ICAgICBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSgpOwogI2VuZGlmCiAKKyAgICAvLyBRV2Vi
U2V0dGluZ3M6OlNlYXJjaENhbmNlbEJ1dHRvbkdyYXBoaWMKKyAgICBJbWFnZTo6c2V0UGxhdGZv
cm1SZXNvdXJjZSgic2VhcmNoQ2FuY2VsQnV0dG9uIiwgUUFwcGxpY2F0aW9uOjpzdHlsZSgpLT5z
dGFuZGFyZFBpeG1hcChRU3R5bGU6OlNQX0RpYWxvZ0Nsb3NlQnV0dG9uKSk7CisgICAgLy8gUVdl
YlNldHRpbmdzOjpTZWFyY2hDYW5jZWxCdXR0b25QcmVzc2VkR3JhcGhpYworICAgIEltYWdlOjpz
ZXRQbGF0Zm9ybVJlc291cmNlKCJzZWFyY2hDYW5jZWxCdXR0b25QcmVzc2VkIiwgUUFwcGxpY2F0
aW9uOjpzdHlsZSgpLT5zdGFuZGFyZFBpeG1hcChRU3R5bGU6OlNQX0RpYWxvZ0Nsb3NlQnV0dG9u
KSk7CisKICAgICBpbml0aWFsaXplZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcAppbmRleCA0NWRjZmJiZTEyM2RhNmUy
YzE2MzYwYzE3MWVmODgyNzE5MzEwZTM0Li5hMDJkMjY0ODY2OGMyMmRhNWFiMDlhOWU1NWU5NzUw
ZDhkYjUzMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1Bh
Z2VDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdl
Q2xpZW50UXQuY3BwCkBAIC0xNzgsNiArMTc4LDE0IEBAIFFSZWN0RiBQYWdlQ2xpZW50UVdpZGdl
dDo6d2luZG93UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIFFSZWN0Rih2aWV3LT53aW5kb3coKS0+
Z2VvbWV0cnkoKSk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudFFXaWRnZXQ6OnNldFdpZGdldFZpc2li
bGUoV2lkZ2V0KiB3aWRnZXQsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBRV2lkZ2V0KiBxdFdpZGdl
dCA9IHFvYmplY3RfY2FzdDxRV2lkZ2V0Kj4od2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKTsKKyAg
ICBpZiAoIXF0V2lkZ2V0KQorICAgICAgICByZXR1cm47CisgICAgcXRXaWRnZXQtPnNldFZpc2li
bGUodmlzaWJsZSk7Cit9CisKICNpZiAhZGVmaW5lZChRVF9OT19HUkFQSElDU1ZJRVcpCiBQYWdl
Q2xpZW50UUdyYXBoaWNzV2lkZ2V0Ojp+UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCgpCiB7CkBA
IC00MDUsNiArNDEzLDExIEBAIFFTdHlsZSogUGFnZUNsaWVudFFHcmFwaGljc1dpZGdldDo6c3R5
bGUoKSBjb25zdAogICAgIHJldHVybiB2aWV3LT5zdHlsZSgpOwogfQogCit2b2lkIFBhZ2VDbGll
bnRRR3JhcGhpY3NXaWRnZXQ6OnNldFdpZGdldFZpc2libGUoV2lkZ2V0KiwgYm9vbCkKK3sKKyAg
ICAvLyBEb2Vzbid0IG1ha2Ugc2Vuc2UsIGRvZXMgaXQ/Cit9CisKIFFSZWN0RiBQYWdlQ2xpZW50
UUdyYXBoaWNzV2lkZ2V0Ojp3aW5kb3dSZWN0KCkgY29uc3QKIHsKICAgICBpZiAoIXZpZXctPnNj
ZW5lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VD
bGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQu
aAppbmRleCAzNDgwNDQ5ZDJiOTgzMGU2OTJmN2NlMzhlYjVmODA2MzI5ZDA2ZjQ5Li5mYWJmOTBk
NzY3NjFhYmYxNjVlNmQwYzg3YzZkOGM4ZTEwNWMxOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmgKQEAgLTk3LDYgKzk3LDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBRUmVjdEYgd2luZG93UmVjdCgpIGNvbnN0OwogCisgICAgdmlydHVh
bCB2b2lkIHNldFdpZGdldFZpc2libGUoV2lkZ2V0KiwgYm9vbCB2aXNpYmxlKTsKKwogICAgIFFX
aWRnZXQqIHZpZXc7CiAgICAgUVdlYlBhZ2UqIHBhZ2U7CiAKQEAgLTE5OCw2ICsyMDAsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgdmlld1Jlc2l6ZXNUb0NvbnRlbnRzRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIHZpZXdSZXNpemVzVG9Db250ZW50czsgfQogCisgICAgdmlydHVhbCB2
b2lkIHNldFdpZGdldFZpc2libGUoV2lkZ2V0KiwgYm9vbCk7CisKICAgICB2b2lkIGNyZWF0ZU9y
RGVsZXRlT3ZlcmxheSgpOwogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VFdmVudEhhbmRsZXIuY3Bw
CmluZGV4IGZlYmE4MmY3Y2Y1ZmM2MWIzMmRiZTVlYjcyNjc5NDgwODMyMTQwMDEuLjcyYjk2YmFl
NDM5OWFiMGU3MzFjM2M1MThmZTU5ZTYwMWZlNDc1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VFdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VFdmVudEhhbmRsZXIuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgiCiAjaW5jbHVk
ZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5j
bHVkZSA8UUN1cnNvcj4KICNpbmNsdWRlIDxRRHJhZz4KICNpbmNsdWRlIDxRR3JhcGhpY3NTY2Vu
ZU1vdXNlRXZlbnQ+CiAjaW5jbHVkZSA8UUd1aUFwcGxpY2F0aW9uPgo=
</data>
<flag name="review"
          id="129196"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="129217"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>