<?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>154046</bug_id>
          
          <creation_ts>2016-02-09 14:09:50 -0800</creation_ts>
          <short_desc>Add SPI to remove individual user scripts or user style sheets</short_desc>
          <delta_ts>2016-02-11 02:34:09 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>154056</dependson>
    
    <dependson>154103</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fred.wang</cc>
    
    <cc>mitz</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1163282</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-09 14:09:50 -0800</bug_when>
    <thetext>Add SPI to remove individual user scripts or user style sheets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163284</commentid>
    <comment_count>1</comment_count>
      <attachid>270952</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-09 14:12:06 -0800</bug_when>
    <thetext>Created attachment 270952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163292</commentid>
    <comment_count>2</comment_count>
      <attachid>270952</attachid>
    <who name="">mitz</who>
    <bug_when>2016-02-09 14:37:23 -0800</bug_when>
    <thetext>Comment on attachment 270952
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:42
&gt; +@property (nonatomic, readonly, copy) WK_ARRAY(_WKUserStyleSheet *) *_userStyleSheets;

This looks new. Why no availability?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163294</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-09 14:43:16 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 270952 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=270952&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:42
&gt; &gt; +@property (nonatomic, readonly, copy) WK_ARRAY(_WKUserStyleSheet *) *_userStyleSheets;
&gt; 
&gt; This looks new. Why no availability?

Oversight on my part. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163298</commentid>
    <comment_count>4</comment_count>
      <attachid>270955</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-09 14:55:28 -0800</bug_when>
    <thetext>Created attachment 270955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163302</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-09 15:04:28 -0800</bug_when>
    <thetext>Committed r196341: &lt;http://trac.webkit.org/changeset/196341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163343</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-09 16:53:14 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 154056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163353</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-02-09 17:12:12 -0800</bug_when>
    <thetext>*** Bug 154052 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163354</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-02-09 17:12:38 -0800</bug_when>
    <thetext>3 WKUserContentController API tests were failing on Mac and iOS after this change:

Tests that failed:
  WKUserContentController.AddUserStyleSheetBeforeCreatingView
  WKUserContentController.UserStyleSheetAffectingAllFrames
  WKUserContentController.UserStyleSheetAffectingOnlyMainFrame

&lt;https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/3215&gt;

FAIL WKUserContentController.AddUserStyleSheetBeforeCreatingView

/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:276
Value of: value
  Actual: &quot;rgb(255, 0, 0)&quot;
Expected: color
Which is: &quot;rgb(0, 128, 0)&quot;

FAIL WKUserContentController.UserStyleSheetAffectingAllFrames

/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:276
Value of: value
  Actual: &quot;rgb(255, 0, 0)&quot;
Expected: color
Which is: &quot;rgb(0, 128, 0)&quot;


/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:276
Value of: value
  Actual: &quot;rgba(0, 0, 0, 0)&quot;
Expected: color
Which is: &quot;rgb(0, 128, 0)&quot;

FAIL WKUserContentController.UserStyleSheetAffectingOnlyMainFrame

/Volumes/Data/slave/elcapitan-release/build/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm:276
Value of: value
  Actual: &quot;rgb(255, 0, 0)&quot;
Expected: color
Which is: &quot;rgb(0, 128, 0)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163645</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-10 15:57:31 -0800</bug_when>
    <thetext>Committed r196399: &lt;http://trac.webkit.org/changeset/196399&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163724</commentid>
    <comment_count>10</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-02-11 01:58:59 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Committed r196399: &lt;http://trac.webkit.org/changeset/196399&gt;

This broke the GTK build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270952</attachid>
            <date>2016-02-09 14:12:06 -0800</date>
            <delta_ts>2016-02-09 14:55:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154046-20160209141144.patch</filename>
            <type>text/plain</type>
            <size>13356</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWVhMDY2ODQxNGEyMGUx
