<?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>105878</bug_id>
          
          <creation_ts>2012-12-30 18:45:39 -0800</creation_ts>
          <short_desc>Add supplementability for WebContext</short_desc>
          <delta_ts>2013-01-02 09:59:07 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>798282</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-30 18:45:39 -0800</bug_when>
    <thetext>Add supplementability for WebContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798283</commentid>
    <comment_count>1</comment_count>
      <attachid>180962</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-30 18:46:39 -0800</bug_when>
    <thetext>Created attachment 180962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798375</commentid>
    <comment_count>2</comment_count>
      <attachid>180962</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-31 11:47:21 -0800</bug_when>
    <thetext>Comment on attachment 180962
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKContext.cpp:39
&gt; +

!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798376</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-31 11:54:39 -0800</bug_when>
    <thetext>Committed r138599: &lt;http://trac.webkit.org/changeset/138599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798551</commentid>
    <comment_count>4</comment_count>
      <attachid>180962</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 00:40:16 -0800</bug_when>
    <thetext>Comment on attachment 180962
Patch

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

I was curious about the approach, and I noticed one nit below.  Please feel free to ignore my nitpicking.  :)

&gt; Source/WebKit2/UIProcess/WebContextSupplement.h:36
&gt; +    WebContextSupplement(WebContext* context)

One-argument constructors should use the &quot;explicit&quot; keyword (unless you really wan the implicit conversions, which seems unlikely here)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798701</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-02 09:59:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 180962 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180962&amp;action=review
&gt; 
&gt; I was curious about the approach, and I noticed one nit below.  Please feel free to ignore my nitpicking.  :)

I just trying to break things up into to existing abstractions right now, not much approach going on. 

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebContextSupplement.h:36
&gt; &gt; +    WebContextSupplement(WebContext* context)
&gt; 
&gt; One-argument constructors should use the &quot;explicit&quot; keyword (unless you really wan the implicit conversions, which seems unlikely here)

Indeed, will fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180962</attachid>
            <date>2012-12-30 18:46:39 -0800</date>
            <delta_ts>2013-01-02 00:40:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105878-20121230214349.patch</filename>
            <type>text/plain</type>
            <size>21512</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODU4NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTEyLTMwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBsZW1lbnRhYmlsaXR5IGZv
ciBXZWJDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDU4NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgV2ViQ29udGV4dFN1cHBsZW1lbnQgYW5kIGNvbnZlcnQgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eSB0byBpdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0QXBwbGljYXRpb25DYWNoZU1hbmFnZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y29udGV4dERlc3Ryb3llZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OnByb2Nlc3NE
aWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6fldlYkNv
bnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzaG91bGRUZXJtaW5hdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c3VwcGxlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmFkZFN1cHBsZW1lbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHRTdXBwbGVtZW50OjpXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHRTdXBwbGVtZW50Ojp+V2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0U3VwcGxlbWVudDo6cmVmKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dFN1cHBsZW1lbnQ6OmRlcmVmKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dFN1
cHBsZW1lbnQ6OmNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0U3VwcGxlbWVu
dDo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTItMTItMzAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEludmFsaWQgdXNlIG9mIHRlbXBvcmFy
eSBvYmplY3QgaW4gUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDEzODU4NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsMjIgKzM0LDM0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjb25zdCBBdG9t
aWNTdHJpbmcmIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OnN1cHBsZW1lbnROYW1l
KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHJldHVybiBuYW1lOworfQorCiBQYXNzUmVmUHRyPFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk+IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShjb250ZXh0KSk7CiB9CiAKIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2Vi
Q29udGV4dCogY29udGV4dCkKLSAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQorICAgIDogV2Vi
Q29udGV4dFN1cHBsZW1lbnQoY29udGV4dCkKIHsKLSAgICBtX3dlYkNvbnRleHQtPmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAgICBjb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6
On5XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCkKIHsKIH0KIAotdm9pZCBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKKwordm9pZCBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5Ojpjb250ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBpbnZhbGlk
YXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopCiB7
CiAgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOwogfQpAQCAtNTks
NiArNzEsMTYgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpzaAogICAg
IHJldHVybiBtX2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKTsKIH0KIAordm9pZCBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAg
QVBJT2JqZWN0OjpyZWYoKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBBUElPYmplY3Q6OmRlcmVm
KCk7Cit9CisKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
ZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CkBAIC02NiwxMyArODgsMTYgQEAgdm9pZCBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkaQogCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OmdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlD
YWxsYmFjaz4gcHJwQ2FsbGJhY2spCiB7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJl
dHVybjsKKwogICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNr
OwogICAgIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgp
OwogICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2Uo
KSk7CiAKICAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8x
MjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBl
ci10YWIgV2ViUHJvY2Vzcy4KLSAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1Jl
bGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcjo6R2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY2FsbGJhY2tJRCkpOworICAgIGNvbnRl
eHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2Fn
ZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
cyhjYWxsYmFja0lEKSk7CiB9CiAgICAgCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTgzLDE5
ICsxMDgsMjUgQEAgdm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkaQogCiB2
b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmln
aW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKIHsKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0
YTsKICAgICBzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7
CiAgICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKICAgICBzZWN1
cml0eU9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOwogCiAgICAgLy8gRklYTUUgKE11
bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0
aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCi0gICAg
bV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2Fy
eShNZXNzYWdlczo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JP
cmlnaW4oc2VjdXJpdHlPcmlnaW5EYXRhKSk7CisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9j
ZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW5EYXRhKSk7
CiB9CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50
cmllcygpCiB7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIC8v
IEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtl
IG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9j
ZXNzLgotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVt
SWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpEZWxldGVB
bGxFbnRyaWVzKCkpOworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hp
bmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpE
ZWxldGVBbGxFbnRyaWVzKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMTM4NTg0KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUg
IkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00MSwy
OCArNDIsMjYgQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKLWNsYXNzIFdlYkNvbnRleHQ7Ci1jbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CiBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKK3N0cnVjdCBTZWN1cml0eU9y
aWdpbkRhdGE7CiAKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2Fs
bGJhY2s7CiAKLWNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkgOiBwdWJsaWMg
QVBJT2JqZWN0LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFdl
YkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlcjsKIAorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnRO
YW1lKCk7CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwogICAgIHZpcnR1YWwgfldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkoKTsKIAotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotICAgIHZvaWQg
Y2xlYXJDb250ZXh0KCkgeyBtX3dlYkNvbnRleHQgPSAwOyB9Ci0gICAgCiAgICAgdm9pZCBnZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKICAgICB2
b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKICAgICB2b2lk
IGRlbGV0ZUFsbEVudHJpZXMoKTsKIAotICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nl
c3NQcm94eSopIGNvbnN0OworICAgIHVzaW5nIEFQSU9iamVjdDo6cmVmOworICAgIHVzaW5nIEFQ
SU9iamVjdDo6ZGVyZWY7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CkBAIC03MSwxMSArNzAsMTcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9y
PFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAorICAgIC8vIFdl
YkNvbnRleHRTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94
eSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vz
c1Byb3h5KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRT
dXBwbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1
cHBsZW1lbnQoKSBPVkVSUklERTsKKwogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAKLSAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsKIH07
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9u
IDEzODU4NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZUtpbmRzLmgiCiAj
aW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKQEAgLTE1Niw3ICsxNTcsNiBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nl
c3NNb2RlbCBwcm9jCiAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VLaW5k
VHJhaXRzPFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpLaW5kPjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCB0aGlzKTsKIAogICAgIC8vIE5PVEU6IFRoZXNlIHN1Yi1vYmplY3RzIG11c3QgYmUgaW5p
dGlhbGl6ZWQgYWZ0ZXIgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuLgotICAgIG1fYXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0
ZSh0aGlzKTsKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAgICAgbV9iYXR0ZXJ5TWFuYWdl
clByb3h5ID0gV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2VuZGlmCkBA
IC0xNzksNyArMTc5LDkgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJv
YwogI2lmIFVTRShTT1VQKQogICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyUHJveHkgPSBXZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2VuZGlmCi0gICAgCisKKyAgICBh
ZGRTdXBwbGVtZW50PFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+KCk7CisKICAgICBj
b250ZXh0cygpLmFwcGVuZCh0aGlzKTsKIAogICAgIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIo
dGhpcywgbGFuZ3VhZ2VDaGFuZ2VkKTsKQEAgLTIwOSw4ICsyMTEsMTIgQEAgV2ViQ29udGV4dDo6
fldlYkNvbnRleHQoKQogCiAgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuaW52YWxpZGF0ZSgpOwog
Ci0gICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7Ci0gICAg
bV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKKyAgICBXZWJD
b250ZXh0U3VwcGxlbWVudE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N1cHBsZW1lbnRzLmJl
Z2luKCk7CisgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IG1fc3VwcGxlbWVudHMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgeworICAg
ICAgICBpdC0+dmFsdWUtPmNvbnRleHREZXN0cm95ZWQoKTsKKyAgICAgICAgaXQtPnZhbHVlLT5j
bGVhckNvbnRleHQoKTsKKyAgICB9CiAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAgICAg
bV9iYXR0ZXJ5TWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CkBAIC01OTEsOCArNTk3LDEzIEBA
IGJvb2wgV2ViQ29udGV4dDo6c2hvdWxkVGVybWluYXRlKFdlYlByb2MKICAgICBpZiAoIW1fcHJv
Y2Vzc1Rlcm1pbmF0aW9uRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KCFtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHktPnNob3VsZFRlcm1pbmF0ZShwcm9jZXNz
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFdlYkNvbnRleHRTdXBwbGVtZW50TWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fc3VwcGxlbWVudHMuYmVnaW4oKTsKKyAgICBXZWJDb250ZXh0
U3VwcGxlbWVudE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9zdXBwbGVtZW50cy5lbmQoKTsK
KyAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmICghaXQtPnZhbHVlLT5z
aG91bGRUZXJtaW5hdGUocHJvY2VzcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCiAgICAgaWYgKCFtX2Nvb2tpZU1hbmFnZXJQcm94eS0+c2hvdWxkVGVybWluYXRlKHByb2Nl
c3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKQEAg
LTY1MCw3ICs2NjEsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2VzcyhXZWJQ
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgV2ViQ29udGV4dFN1cHBsZW1lbnRNYXA6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9zdXBwbGVtZW50cy5iZWdpbigpOworICAgIFdlYkNvbnRleHRTdXBw
bGVtZW50TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3N1cHBsZW1lbnRzLmVuZCgpOworICAg
IGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGl0LT52YWx1ZS0+cHJvY2Vzc0RpZENs
b3NlKHByb2Nlc3MpOworCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogICAgIG1fYmF0dGVy
eU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDEzODU4NCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNo
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01Nyw3ICs1OCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKLWNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHk7CitjbGFzcyBXZWJDb250ZXh0U3VwcGxlbWVudDsKIGNsYXNzIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk7CkBAIC0xMDAsNiArMTAxLDE4IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBjb25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBhbGxDb250ZXh0cygpOwogCisgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgVCogc3VwcGxlbWVudCgpCisgICAgeworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fc3VwcGxlbWVudHMuZ2V0KFQ6OnN1cHBsZW1lbnRO
YW1lKCkpLmdldCgpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB2
b2lkIGFkZFN1cHBsZW1lbnQoKQorICAgIHsKKyAgICAgICAgbV9zdXBwbGVtZW50cy5hZGQoVDo6
c3VwcGxlbWVudE5hbWUoKSwgVDo6Y3JlYXRlKHRoaXMpKTsKKyAgICB9CisKICAgICB2b2lkIGFk
ZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKik7CiAgICAgdm9pZCBhZGRNZXNzYWdlUmVj
ZWl2ZXIoQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciopOwogICAgIHZvaWQg
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKQEAgLTIwMCw3ICsyMTMsNiBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gcGRm
QW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpOwogCi0gICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eSogYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1f
YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQogI2lmIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKICAgICBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlclByb3h5
KCkgY29uc3QgeyByZXR1cm4gbV9iYXR0ZXJ5TWFuYWdlclByb3h5LmdldCgpOyB9CiAjZW5kaWYK
QEAgLTQyMCw3ICs0MzIsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZW1vcnlTYW1wbGVyRW5h
YmxlZDsKICAgICBkb3VibGUgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWw7CiAKLSAgICBSZWZQdHI8
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4gbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5OwogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICAgICBSZWZQdHI8V2ViQmF0dGVy
eU1hbmFnZXJQcm94eT4gbV9iYXR0ZXJ5TWFuYWdlclByb3h5OwogI2VuZGlmCkBAIC00NDQsNiAr
NDU1LDkgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+
IG1fc291cFJlcXVlc3RNYW5hZ2VyUHJveHk7CiAjZW5kaWYKIAorICAgIHR5cGVkZWYgSGFzaE1h
cDxBdG9taWNTdHJpbmcsIFJlZlB0cjxXZWJDb250ZXh0U3VwcGxlbWVudD4gPiBXZWJDb250ZXh0
U3VwcGxlbWVudE1hcDsKKyAgICBXZWJDb250ZXh0U3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRz
OworCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGJvb2wgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRy
b2xzOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFN1
cHBsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dFN1cHBsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJDb250ZXh0U3VwcGxlbWVudF9oCisjZGVmaW5lIFdlYkNv
bnRleHRTdXBwbGVtZW50X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbnRl
eHQ7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK2NsYXNzIFdlYkNvbnRleHRTdXBwbGVtZW50
IHsKK3B1YmxpYzoKKyAgICBXZWJDb250ZXh0U3VwcGxlbWVudChXZWJDb250ZXh0KiBjb250ZXh0
KQorICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIH5XZWJDb250ZXh0U3VwcGxlbWVudCgpCisgICAgeworICAgIH0KKworICAgIHZvaWQgcmVm
KCkgeyByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpOyB9CisgICAgdm9pZCBkZXJlZigpIHsgZGVy
ZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERl
c3Ryb3llZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nl
c3NQcm94eSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nl
c3NQcm94eSopIGNvbnN0ID0gMDsKKworICAgIFdlYkNvbnRleHQqIGNvbnRleHQoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRleHQ7IH0KKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0
ID0gMDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxl
bWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgp
ID0gMDsKKworICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnRfaApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHJldmlzaW9uIDEzODU4
NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5o
IgogCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJV
UkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTM1LDYgKzM2LDcg
QEAKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAorCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBleHRlcm4gIkMiIHsKQEAg
LTE4OCw3ICsxOTAsNyBAQCBXS0Nvb2tpZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q29va2llTWFu
CiAKIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0QXBwbGljYXRpb25D
YWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7Ci0gICAgcmV0dXJuIHRvQVBJ
KHRvSW1wbChjb250ZXh0UmVmKS0+YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpKTsKKyAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk+KCkpOwogfQogCiBXS0JhdHRlcnlNYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldEJhdHRlcnlNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTM4NTg0KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05NjYsNiArOTY2LDcgQEAKIAkJQkNGMDQ5RTcx
MUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8qIFdL
QnVuZGxlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDRjE4NjM4MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjE4NjM3MTY3RDA3
MUUwMEExQTg1QSAvKiBDYWNoZU1vZGVsLmNwcCAqLzsgfTsKIAkJQkNGNERFMjMxNjhFNEJENTAw
Qzk0QUZDIC8qIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNERFMjIxNjhFNEJENTAwQzk0QUZDIC8qIE5l
dHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oICovOyB9OworCQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRB
RkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0
U3VwcGxlbWVudC5oICovOyB9OwogCQlCQ0Y1MDVFNzEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5oICovOyB9OwogCQlCQ0Y1MDVFODEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
bW0gKi87IH07CiAJCUJDRjUwNzI4MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUlu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUw
NzI2MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKQEAgLTIy
NDIsNiArMjI0Myw3IEBACiAJCUJDRjA0QzhFMTFGRjlGNkUwMEY4NkE1OCAvKiBXZWJTdHJpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3RyaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNoZU1v
ZGVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlTW9kZWwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y0REUyMjE2OEU0QkQ1MDBDOTRB
RkMgLyogTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oOyBwYXRoID0gTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNG
NERFMjQxNjhGQTQ0ODAwQzk0QUZDIC8qIFdlYkNvbnRleHRTdXBwbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRTdXBwbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y1
MDVFNjEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNTA2ODQxMjQzMTg2MTAwNTk1
NUFFIC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHkuZnJh
bWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMzUyNSw2ICszNTI3LDcgQEAK
IAkJCQlCQzRBNjJBNjE0NzQ0RUM2MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oICovLAogCQkJCUJDQjlFMjQyMTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmNwcCAq
LywKIAkJCQlCQ0I5RTI0MTExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5oICovLAorCQkJ
CUJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5oICovLAog
CQkJCUJDRUU3RDA5MTI4NDZBRUQwMDk4MjdEQSAvKiBXZWJDb250ZXh0Lm1lc3NhZ2VzLmluICov
LAogCQkJCTMxQTUwNUY3MTY4MDAyNTUwMEE5MzBFQiAvKiBXZWJDb250ZXh0Q2xpZW50LmNwcCAq
LywKIAkJCQkzMUE1MDVGODE2ODAwMjU1MDBBOTMwRUIgLyogV2ViQ29udGV4dENsaWVudC5oICov
LApAQCAtNTAyOCw2ICs1MDMxLDcgQEAKIAkJCQkzMUE1MDVGQTE2ODAwMjU1MDBBOTMwRUIgLyog
V2ViQ29udGV4dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMEU0MjUxNjhCN0EyODAw
NTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y0
REUyMzE2OEU0QkQ1MDBDOTRBRkMgLyogTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9Owo=
</data>
<flag name="review"
          id="198403"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>