MDhkMThiNmZiOGNmOTgwMzBlOTc1MGU2Yy4uOTI0YjU1ZjUyYWUyNTkxYTAzNDY4ZDUzZWU2MTA3
NTY3MzNiMzg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE2LTAyLTA5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIFNQSSB0byBy
ZW1vdmUgaW5kaXZpZHVhbCB1c2VyIHNjcmlwdHMgb3IgdXNlciBzdHlsZSBzaGVldHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDA0NgorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yMzU5NjM1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZVVz
ZXJTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIF91c2VyU3R5
bGVTaGVldHNdKToKKyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJT
dHlsZVNoZWV0Ol0pOgorICAgICAgICAoLVtXS1VzZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3Zl
VXNlclN0eWxlU2hlZXQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJD
b250ZW50Q29udHJvbGxlclByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRk
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
OjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHk6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTdHls
ZVNoZWV0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5Ojp1c2VyU3R5bGVTaGVldHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5tZXNzYWdlcy5pbjoKKworMjAxNi0wMi0wOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgorCiAgICAgICAgIEFsbCAzMi1iaXQgcGx1Zy1pbnMgc2hvdWxkIHVzZSB0aGUg
WFBDIHNlcnZpY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NDAzNgogICAgICAgICByZGFyOi8vcHJvYmxlbS8xNjA1OTQ4MwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENv
bnRyb2xsZXIubW0KaW5kZXggZmU2ZDYwY2M1MmM1MDQ2YTBiZGE1NTg5YWFiZmUyNGIzZGE1NjZl
MC4uM2M5MDEzYjRmOGZiNjBiOWRlNGU3MmJjYmQ2ZDJlNGNhOTQzYmY5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRl
bnRDb250cm9sbGVyLm1tCkBAIC0xMjYsNiArMTI2LDExIEBAIHByaXZhdGU6CiAKIEBpbXBsZW1l
bnRhdGlvbiBXS1VzZXJDb250ZW50Q29udHJvbGxlciAoV0tQcml2YXRlKQogCistICh2b2lkKV9y
ZW1vdmVVc2VyU2NyaXB0OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0Cit7CisgICAgX3VzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVVc2VyU2NyaXB0KCp1c2VyU2NyaXB0LT5fdXNl
clNjcmlwdCk7Cit9CisKIC0gKHZvaWQpX2FkZFVzZXJDb250ZW50RmlsdGVyOihfV0tVc2VyQ29u
dGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKQEAgLTE0Nyw5ICsxNTIsMTkgQEAgcHJpdmF0ZToKICNlbmRpZgogfQogCistIChO
U0FycmF5ICopX3VzZXJTdHlsZVNoZWV0cworeworICAgIHJldHVybiB3cmFwcGVyKF91c2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS0+dXNlclN0eWxlU2hlZXRzKCkpOworfQorCiAtICh2b2lkKV9h
ZGRVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldAogewot
ICAgIF91c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+YWRkVXNlclN0eWxlU2hlZXQodXNlclN0
eWxlU2hlZXQtPl91c2VyU3R5bGVTaGVldC0+dXNlclN0eWxlU2hlZXQoKSk7CisgICAgX3VzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LT5hZGRVc2VyU3R5bGVTaGVldCgqdXNlclN0eWxlU2hlZXQt
Pl91c2VyU3R5bGVTaGVldCk7Cit9CisKKy0gKHZvaWQpX3JlbW92ZVVzZXJTdHlsZVNoZWV0Oihf
V0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0Cit7CisgICAgX3VzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LT5yZW1vdmVVc2VyU3R5bGVTaGVldCgqdXNlclN0eWxlU2hlZXQtPl91c2Vy
U3R5bGVTaGVldCk7CiB9CiAKIC0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50
Q29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggM2RmNWE2NTgyZDI4NmEzYjIw
MWU5ZmZlYzIwZWE2ZGEwYTAwMDliOC4uNWI0OTBhZWZhOGQ0ZWFiMDMzYzY1ZTM4MTIwNWU1YWQz
YjVjOGIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCkBAIC0yNywx
NiArMjcsMjEgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKK0BjbGFzcyBXS1VzZXJTY3JpcHQ7
CiBAY2xhc3MgX1dLVXNlckNvbnRlbnRGaWx0ZXI7CiBAY2xhc3MgX1dLVXNlclN0eWxlU2hlZXQ7
CiAKIEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKFdLUHJpdmF0ZSkKIAorLSAo
dm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0ICopdXNlclNjcmlwdCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKIC0gKHZvaWQpX2FkZFVzZXJDb250ZW50
RmlsdGVyOihfV0tVc2VyQ29udGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyIFdLX0FWQUlM
QUJMRSgxMF8xMSwgOV8wKTsKIC0gKHZvaWQpX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0
cmluZyAqKXVzZXJDb250ZW50RmlsdGVyTmFtZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CiAt
ICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIFdLX0FSUkFZKF9X
S1VzZXJTdHlsZVNoZWV0ICopICpfdXNlclN0eWxlU2hlZXRzOwogLSAodm9pZClfYWRkVXNlclN0
eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfcmVtb3ZlVXNlclN0eWxlU2hlZXQ6
KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOwogLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMjBjZDM2M2FlMzljNTgxZWNmZGE5NzA1
OGIzYzU2ZWU5OTA0ZmM2OC4uZTA3YzA3MjJjNzVhYzQwMjc0ZGMyMGJhNTkxMzMxZjM0ODJiNGZi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSVVzZXJTY3Jp
cHQuaCIKKyNpbmNsdWRlICJBUElVc2VyU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlci5oIgpAQCAtNTIsNiArNTMsNyBAQCBzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVJZGVudGlmaWVyKCkKIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eSgpCiAgICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVJZGVu
dGlmaWVyKCkpCiAgICAgLCBtX3VzZXJTY3JpcHRzKEFQSTo6QXJyYXk6OmNyZWF0ZSgpKQorICAg
ICwgbV91c2VyU3R5bGVTaGVldHMoQVBJOjpBcnJheTo6Y3JlYXRlKCkpCiB7CiB9CiAKQEAgLTc3
LDcgKzc5LDEwIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFByb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHkpCiAgICAgICAgIHVzZXJTY3JpcHRz
LmFwcGVuZCh1c2VyU2NyaXB0LT51c2VyU2NyaXB0KCkpOwogICAgIHdlYlByb2Nlc3NQcm94eS5j
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6QWRk
VXNlclNjcmlwdHModXNlclNjcmlwdHMpLCBtX2lkZW50aWZpZXIpOwogCi0gICAgd2ViUHJvY2Vz
c1Byb3h5LmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9s
bGVyOjpBZGRVc2VyU3R5bGVTaGVldHMobV91c2VyU3R5bGVTaGVldHMpLCBtX2lkZW50aWZpZXIp
OworICAgIFZlY3RvcjxXZWJDb3JlOjpVc2VyU3R5bGVTaGVldD4gdXNlclN0eWxlU2hlZXRzOwor
ICAgIGZvciAoY29uc3QgYXV0byYgdXNlclN0eWxlU2hlZXQgOiBtX3VzZXJTY3JpcHRzLT5lbGVt
ZW50c09mVHlwZTxBUEk6OlVzZXJTdHlsZVNoZWV0PigpKQorICAgICAgICB1c2VyU3R5bGVTaGVl
dHMuYXBwZW5kKHVzZXJTdHlsZVNoZWV0LT51c2VyU3R5bGVTaGVldCgpKTsKKyAgICB3ZWJQcm9j
ZXNzUHJveHkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OkFkZFVzZXJTdHlsZVNoZWV0cyh1c2VyU3R5bGVTaGVldHMpLCBtX2lkZW50aWZpZXIp
OwogCiAgICAgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVySGFuZGxlPiBtZXNzYWdlSGFu
ZGxlckhhbmRsZXM7CiAgICAgZm9yIChhdXRvJiBoYW5kbGVyIDogbV9zY3JpcHRNZXNzYWdlSGFu
ZGxlcnMudmFsdWVzKCkpCkBAIC0xMDgsNiArMTEzLDE0IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHk6OmFkZFVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0JiB1c2VyU2NyaXB0
KQogICAgICAgICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6QWRkVXNlclNjcmlwdHMoeyB1c2VyU2NyaXB0LnVzZXJTY3JpcHQo
KSB9KSwgbV9pZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eTo6cmVtb3ZlVXNlclNjcmlwdChjb25zdCBBUEk6OlVzZXJTY3JpcHQmIHVzZXJTY3JpcHQp
Cit7CisgICAgZm9yIChXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKKyAg
ICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXI6OlJlbW92ZVVzZXJTY3JpcHQoeyB1c2VyU2NyaXB0LnVzZXJTY3JpcHQoKS51
cmwoKS5zdHJpbmcoKSB9KSwgbV9pZGVudGlmaWVyKTsKKworICAgIG1fdXNlclNjcmlwdHMtPmVs
ZW1lbnRzKCkucmVtb3ZlQWxsKCZ1c2VyU2NyaXB0KTsKK30KKwogdm9pZCBXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclNjcmlwdHMoKQogewogICAgIG1fdXNlclNj
cmlwdHMtPmVsZW1lbnRzKCkuY2xlYXIoKTsKQEAgLTExNiwxNyArMTI5LDI1IEBAIHZvaWQgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTY3JpcHRzKCkKICAgICAg
ICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENv
bnRyb2xsZXI6OlJlbW92ZUFsbFVzZXJTY3JpcHRzKCksIG1faWRlbnRpZmllcik7CiB9CiAKLXZv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFVzZXJTdHlsZVNoZWV0KFdlYkNv
cmU6OlVzZXJTdHlsZVNoZWV0IHVzZXJTdHlsZVNoZWV0KQordm9pZCBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eTo6YWRkVXNlclN0eWxlU2hlZXQoQVBJOjpVc2VyU3R5bGVTaGVldCYgdXNl
clN0eWxlU2hlZXQpCiB7Ci0gICAgbV91c2VyU3R5bGVTaGVldHMuYXBwZW5kKFdURk1vdmUodXNl
clN0eWxlU2hlZXQpKTsKKyAgICBtX3VzZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHMoKS5hcHBlbmQo
JnVzZXJTdHlsZVNoZWV0KTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDog
bV9wcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU3R5bGVTaGVldHMoeyBtX3VzZXJT
dHlsZVNoZWV0cy5sYXN0KCkgfSksIG1faWRlbnRpZmllcik7CisgICAgICAgIHByb2Nlc3MtPmNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRV
c2VyU3R5bGVTaGVldHMoeyB1c2VyU3R5bGVTaGVldC51c2VyU3R5bGVTaGVldCgpIH0pLCBtX2lk
ZW50aWZpZXIpOworfQorCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1v
dmVVc2VyU3R5bGVTaGVldChjb25zdCBBUEk6OlVzZXJTdHlsZVNoZWV0JiB1c2VyU3R5bGVTaGVl
dCkKK3sKKyAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQor
ICAgICAgICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6UmVtb3ZlVXNlclN0eWxlU2hlZXQoeyB1c2VyU3R5bGVTaGVldC51c2Vy
U3R5bGVTaGVldCgpLnVybCgpLnN0cmluZygpIH0pLCBtX2lkZW50aWZpZXIpOworCisgICAgbV91
c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRzKCkucmVtb3ZlQWxsKCZ1c2VyU3R5bGVTaGVldCk7CiB9
CiAKIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTdHls
ZVNoZWV0cygpCiB7Ci0gICAgbV91c2VyU3R5bGVTaGVldHMuY2xlYXIoKTsKKyAgICBtX3VzZXJT
dHlsZVNoZWV0cy0+ZWxlbWVudHMoKS5jbGVhcigpOwogCiAgICAgZm9yIChXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKICAgICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZUFsbFVzZXJT
dHlsZVNoZWV0cygpLCBtX2lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkuaAppbmRleCBmN2JhNTRiMWRjMmQ0MzFiMDk1OTkwYWU3ZWYzODgyNjBiNGY5ZDgz
Li5lOWZmOWE5MmUxYmRjMmM4NWQ0MzRhMDQ4Y2JlNjZjMTk3NWFmY2VmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2Ug
QVBJIHsKIGNsYXNzIEFycmF5OwogY2xhc3MgVXNlckNvbnRlbnRFeHRlbnNpb247CiBjbGFzcyBV
c2VyU2NyaXB0OworY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewpA
QCAtNDgsOCArNDksNiBAQCBjbGFzcyBEYXRhUmVmZXJlbmNlOwogfQogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBVc2VyU2NyaXB0OwotY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiBzdHJ1Y3Qg
U2VjdXJpdHlPcmlnaW5EYXRhOwogfQogCkBAIC03NCw5ICs3MywxMiBAQCBwdWJsaWM6CiAKICAg
ICBBUEk6OkFycmF5JiB1c2VyU2NyaXB0cygpIHsgcmV0dXJuIG1fdXNlclNjcmlwdHMuZ2V0KCk7
IH0KICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0Jik7CisgICAgdm9pZCBy
ZW1vdmVVc2VyU2NyaXB0KGNvbnN0IEFQSTo6VXNlclNjcmlwdCYpOwogICAgIHZvaWQgcmVtb3Zl
QWxsVXNlclNjcmlwdHMoKTsKIAotICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoV2ViQ29yZTo6
VXNlclN0eWxlU2hlZXQpOworICAgIEFQSTo6QXJyYXkmIHVzZXJTdHlsZVNoZWV0cygpIHsgcmV0
dXJuIG1fdXNlclN0eWxlU2hlZXRzLmdldCgpOyB9CisgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVl
dChBUEk6OlVzZXJTdHlsZVNoZWV0Jik7CisgICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldChj
b25zdCBBUEk6OlVzZXJTdHlsZVNoZWV0Jik7CiAgICAgdm9pZCByZW1vdmVBbGxVc2VyU3R5bGVT
aGVldHMoKTsKIAogICAgIC8vIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgd2FzIGEgbmFtZSBjb25m
bGljdC4KQEAgLTk4LDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9pZGVudGlm
aWVyOwogICAgIEhhc2hTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj4gbV9wcm9jZXNzZXM7ICAgIAogICAg
IFJlZjxBUEk6OkFycmF5PiBtX3VzZXJTY3JpcHRzOwotICAgIFZlY3RvcjxXZWJDb3JlOjpVc2Vy
U3R5bGVTaGVldD4gbV91c2VyU3R5bGVTaGVldHM7CisgICAgUmVmPEFQSTo6QXJyYXk+IG1fdXNl
clN0eWxlU2hlZXRzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJTY3JpcHRNZXNz
YWdlSGFuZGxlcj4+IG1fc2NyaXB0TWVzc2FnZUhhbmRsZXJzOwogCiAjaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAppbmRleCAx
Y2ZiZDk2MTQ1MzY1N2VkNDNmY2FmZmFjNmRiNDI5MWQ0OWFhYzQwLi42N2E1NDIyYTQyMjI5OWYy
NDIyOGE4ODZiYmNhMDAyMjUzMDRhMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIuY3BwCkBAIC05MCw2ICs5MCwxMSBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6
YWRkVXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVzZXJTY3JpcHQ+JgogICAgICAg
ICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkVXNlclNjcmlwdChtYWluVGhyZWFkTm9ybWFs
V29ybGQoKSwgc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpVc2VyU2NyaXB0Pih1c2VyU2NyaXB0
KSk7CiB9CiAKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQoreworICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVy
LT5yZW1vdmVVc2VyU2NyaXB0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBVUkwoVVJMKCksIHVy
bFN0cmluZykpOworfQorCiB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlQWxs
VXNlclNjcmlwdHMoKQogewogICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5yZW1vdmVVc2Vy
U2NyaXB0cyhtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CkBAIC0xMDMsNiArMTA4LDExIEBAIHZv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlVzZXJTdHlsCiAgICAgfQogfQogCit2b2lkIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlcjo6cmVtb3ZlVXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit7
CisgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPnJlbW92ZVVzZXJTdHlsZVNoZWV0KG1haW5U
aHJlYWROb3JtYWxXb3JsZCgpLCBVUkwoVVJMKCksIHVybFN0cmluZykpOworfQorCiB2b2lkIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCkKIHsKICAg
ICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+cmVtb3ZlVXNlclN0eWxlU2hlZXRzKG1haW5UaHJl
YWROb3JtYWxXb3JsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCmluZGV4IGU0
NzZhMWY5YzUwZTQ5Yzk1MzJkZDhiMmI3MWJkMmNmMzk4NTE1NDcuLjliNDdiZTI1N2Y3ODNiMjZh
OGFhNjc0NDE1YWI0YjE4MmZhYmNlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6VXNlclNj
cmlwdD4mKTsKKyAgICB2b2lkIHJlbW92ZVVzZXJTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcpOwogICAgIHZvaWQgcmVtb3ZlQWxsVXNlclNjcmlwdHMoKTsKIAogICAgIHZvaWQgYWRkVXNl
clN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpVc2VyU3R5bGVTaGVldD4mKTsKKyAg
ICB2b2lkIHJlbW92ZVVzZXJTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKICAg
ICB2b2lkIHJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cygpOwogCiAgICAgdm9pZCBhZGRVc2VyU2Ny
aXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckhh
bmRsZT4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMu
aW4KaW5kZXggMGUzYjRmZWJkYjFmMTUzMDU5NzkxODZiNWE2NDNhZjgyYWEyZWExNC4uYmM5Zjk0
ZjQ3MjllYjhhM2JmNGFiMTAzZjEwZGExMzZmZjc4YTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTI1LDkgKzI1LDExIEBACiAKIG1l
c3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlciB7CiAgICAgQWRkVXNlclNjcmlwdHMo
VmVjdG9yPFdlYkNvcmU6OlVzZXJTY3JpcHQ+IHVzZXJTY3JpcHRzKTsKKyAgICBSZW1vdmVVc2Vy
U2NyaXB0KFN0cmluZyB1cmwpOwogICAgIFJlbW92ZUFsbFVzZXJTY3JpcHRzKCk7CiAKICAgICBB
ZGRVc2VyU3R5bGVTaGVldHMoVmVjdG9yPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0PiB1c2VyU3R5
bGVTaGVldHMpOworICAgIFJlbW92ZVVzZXJTdHlsZVNoZWV0KFN0cmluZyB1cmwpOwogICAgIFJl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cygpOwogCiAgICAgQWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5k
bGVycyhWZWN0b3I8V2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckhhbmRsZT4gc2NyaXB0
TWVzc2FnZUhhbmRsZXJzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270955</attachid>
            <date>2016-02-09 14:55:28 -0800</date>
            <delta_ts>2016-02-09 14:57:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154046-20160209145506.patch</filename>
            <type>text/plain</type>
            <size>13393</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWVhMDY2ODQxNGEyMGUx
MDhkMThiNmZiOGNmOTgwMzBlOTc1MGU2Yy4uOTI0YjU1ZjUyYWUyNTkxYTAzNDY4ZDUzZWU2MTA3
NTY3MzNiMzg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE2LTAyLTA5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIFNQSSB0byBy
ZW1vdmUgaW5kaXZpZHVhbCB1c2VyIHNjcmlwdHMgb3IgdXNlciBzdHlsZSBzaGVldHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDA0NgorICAgICAg
ICByZGFyOi8vcHJvYmxlbS8yMzU5NjM1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZVVz
ZXJTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIF91c2VyU3R5
bGVTaGVldHNdKToKKyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJT
dHlsZVNoZWV0Ol0pOgorICAgICAgICAoLVtXS1VzZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3Zl
VXNlclN0eWxlU2hlZXQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJD
b250ZW50Q29udHJvbGxlclByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRk
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
OjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHk6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTdHls
ZVNoZWV0cyk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5Ojp1c2VyU3R5bGVTaGVldHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5tZXNzYWdlcy5pbjoKKworMjAxNi0wMi0wOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgorCiAgICAgICAgIEFsbCAzMi1iaXQgcGx1Zy1pbnMgc2hvdWxkIHVzZSB0aGUg
WFBDIHNlcnZpY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NDAzNgogICAgICAgICByZGFyOi8vcHJvYmxlbS8xNjA1OTQ4MwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENv
bnRyb2xsZXIubW0KaW5kZXggZmU2ZDYwY2M1MmM1MDQ2YTBiZGE1NTg5YWFiZmUyNGIzZGE1NjZl
MC4uM2M5MDEzYjRmOGZiNjBiOWRlNGU3MmJjYmQ2ZDJlNGNhOTQzYmY5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRl
bnRDb250cm9sbGVyLm1tCkBAIC0xMjYsNiArMTI2LDExIEBAIHByaXZhdGU6CiAKIEBpbXBsZW1l
bnRhdGlvbiBXS1VzZXJDb250ZW50Q29udHJvbGxlciAoV0tQcml2YXRlKQogCistICh2b2lkKV9y
ZW1vdmVVc2VyU2NyaXB0OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0Cit7CisgICAgX3VzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVVc2VyU2NyaXB0KCp1c2VyU2NyaXB0LT5fdXNl
clNjcmlwdCk7Cit9CisKIC0gKHZvaWQpX2FkZFVzZXJDb250ZW50RmlsdGVyOihfV0tVc2VyQ29u
dGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKQEAgLTE0Nyw5ICsxNTIsMTkgQEAgcHJpdmF0ZToKICNlbmRpZgogfQogCistIChO
U0FycmF5ICopX3VzZXJTdHlsZVNoZWV0cworeworICAgIHJldHVybiB3cmFwcGVyKF91c2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS0+dXNlclN0eWxlU2hlZXRzKCkpOworfQorCiAtICh2b2lkKV9h
ZGRVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldAogewot
ICAgIF91c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+YWRkVXNlclN0eWxlU2hlZXQodXNlclN0
eWxlU2hlZXQtPl91c2VyU3R5bGVTaGVldC0+dXNlclN0eWxlU2hlZXQoKSk7CisgICAgX3VzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LT5hZGRVc2VyU3R5bGVTaGVldCgqdXNlclN0eWxlU2hlZXQt
Pl91c2VyU3R5bGVTaGVldCk7Cit9CisKKy0gKHZvaWQpX3JlbW92ZVVzZXJTdHlsZVNoZWV0Oihf
V0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0Cit7CisgICAgX3VzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LT5yZW1vdmVVc2VyU3R5bGVTaGVldCgqdXNlclN0eWxlU2hlZXQtPl91c2Vy
U3R5bGVTaGVldCk7CiB9CiAKIC0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50
Q29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggM2RmNWE2NTgyZDI4NmEzYjIw
MWU5ZmZlYzIwZWE2ZGEwYTAwMDliOC4uM2M1ZGY5YjI5ZmIwZjdjYmRhZDE5MDg3YjliMDA0YTFl
MWQzMGFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCkBAIC0yNywx
NiArMjcsMjEgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKK0BjbGFzcyBXS1VzZXJTY3JpcHQ7
CiBAY2xhc3MgX1dLVXNlckNvbnRlbnRGaWx0ZXI7CiBAY2xhc3MgX1dLVXNlclN0eWxlU2hlZXQ7
CiAKIEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKFdLUHJpdmF0ZSkKIAorLSAo
dm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0ICopdXNlclNjcmlwdCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKIC0gKHZvaWQpX2FkZFVzZXJDb250ZW50
RmlsdGVyOihfV0tVc2VyQ29udGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyIFdLX0FWQUlM
QUJMRSgxMF8xMSwgOV8wKTsKIC0gKHZvaWQpX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0
cmluZyAqKXVzZXJDb250ZW50RmlsdGVyTmFtZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CiAt
ICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIFdLX0FSUkFZKF9X
S1VzZXJTdHlsZVNoZWV0ICopICpfdXNlclN0eWxlU2hlZXRzIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKIC0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5
bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAq
KXVzZXJTdHlsZVNoZWV0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIC0g
KHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
V0tfSU9TX1RCQSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkuY3BwCmluZGV4IDIwY2QzNjNhZTM5YzU4MWVjZmRhOTcwNThiM2M1NmVlOTkwNGZjNjguLmUw
N2MwNzIyYzc1YWM0MDI3NGRjMjBiYTU5MTMzMWYzNDgyYjRmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElVc2VyU2NyaXB0LmgiCisjaW5jbHVkZSAiQVBJ
VXNlclN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIuaCIK
QEAgLTUyLDYgKzUzLDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSWRlbnRpZmllcigpCiBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkoKQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV91
c2VyU2NyaXB0cyhBUEk6OkFycmF5OjpjcmVhdGUoKSkKKyAgICAsIG1fdXNlclN0eWxlU2hlZXRz
KEFQSTo6QXJyYXk6OmNyZWF0ZSgpKQogewogfQogCkBAIC03Nyw3ICs3OSwxMCBAQCB2b2lkIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjphZGRQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYg
d2ViUHJvY2Vzc1Byb3h5KQogICAgICAgICB1c2VyU2NyaXB0cy5hcHBlbmQodXNlclNjcmlwdC0+
dXNlclNjcmlwdCgpKTsKICAgICB3ZWJQcm9jZXNzUHJveHkuY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZFVzZXJTY3JpcHRzKHVzZXJTY3Jp
cHRzKSwgbV9pZGVudGlmaWVyKTsKIAotICAgIHdlYlByb2Nlc3NQcm94eS5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6QWRkVXNlclN0eWxlU2hl
ZXRzKG1fdXNlclN0eWxlU2hlZXRzKSwgbV9pZGVudGlmaWVyKTsKKyAgICBWZWN0b3I8V2ViQ29y
ZTo6VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHlsZVNoZWV0czsKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IHVzZXJTdHlsZVNoZWV0IDogbV91c2VyU2NyaXB0cy0+ZWxlbWVudHNPZlR5cGU8QVBJOjpVc2Vy
U3R5bGVTaGVldD4oKSkKKyAgICAgICAgdXNlclN0eWxlU2hlZXRzLmFwcGVuZCh1c2VyU3R5bGVT
aGVldC0+dXNlclN0eWxlU2hlZXQoKSk7CisgICAgd2ViUHJvY2Vzc1Byb3h5LmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU3R5bGVT
aGVldHModXNlclN0eWxlU2hlZXRzKSwgbV9pZGVudGlmaWVyKTsKIAogICAgIFZlY3RvcjxXZWJT
Y3JpcHRNZXNzYWdlSGFuZGxlckhhbmRsZT4gbWVzc2FnZUhhbmRsZXJIYW5kbGVzOwogICAgIGZv
ciAoYXV0byYgaGFuZGxlciA6IG1fc2NyaXB0TWVzc2FnZUhhbmRsZXJzLnZhbHVlcygpKQpAQCAt
MTA4LDYgKzExMywxNCBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjphZGRV
c2VyU2NyaXB0KEFQSTo6VXNlclNjcmlwdCYgdXNlclNjcmlwdCkKICAgICAgICAgcHJvY2Vzcy0+
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFk
ZFVzZXJTY3JpcHRzKHsgdXNlclNjcmlwdC51c2VyU2NyaXB0KCkgfSksIG1faWRlbnRpZmllcik7
CiB9CiAKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTY3Jp
cHQoY29uc3QgQVBJOjpVc2VyU2NyaXB0JiB1c2VyU2NyaXB0KQoreworICAgIGZvciAoV2ViUHJv
Y2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpCisgICAgICAgIHByb2Nlc3MtPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVV
c2VyU2NyaXB0KHsgdXNlclNjcmlwdC51c2VyU2NyaXB0KCkudXJsKCkuc3RyaW5nKCkgfSksIG1f
aWRlbnRpZmllcik7CisKKyAgICBtX3VzZXJTY3JpcHRzLT5lbGVtZW50cygpLnJlbW92ZUFsbCgm
dXNlclNjcmlwdCk7Cit9CisKIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJl
bW92ZUFsbFVzZXJTY3JpcHRzKCkKIHsKICAgICBtX3VzZXJTY3JpcHRzLT5lbGVtZW50cygpLmNs
ZWFyKCk7CkBAIC0xMTYsMTcgKzEyOSwyNSBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5OjpyZW1vdmVBbGxVc2VyU2NyaXB0cygpCiAgICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxV
c2VyU2NyaXB0cygpLCBtX2lkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5OjphZGRVc2VyU3R5bGVTaGVldChXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCB1
c2VyU3R5bGVTaGVldCkKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFVz
ZXJTdHlsZVNoZWV0KEFQSTo6VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQogewotICAg
IG1fdXNlclN0eWxlU2hlZXRzLmFwcGVuZChXVEZNb3ZlKHVzZXJTdHlsZVNoZWV0KSk7CisgICAg
bV91c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRzKCkuYXBwZW5kKCZ1c2VyU3R5bGVTaGVldCk7CiAK
ICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQotICAgICAg
ICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29u
dHJvbGxlcjo6QWRkVXNlclN0eWxlU2hlZXRzKHsgbV91c2VyU3R5bGVTaGVldHMubGFzdCgpIH0p
LCBtX2lkZW50aWZpZXIpOworICAgICAgICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6QWRkVXNlclN0eWxlU2hlZXRzKHsgdXNl
clN0eWxlU2hlZXQudXNlclN0eWxlU2hlZXQoKSB9KSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9p
ZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlVXNlclN0eWxlU2hlZXQoY29u
c3QgQVBJOjpVc2VyU3R5bGVTaGVldCYgdXNlclN0eWxlU2hlZXQpCit7CisgICAgZm9yIChXZWJQ
cm9jZXNzUHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKKyAgICAgICAgcHJvY2Vzcy0+Y29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92
ZVVzZXJTdHlsZVNoZWV0KHsgdXNlclN0eWxlU2hlZXQudXNlclN0eWxlU2hlZXQoKS51cmwoKS5z
dHJpbmcoKSB9KSwgbV9pZGVudGlmaWVyKTsKKworICAgIG1fdXNlclN0eWxlU2hlZXRzLT5lbGVt
ZW50cygpLnJlbW92ZUFsbCgmdXNlclN0eWxlU2hlZXQpOwogfQogCiB2b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKQogewotICAgIG1f
dXNlclN0eWxlU2hlZXRzLmNsZWFyKCk7CisgICAgbV91c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRz
KCkuY2xlYXIoKTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9j
ZXNzZXMpCiAgICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKSwgbV9pZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggZjdi
YTU0YjFkYzJkNDMxYjA5NTk5MGFlN2VmMzg4MjYwYjRmOWQ4My4uZTlmZjlhOTJlMWJkYzJjODVk
NDM0YTA0OGNiZTY2YzE5NzVhZmNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5LmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsK
IGNsYXNzIFVzZXJDb250ZW50RXh0ZW5zaW9uOwogY2xhc3MgVXNlclNjcmlwdDsKK2NsYXNzIFVz
ZXJTdHlsZVNoZWV0OwogfQogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQ4LDggKzQ5LDYgQEAgY2xh
c3MgRGF0YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgVXNlclNj
cmlwdDsKLWNsYXNzIFVzZXJTdHlsZVNoZWV0Owogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsK
IH0KIApAQCAtNzQsOSArNzMsMTIgQEAgcHVibGljOgogCiAgICAgQVBJOjpBcnJheSYgdXNlclNj
cmlwdHMoKSB7IHJldHVybiBtX3VzZXJTY3JpcHRzLmdldCgpOyB9CiAgICAgdm9pZCBhZGRVc2Vy
U2NyaXB0KEFQSTo6VXNlclNjcmlwdCYpOworICAgIHZvaWQgcmVtb3ZlVXNlclNjcmlwdChjb25z
dCBBUEk6OlVzZXJTY3JpcHQmKTsKICAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRzKCk7CiAK
LSAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0KFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0KTsKKyAg
ICBBUEk6OkFycmF5JiB1c2VyU3R5bGVTaGVldHMoKSB7IHJldHVybiBtX3VzZXJTdHlsZVNoZWV0
cy5nZXQoKTsgfQorICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoQVBJOjpVc2VyU3R5bGVTaGVl
dCYpOworICAgIHZvaWQgcmVtb3ZlVXNlclN0eWxlU2hlZXQoY29uc3QgQVBJOjpVc2VyU3R5bGVT
aGVldCYpOwogICAgIHZvaWQgcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCk7CiAKICAgICAvLyBS
ZXR1cm5zIGZhbHNlIGlmIHRoZXJlIHdhcyBhIG5hbWUgY29uZmxpY3QuCkBAIC05OCw3ICsxMDAs
NyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKICAgICBIYXNoU2V0PFdl
YlByb2Nlc3NQcm94eSo+IG1fcHJvY2Vzc2VzOyAgICAKICAgICBSZWY8QVBJOjpBcnJheT4gbV91
c2VyU2NyaXB0czsKLSAgICBWZWN0b3I8V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQ+IG1fdXNlclN0
eWxlU2hlZXRzOworICAgIFJlZjxBUEk6OkFycmF5PiBtX3VzZXJTdHlsZVNoZWV0czsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXI+PiBtX3Njcmlw
dE1lc3NhZ2VIYW5kbGVyczsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50
L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKaW5kZXggMWNmYmQ5NjE0NTM2NTdlZDQzZmNh
ZmZhYzZkYjQyOTFkNDlhYWM0MC4uNjdhNTQyMmE0MjIyOTlmMjQyMjhhODg2YmJjYTAwMjI1MzA0
YTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcApAQCAtOTAsNiArOTAs
MTEgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHRzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpVc2VyU2NyaXB0PiYKICAgICAgICAgbV91c2VyQ29udGVudENvbnRy
b2xsZXItPmFkZFVzZXJTY3JpcHQobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIHN0ZDo6bWFrZV91
bmlxdWU8V2ViQ29yZTo6VXNlclNjcmlwdD4odXNlclNjcmlwdCkpOwogfQogCit2b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlclNjcmlwdChjb25zdCBTdHJpbmcmIHVybFN0
cmluZykKK3sKKyAgICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+cmVtb3ZlVXNlclNjcmlwdCht
YWluVGhyZWFkTm9ybWFsV29ybGQoKSwgVVJMKFVSTCgpLCB1cmxTdHJpbmcpKTsKK30KKwogdm9p
ZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTY3JpcHRzKCkKIHsKICAg
ICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+cmVtb3ZlVXNlclNjcmlwdHMobWFpblRocmVhZE5v
cm1hbFdvcmxkKCkpOwpAQCAtMTAzLDYgKzEwOCwxMSBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpVc2VyU3R5
bAogICAgIH0KIH0KIAordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJT
dHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQoreworICAgIG1fdXNlckNvbnRlbnRD
b250cm9sbGVyLT5yZW1vdmVVc2VyU3R5bGVTaGVldChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwg
VVJMKFVSTCgpLCB1cmxTdHJpbmcpKTsKK30KKwogdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cygpCiB7CiAgICAgbV91c2VyQ29udGVudENvbnRy
b2xsZXItPnJlbW92ZVVzZXJTdHlsZVNoZWV0cyhtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaAppbmRleCBlNDc2YTFmOWM1MGU0OWM5NTMyZGQ4
YjJiNzFiZDJjZjM5ODUxNTQ3Li45YjQ3YmUyNTdmNzgzYjI2YThhYTY3NDQxNWFiNGIxODJmYWJj
ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgKQEAgLTUzLDkgKzUzLDExIEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkVXNl
clNjcmlwdHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlVzZXJTY3JpcHQ+Jik7CisgICAgdm9pZCBy
ZW1vdmVVc2VyU2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKICAgICB2b2lkIHJlbW92
ZUFsbFVzZXJTY3JpcHRzKCk7CiAKICAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0cyhjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQ+Jik7CisgICAgdm9pZCByZW1vdmVVc2VyU3R5
bGVTaGVldChjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CiAgICAgdm9pZCByZW1vdmVBbGxVc2Vy
U3R5bGVTaGVldHMoKTsKIAogICAgIHZvaWQgYWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhj
b25zdCBWZWN0b3I8V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJIYW5kbGU+Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCmluZGV4IDBlM2I0ZmViZGIx
ZjE1MzA1OTc5MTg2YjVhNjQzYWY4MmFhMmVhMTQuLmJjOWY5NGY0NzI5ZWI4YTNiZjRhYjEwM2Yx
MGRhMTM2ZmY3OGE4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
Lm1lc3NhZ2VzLmluCkBAIC0yNSw5ICsyNSwxMSBAQAogCiBtZXNzYWdlcyAtPiBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIgewogICAgIEFkZFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJDb3JlOjpVc2Vy
U2NyaXB0PiB1c2VyU2NyaXB0cyk7CisgICAgUmVtb3ZlVXNlclNjcmlwdChTdHJpbmcgdXJsKTsK
ICAgICBSZW1vdmVBbGxVc2VyU2NyaXB0cygpOwogCiAgICAgQWRkVXNlclN0eWxlU2hlZXRzKFZl
Y3RvcjxXZWJDb3JlOjpVc2VyU3R5bGVTaGVldD4gdXNlclN0eWxlU2hlZXRzKTsKKyAgICBSZW1v
dmVVc2VyU3R5bGVTaGVldChTdHJpbmcgdXJsKTsKICAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVl
dHMoKTsKIAogICAgIEFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoVmVjdG9yPFdlYktpdDo6
V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJIYW5kbGU+IHNjcmlwdE1lc3NhZ2VIYW5kbGVycyk7Cg==
</data>
<flag name="review"
          id="295805"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>