<?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>87567</bug_id>
          
          <creation_ts>2012-05-25 22:20:54 -0700</creation_ts>
          <short_desc>[BlackBerry] Add an Overlay layer</short_desc>
          <delta_ts>2012-05-28 11:29:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87565</dependson>
          <blocked>87569</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634585</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-25 22:20:54 -0700</bug_when>
    <thetext>The overlay layer allows us to have compositing layers even though the
            web page is not currently using accelerated compositing.
    
            These layers can be used to implement tap highlight, inspector overlay
            and more.
    
            Reviewed by Filip Spacek.


            The WebCore changes support the overlay layer functionality in WebKit
            by making it possible to add animations from the compositing thread
            without them being instantly overwritten during the next commit.
    
            Also a new custom layer type is added, which allow an overlay layer to
            draw itself using raw OpenGL calls. An instance of a custom subclass of
            LayerCompositingThread must be provided when creating the
            LayerWebKitThread. Then, the custom layer can be used as the content
            layer of a GraphicsLayer, or by itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634745</commentid>
    <comment_count>1</comment_count>
      <attachid>144230</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 06:31:34 -0700</bug_when>
    <thetext>Created attachment 144230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634752</commentid>
    <comment_count>2</comment_count>
      <attachid>144230</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-27 07:08:34 -0700</bug_when>
    <thetext>Comment on attachment 144230
Patch

simply awesome!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634753</commentid>
    <comment_count>3</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-27 07:09:28 -0700</bug_when>
    <thetext>did not set cq+, since it does not seem to apply. ping me when it is ready to land (its dependencies have landed, for example).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634769</commentid>
    <comment_count>4</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 11:03:30 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 144230 [details])
&gt; simply awesome!!!

It gets a lot better - there&apos;s a whole series of upcoming &quot;overlay&quot; patches to create a public BlackBerry::WebKit::WebOverlay API for adding AC layers to the web page =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635333</commentid>
    <comment_count>5</comment_count>
      <attachid>144230</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 11:29:45 -0700</bug_when>
    <thetext>Comment on attachment 144230
Patch

Clearing flags on attachment: 144230

Committed r118699: &lt;http://trac.webkit.org/changeset/118699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635334</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 11:29:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144230</attachid>
            <date>2012-05-27 06:31:34 -0700</date>
            <delta_ts>2012-05-28 11:29:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87567-20120527153132.patch</filename>
            <type>text/plain</type>
            <size>25076</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMzMDg4OGE4MDBkZGY2
YTVlYjFkODQ0ODcyY2I1YTBlYzBjM2E2Ni4uYjU3YTgxMGM5MGEyYjdjODE0NzFkNzgzMGMyMTMx
N2RlMTUzZDFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYzIEBACiAyMDEyLTA1LTI3ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJyeV0gQWRk
IGFuIG92ZXJsYXkgbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg3NTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIG92ZXJsYXkgbGF5ZXIgYWxsb3dzIHVzIHRvIGhhdmUgY29tcG9zaXRpbmcg
bGF5ZXJzIGV2ZW4gdGhvdWdoIHRoZQorICAgICAgICB3ZWIgcGFnZSBpcyBub3QgY3VycmVudGx5
IHVzaW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorCisgICAgICAgIFRoZXNlIGxheWVycyBj
YW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgdGFwIGhpZ2hsaWdodCwgaW5zcGVjdG9yIG92ZXJsYXkK
KyAgICAgICAgYW5kIG1vcmUuCisKKyAgICAgICAgVGhlIFdlYkNvcmUgY2hhbmdlcyBzdXBwb3J0
IHRoZSBvdmVybGF5IGxheWVyIGZ1bmN0aW9uYWxpdHkgaW4gV2ViS2l0CisgICAgICAgIGJ5IG1h
a2luZyBpdCBwb3NzaWJsZSB0byBhZGQgYW5pbWF0aW9ucyBmcm9tIHRoZSBjb21wb3NpdGluZyB0
aHJlYWQKKyAgICAgICAgd2l0aG91dCB0aGVtIGJlaW5nIGluc3RhbnRseSBvdmVyd3JpdHRlbiBk
dXJpbmcgdGhlIG5leHQgY29tbWl0LgorCisgICAgICAgIEFsc28gYSBuZXcgY3VzdG9tIGxheWVy
IHR5cGUgaXMgYWRkZWQsIHdoaWNoIGFsbG93IGFuIG92ZXJsYXkgbGF5ZXIgdG8KKyAgICAgICAg
ZHJhdyBpdHNlbGYgdXNpbmcgcmF3IE9wZW5HTCBjYWxscy4gQW4gaW5zdGFuY2Ugb2YgYSBjdXN0
b20gc3ViY2xhc3Mgb2YKKyAgICAgICAgTGF5ZXJDb21wb3NpdGluZ1RocmVhZCBtdXN0IGJlIHBy
b3ZpZGVkIHdoZW4gY3JlYXRpbmcgdGhlCisgICAgICAgIExheWVyV2ViS2l0VGhyZWFkLiBUaGVu
LCB0aGUgY3VzdG9tIGxheWVyIGNhbiBiZSB1c2VkIGFzIHRoZSBjb250ZW50CisgICAgICAgIGxh
eWVyIG9mIGEgR3JhcGhpY3NMYXllciwgb3IgYnkgaXRzZWxmLgorCisgICAgICAgIFJldmlld2Vk
IGludGVybmFsbHkgYnkgRmlsaXAgU3BhY2VrLgorCisgICAgICAgIFBSICMxNTQzMzUKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkOjp+TGF5ZXJD
b21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhy
ZWFkOjpkZWxldGVUZXh0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5n
VGhyZWFkOjpkcmF3VGV4dHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGlu
Z1RocmVhZDo6ZHJhd01pc3NpbmdUZXh0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNv
bXBvc2l0aW5nVGhyZWFkOjp1cGRhdGVUZXh0dXJlQ29udGVudHNJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpzZXRWaXNpYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OnNjaGVkdWxlQ29tbWl0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmFkZEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpzZXRSdW5uaW5n
QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpz
ZXRTdXNwZW5kZWRBbmltYXRpb25zKToKKyAgICAgICAgKExheWVyQ29tcG9zaXRpbmdUaHJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6ZHJhd0N1c3RvbSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckRhdGEuaDoKKyAg
ICAgICAgKExheWVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9MYXllcldlYktpdFRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldlYktpdFRo
cmVhZDo6TGF5ZXJXZWJLaXRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllcldlYktpdFRocmVhZDo6fkxheWVyV2ViS2l0VGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjp1cGRhdGVUZXh0dXJlQ29udGVudHNJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldlYktpdFRocmVhZDo6c3RhcnRBbmltYXRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjpjb21taXRPbkNvbXBvc2l0
aW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjpzZXROZWVk
c0Rpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJXZWJLaXRUaHJlYWQ6OnNl
dE5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldlYktpdFRocmVhZDo6c2V0
SXNNYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjpzZXRSdW5uaW5n
QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldlYktpdFRocmVhZDo6c2V0U3Vz
cGVuZGVkQW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9MYXllcldlYktpdFRocmVhZC5oOgorICAgICAgICAoTGF5ZXJXZWJLaXRUaHJlYWQpOgorCisy
MDEyLTA1LTI3ICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KKwogICAgICAgICBb
QmxhY2tCZXJyeV0gQWRkIGEgY29uc3RydWN0b3IgdG8gY3JlYXRlIGEgUGF0aCBmcm9tIGFuIFNr
UGF0aAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1
NjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggODg2MzQyZTBkOTc3NTJmNGE5
M2VlYWU3OWYxMjcxNWVlZDU4Y2Y4OS4uMDZkY2E1ZTI4Njk1Mzk5YzE4OTgxZTZiYzBmNTY1YTE5
NzJjYTUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAgQEAK
IDIwMTItMDUtMjcgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCisgICAgICAg
IFtCbGFja0JlcnJ5XSBBZGQgYW4gb3ZlcmxheSBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1NjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb3ZlcmxheSBsYXllciBhbGxvd3MgdXMgdG8g
aGF2ZSBjb21wb3NpdGluZyBsYXllcnMgZXZlbiB0aG91Z2ggdGhlCisgICAgICAgIHdlYiBwYWdl
IGlzIG5vdCBjdXJyZW50bHkgdXNpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCisKKyAgICAg
ICAgVGhlc2UgbGF5ZXJzIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCB0YXAgaGlnaGxpZ2h0LCBp
bnNwZWN0b3Igb3ZlcmxheQorICAgICAgICBhbmQgbW9yZS4KKworICAgICAgICBSZXZpZXdlZCBp
bnRlcm5hbGx5IGJ5IEZpbGlwIFNwYWNlay4KKworICAgICAgICBQUiAjMTU0MzM1CisKKyAgICAg
ICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2VQcml2YXRlOjpzY2hlZHVsZVJvb3RMYXllckNvbW1pdCk6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpvdmVybGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmNvbW1pdFJv
b3RMYXllcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpj
b21taXRSb290TGF5ZXJJZk5lZWRlZCk6CisgICAgICAgICogQXBpL1dlYlBhZ2VDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZUNvbXBvc2l0b3JQcml2
YXRlOjpzZXRPdmVybGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6V2ViUGFnZUNvbXBvc2l0b3JQcml2YXRlOjpwcmVwYXJlRnJhbWUpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlQ29tcG9zaXRvclByaXZhdGU6OnJl
bmRlcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDb21wb3NpdG9yUHJp
dmF0ZTo6ZHJhd0xheWVycyk6CisgICAgICAgICogQXBpL1dlYlBhZ2VDb21wb3NpdG9yX3AuaDoK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZUNvbXBvc2l0b3JQcml2YXRlOjpv
dmVybGF5TGF5ZXIpOgorICAgICAgICAoV2ViUGFnZUNvbXBvc2l0b3JQcml2YXRlKToKKyAgICAg
ICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisKKzIwMTIt
MDUtMjcgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBVcGRhdGUgV2ViUGFnZUNvbXBvc2l0b3I6OnJlbmRlcigpIEFQSQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1NjUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBv
c2l0aW5nVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAKaW5kZXggZjg3OWQwMWQwNGJjODU1MzYy
YmRjYzNmNDk4MThmYWMyNjA5MWZmNS4uZjhjYmM1YTg4MzNmZjRmYmNlZWMyYmRiY2E2NjkzODUx
Njg4YWFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuY3BwCkBA
IC03NSw3ICs3NSw4IEBAIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6On5MYXllckNvbXBvc2l0aW5n
VGhyZWFkKCkKIHsKICAgICBBU1NFUlQoaXNDb21wb3NpdGluZ1RocmVhZCgpKTsKIAotICAgIG1f
dGlsZXItPmxheWVyQ29tcG9zaXRpbmdUaHJlYWREZXN0cm95ZWQoKTsKKyAgICBpZiAobV90aWxl
cikKKyAgICAgICAgbV90aWxlci0+bGF5ZXJDb21wb3NpdGluZ1RocmVhZERlc3Ryb3llZCgpOwog
CiAgICAgQVNTRVJUKCFzdXBlcmxheWVyKCkpOwogCkBAIC0xMDYsNyArMTA3LDggQEAgdm9pZCBM
YXllckNvbXBvc2l0aW5nVGhyZWFkOjpkZWxldGVUZXh0dXJlcygpCiB7CiAgICAgcmVsZWFzZVRl
eHR1cmVSZXNvdXJjZXMoKTsKIAotICAgIG1fdGlsZXItPmRlbGV0ZVRleHR1cmVzKCk7CisgICAg
aWYgKG1fdGlsZXIpCisgICAgICAgIG1fdGlsZXItPmRlbGV0ZVRleHR1cmVzKCk7CiB9CiAKIHZv
aWQgTGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6c2V0RHJhd1RyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgbWF0cml4KQpAQCAtMjU2LDcgKzI1OCwxNSBAQCB2b2lkIExheWVyQ29t
cG9zaXRpbmdUaHJlYWQ6OmRyYXdUZXh0dXJlcyhpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRl
eENvb3JkTG9jYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV90aWxlci0+ZHJhd1Rl
eHR1cmVzKHRoaXMsIHBvc2l0aW9uTG9jYXRpb24sIHRleENvb3JkTG9jYXRpb24pOworICAgIGlm
IChtX2xheWVyVHlwZSA9PSBDdXN0b21MYXllcikgeworICAgICAgICAvLyBDdXN0b20gbGF5ZXJz
IGRvbid0IGhhdmUgYSBMYXllclRpbGVyLCBzbyB0aGV5IGVpdGhlciBoYXZlIHRvIHNldAorICAg
ICAgICAvLyBtX3RleElEIG9yIGltcGxlbWVudCBkcmF3Q3VzdG9tLgorICAgICAgICBkcmF3Q3Vz
dG9tKHBvc2l0aW9uTG9jYXRpb24sIHRleENvb3JkTG9jYXRpb24pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKG1fdGlsZXIpCisgICAgICAgIG1fdGlsZXItPmRyYXdUZXh0dXJl
cyh0aGlzLCBwb3NpdGlvbkxvY2F0aW9uLCB0ZXhDb29yZExvY2F0aW9uKTsKIH0KIAogdm9pZCBM
YXllckNvbXBvc2l0aW5nVGhyZWFkOjpkcmF3U3VyZmFjZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgZHJhd1RyYW5zZm9ybSwgTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbWFzaywgaW50IHBv
c2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKQpAQCAtMjk1LDcgKzMwNSw4IEBA
IHZvaWQgTGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6ZHJhd01pc3NpbmdUZXh0dXJlcyhpbnQgcG9z
aXRpb25Mb2NhdGlvbiwgaW50IHRleENvCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAg
bV90aWxlci0+ZHJhd01pc3NpbmdUZXh0dXJlcyh0aGlzLCBwb3NpdGlvbkxvY2F0aW9uLCB0ZXhD
b29yZExvY2F0aW9uKTsKKyAgICBpZiAobV90aWxlcikKKyAgICAgICAgbV90aWxlci0+ZHJhd01p
c3NpbmdUZXh0dXJlcyh0aGlzLCBwb3NpdGlvbkxvY2F0aW9uLCB0ZXhDb29yZExvY2F0aW9uKTsK
IH0KIAogdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpyZWxlYXNlVGV4dHVyZVJlc291cmNl
cygpCkBAIC00MTgsNyArNDI5LDggQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjp1cGRh
dGVUZXh0dXJlQ29udGVudHNJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0g
ICAgbV90aWxlci0+dXBsb2FkVGV4dHVyZXNJZk5lZWRlZCgpOworICAgIGlmIChtX3RpbGVyKQor
ICAgICAgICBtX3RpbGVyLT51cGxvYWRUZXh0dXJlc0lmTmVlZGVkKCk7CiB9CiAKIHZvaWQgTGF5
ZXJDb21wb3NpdGluZ1RocmVhZDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCkBAIC00MzYsNyAr
NDQ4LDggQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpzZXRWaXNpYmxlKGJvb2wgdmlz
aWJsZSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSAgICBtX3RpbGVyLT5sYXllclZpc2li
aWxpdHlDaGFuZ2VkKHZpc2libGUpOworICAgIGlmIChtX3RpbGVyKQorICAgICAgICBtX3RpbGVy
LT5sYXllclZpc2liaWxpdHlDaGFuZ2VkKHZpc2libGUpOwogfQogCiB2b2lkIExheWVyQ29tcG9z
aXRpbmdUaHJlYWQ6OnNldE5lZWRzQ29tbWl0KCkKQEAgLTQ0Nyw2ICs0NjAsOSBAQCB2b2lkIExh
eWVyQ29tcG9zaXRpbmdUaHJlYWQ6OnNldE5lZWRzQ29tbWl0KCkKIAogdm9pZCBMYXllckNvbXBv
c2l0aW5nVGhyZWFkOjpzY2hlZHVsZUNvbW1pdCgpCiB7CisgICAgaWYgKCFtX3RpbGVyKQorICAg
ICAgICByZXR1cm47CisKICAgICBpZiAoIWlzV2ViS2l0VGhyZWFkKCkpIHsKICAgICAgICAgaWYg
KG1fY29tbWl0U2NoZWR1bGVkKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5n
VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xh
eWVyQ29tcG9zaXRpbmdUaHJlYWQuaAppbmRleCBiODQ3MDA5NGYyNDRjZDAwNGVlMjBkODk0Mzk0
ZTI5ZTg0NTg3NGNkLi5jYTNmZWU5YmZkNWRhOWM5ZjgwOGVmNDZiNGFiMDNkOTQ4YjQ4OTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xh
eWVyQ29tcG9zaXRpbmdUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuaApAQCAtMzYsNiArMzYsNyBA
QAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1ZGUgIkZsb2F0UXVh
ZC5oIgorI2luY2x1ZGUgIkxheWVyQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiTGF5ZXJEYXRhLmgi
CiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlclN1cmZhY2UuaCIKICNpbmNsdWRlICJMYXllclRpbGVy
LmgiCkBAIC0xMzksOSArMTQwLDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzVmlzaWJsZUhv
bGVQdW5jaFJlY3QoKSBjb25zdDsKIAorICAgIHZvaWQgYWRkQW5pbWF0aW9uKExheWVyQW5pbWF0
aW9uKiBhbmltYXRpb24pIHsgbV9ydW5uaW5nQW5pbWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsg
fQorICAgIHZvaWQgc2V0UnVubmluZ0FuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxMYXll
ckFuaW1hdGlvbj4gPiYgYW5pbWF0aW9ucykgeyBtX3J1bm5pbmdBbmltYXRpb25zID0gYW5pbWF0
aW9uczsgfQorICAgIHZvaWQgc2V0U3VzcGVuZGVkQW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVm
UHRyPExheWVyQW5pbWF0aW9uPiA+JiBhbmltYXRpb25zKSB7IG1fc3VzcGVuZGVkQW5pbWF0aW9u
cyA9IGFuaW1hdGlvbnM7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkxheWVyQ29tcG9z
aXRpbmdUaHJlYWQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBkcmF3Q3VzdG9tKGludCBwb3NpdGlv
bkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbikgeyB9CisKIHByaXZhdGU6CiAgICAgTGF5
ZXJDb21wb3NpdGluZ1RocmVhZChMYXllclR5cGUsIFBhc3NSZWZQdHI8TGF5ZXJUaWxlcj4pOwog
CkBAIC0xODMsNiArMTkwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tbWl0U2NoZWR1bGVk
OwogCiAgICAgUmVmUHRyPExheWVyVGlsZXI+IG1fdGlsZXI7CisgICAgVmVjdG9yPFJlZlB0cjxM
YXllckFuaW1hdGlvbj4gPiBtX3J1bm5pbmdBbmltYXRpb25zOworICAgIFZlY3RvcjxSZWZQdHI8
TGF5ZXJBbmltYXRpb24+ID4gbV9zdXNwZW5kZWRBbmltYXRpb25zOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllckRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmgKaW5kZXggMmE1NWJjZmU1OWViODNiZTZkN2QyMTVm
NGQyYTdiYTQ0OWU2YzFiNC4uOGViNGM1ZmIyNjQ2ZDUxM2M3MWQzNzZjODFkNmFiYTA3YjI0YTdj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9MYXllckRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L0xheWVyRGF0YS5oCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiRmxvYXRQb2lu
dC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNs
dWRlICJMYXllckFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpA
QCAtNTQsNyArNTMsNyBAQCBjbGFzcyBNZWRpYVBsYXllcjsKIAogY2xhc3MgTGF5ZXJEYXRhIHsK
IHB1YmxpYzoKLSAgICBlbnVtIExheWVyVHlwZSB7IExheWVyLCBUcmFuc2Zvcm1MYXllciwgV2Vi
R0xMYXllciwgQ2FudmFzTGF5ZXIgfTsKKyAgICBlbnVtIExheWVyVHlwZSB7IExheWVyLCBUcmFu
c2Zvcm1MYXllciwgV2ViR0xMYXllciwgQ2FudmFzTGF5ZXIsIEN1c3RvbUxheWVyIH07CiAgICAg
ZW51bSBGaWx0ZXJUeXBlIHsgTGluZWFyLCBOZWFyZXN0LCBUcmlsaW5lYXIsIExhbmN6b3MgfTsK
ICAgICBlbnVtIExheWVyUHJvZ3JhbVNoYWRlciB7IExheWVyUHJvZ3JhbVNoYWRlclJHQkEgPSAw
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5ZXJQcm9ncmFtU2hhZGVyQkdSQSwK
QEAgLTE5MSw4ICsxOTAsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBwdGhyZWFkX211dGV4X3QqIG1f
ZnJvbnRCdWZmZXJMb2NrOwogCi0gICAgVmVjdG9yPFJlZlB0cjxMYXllckFuaW1hdGlvbj4gPiBt
X3J1bm5pbmdBbmltYXRpb25zOwotICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJBbmltYXRpb24+ID4g
bV9zdXNwZW5kZWRBbmltYXRpb25zOwogICAgIGRvdWJsZSBtX3N1c3BlbmRUaW1lOwogCiAgICAg
dW5zaWduZWQgbV9kb3VibGVTaWRlZCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQu
Y3BwCmluZGV4IDZjNTQzODI2N2Q2MDVjZjg3NGFlZmE0ODc5OWE5NTY4YjViM2RkMzQuLjhiYTUy
NGJmZTQ2NzZiN2NiZmRmY2E4M2M5NjY0MTE2OGUwM2Q0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJX
ZWJLaXRUaHJlYWQuY3BwCkBAIC02MywxMSArNjMsMjUgQEAgTGF5ZXJXZWJLaXRUaHJlYWQ6Okxh
eWVyV2ViS2l0VGhyZWFkKExheWVyVHlwZSB0eXBlLCBHcmFwaGljc0xheWVyQmxhY2tCZXJyeSog
b3cKICAgICAsIG1fc2NhbGUoMS4wKQogICAgICwgbV9pc0RyYXdhYmxlKGZhbHNlKQogICAgICwg
bV9pc01hc2soZmFsc2UpCisgICAgLCBtX2FuaW1hdGlvbnNDaGFuZ2VkKGZhbHNlKQogewotICAg
IG1fdGlsZXIgPSBMYXllclRpbGVyOjpjcmVhdGUodGhpcyk7CisgICAgaWYgKHR5cGUgPT0gTGF5
ZXIpCisgICAgICAgIG1fdGlsZXIgPSBMYXllclRpbGVyOjpjcmVhdGUodGhpcyk7CiAgICAgbV9s
YXllckNvbXBvc2l0aW5nVGhyZWFkID0gTGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6Y3JlYXRlKHR5
cGUsIG1fdGlsZXIpOwogfQogCitMYXllcldlYktpdFRocmVhZDo6TGF5ZXJXZWJLaXRUaHJlYWQo
UGFzc1JlZlB0cjxMYXllckNvbXBvc2l0aW5nVGhyZWFkPiBsYXllckNvbXBvc2l0aW5nVGhyZWFk
LCBHcmFwaGljc0xheWVyQmxhY2tCZXJyeSogb3duZXIpCisgICAgOiBMYXllckRhdGEoQ3VzdG9t
TGF5ZXIpCisgICAgLCBtX293bmVyKG93bmVyKQorICAgICwgbV9zdXBlcmxheWVyKDApCisgICAg
LCBtX2NvbnRlbnRzKDApCisgICAgLCBtX3NjYWxlKDEuMCkKKyAgICAsIG1faXNEcmF3YWJsZShm
YWxzZSkKKyAgICAsIG1faXNNYXNrKGZhbHNlKQoreworICAgIG1fbGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZCA9IGxheWVyQ29tcG9zaXRpbmdUaHJlYWQ7Cit9CisKIExheWVyV2ViS2l0VGhyZWFkOjp+
TGF5ZXJXZWJLaXRUaHJlYWQoKQogewogICAgIG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZC0+Y2xl
YXJBbmltYXRpb25zKCk7CkBAIC03NSw3ICs4OSw4IEBAIExheWVyV2ViS2l0VGhyZWFkOjp+TGF5
ZXJXZWJLaXRUaHJlYWQoKQogICAgIGlmIChtX2Zyb250QnVmZmVyTG9jaykKICAgICAgICAgcHRo
cmVhZF9tdXRleF9kZXN0cm95KG1fZnJvbnRCdWZmZXJMb2NrKTsKIAotICAgIG1fdGlsZXItPmxh
eWVyV2ViS2l0VGhyZWFkRGVzdHJveWVkKCk7CisgICAgaWYgKG1fdGlsZXIpCisgICAgICAgIG1f
dGlsZXItPmxheWVyV2ViS2l0VGhyZWFkRGVzdHJveWVkKCk7CiAKICAgICAvLyBPdXIgc3VwZXJs
YXllciBzaG91bGQgYmUgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB1cyBzbyB0aGVyZSBzaG91bGQg
YmUgbm8KICAgICAvLyB3YXkgZm9yIHVzIHRvIGJlIGRlc3Ryb3llZCB3aGlsZSB3ZSBzdGlsbCBo
YXZlIGEgc3VwZXJsYXllci4KQEAgLTE2Nyw3ICsxODIsOCBAQCB2b2lkIExheWVyV2ViS2l0VGhy
ZWFkOjpjcmVhdGVGcm9udEJ1ZmZlckxvY2soKQogCiB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjp1
cGRhdGVUZXh0dXJlQ29udGVudHNJZk5lZWRlZCgpCiB7Ci0gICAgbV90aWxlci0+dXBkYXRlVGV4
dHVyZUNvbnRlbnRzSWZOZWVkZWQobV9pc01hc2sgPyAxLjAgOiBjb250ZW50c1NjYWxlKCkpOwor
ICAgIGlmIChtX3RpbGVyKQorICAgICAgICBtX3RpbGVyLT51cGRhdGVUZXh0dXJlQ29udGVudHNJ
Zk5lZWRlZChtX2lzTWFzayA/IDEuMCA6IGNvbnRlbnRzU2NhbGUoKSk7CiB9CiAKIHZvaWQgTGF5
ZXJXZWJLaXRUaHJlYWQ6OnNldENvbnRlbnRzKEltYWdlKiBjb250ZW50cykKQEAgLTIyNiw2ICsy
NDIsNyBAQCB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpzdGFydEFuaW1hdGlvbnMoZG91YmxlIHRp
bWUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3J1bm5pbmdBbmltYXRpb25zLnNp
emUoKTsgKytpKSB7CiAgICAgICAgIGlmICghbV9ydW5uaW5nQW5pbWF0aW9uc1tpXS0+c3RhcnRU
aW1lKCkpIHsKKyAgICAgICAgICAgIG1fYW5pbWF0aW9uc0NoYW5nZWQgPSB0cnVlOwogICAgICAg
ICAgICAgbV9ydW5uaW5nQW5pbWF0aW9uc1tpXS0+c2V0U3RhcnRUaW1lKHRpbWUpOwogICAgICAg
ICAgICAgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZCh0aW1lKTsKICAgICAgICAgfQpAQCAtMjc4LDkg
KzI5NSwxNSBAQCB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpjb21taXRPbkNvbXBvc2l0aW5nVGhy
ZWFkKCkKICAgICBtX3Bvc2l0aW9uICs9IG1fYWJzb2x1dGVPZmZzZXQ7CiAgICAgLy8gQ29weSB0
aGUgYmFzZSB2YXJpYWJsZXMgZnJvbSB0aGlzIG9iamVjdCBpbnRvIG1fbGF5ZXJDb21wb3NpdGlu
Z1RocmVhZAogICAgIHJlcGxpY2F0ZShtX2xheWVyQ29tcG9zaXRpbmdUaHJlYWQuZ2V0KCkpOwor
ICAgIGlmIChtX2FuaW1hdGlvbnNDaGFuZ2VkKSB7CisgICAgICAgIG1fbGF5ZXJDb21wb3NpdGlu
Z1RocmVhZC0+c2V0UnVubmluZ0FuaW1hdGlvbnMobV9ydW5uaW5nQW5pbWF0aW9ucyk7CisgICAg
ICAgIG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZC0+c2V0U3VzcGVuZGVkQW5pbWF0aW9ucyhtX3N1
c3BlbmRlZEFuaW1hdGlvbnMpOworICAgICAgICBtX2FuaW1hdGlvbnNDaGFuZ2VkID0gZmFsc2U7
CisgICAgfQogICAgIG1fcG9zaXRpb24gPSBvbGRQb3NpdGlvbjsKICAgICB1cGRhdGVMYXllckhp
ZXJhcmNoeSgpOwotICAgIG1fdGlsZXItPmNvbW1pdFBlbmRpbmdUZXh0dXJlVXBsb2FkcygpOwor
ICAgIGlmIChtX3RpbGVyKQorICAgICAgICBtX3RpbGVyLT5jb21taXRQZW5kaW5nVGV4dHVyZVVw
bG9hZHMoKTsKIAogICAgIHNpemVfdCBsaXN0U2l6ZSA9IG1fc3VibGF5ZXJzLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyBpKyspCkBAIC00MjQsMTMgKzQ0Nywx
NSBAQCB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpzZXRTdWJsYXllcnMoY29uc3QgVmVjdG9yPFJl
ZlB0cjxMYXllcldlYktpdFRocmVhZD4gPiYgcwogCiB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpz
ZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0gICAg
bV90aWxlci0+c2V0TmVlZHNEaXNwbGF5KGRpcnR5UmVjdCk7CisgICAgaWYgKG1fdGlsZXIpCisg
ICAgICAgIG1fdGlsZXItPnNldE5lZWRzRGlzcGxheShkaXJ0eVJlY3QpOwogICAgIHNldE5lZWRz
Q29tbWl0KCk7IC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgd2l0aCBhIG1vcmUgdGFyZ2V0ZWQgbWVz
c2FnZSBmb3IgZGlydHkgcmVjdCBoYW5kbGluZyB3aXRoIHBsdWdpbiBjb250ZW50PwogfQogCiB2
b2lkIExheWVyV2ViS2l0VGhyZWFkOjpzZXROZWVkc0Rpc3BsYXkoKQogewotICAgIG1fdGlsZXIt
PnNldE5lZWRzRGlzcGxheSgpOworICAgIGlmIChtX3RpbGVyKQorICAgICAgICBtX3RpbGVyLT5z
ZXROZWVkc0Rpc3BsYXkoKTsKICAgICBzZXROZWVkc0NvbW1pdCgpOyAvLyBGSVhNRTogUmVwbGFj
ZSB0aGlzIHdpdGggYSBtb3JlIHRhcmdldGVkIG1lc3NhZ2UgZm9yIGRpcnR5IHJlY3QgaGFuZGxp
bmcgd2l0aCBwbHVnaW4gY29udGVudD8KIH0KIApAQCAtNDQ4LDEwICs0NzMsMjQgQEAgdm9pZCBM
YXllcldlYktpdFRocmVhZDo6dXBkYXRlTGF5ZXJIaWVyYXJjaHkoKQogdm9pZCBMYXllcldlYktp
dFRocmVhZDo6c2V0SXNNYXNrKGJvb2wgaXNNYXNrKQogewogICAgIG1faXNNYXNrID0gaXNNYXNr
OwotICAgIGlmIChpc01hc2spCisgICAgaWYgKGlzTWFzayAmJiBtX3RpbGVyKQogICAgICAgICBt
X3RpbGVyLT5kaXNhYmxlVGlsaW5nKHRydWUpOwogfQogCit2b2lkIExheWVyV2ViS2l0VGhyZWFk
OjpzZXRSdW5uaW5nQW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQW5pbWF0aW9u
PiA+JiBhbmltYXRpb25zKQoreworICAgIG1fcnVubmluZ0FuaW1hdGlvbnMgPSBhbmltYXRpb25z
OworICAgIG1fYW5pbWF0aW9uc0NoYW5nZWQgPSB0cnVlOworICAgIHNldE5lZWRzQ29tbWl0KCk7
Cit9CisKK3ZvaWQgTGF5ZXJXZWJLaXRUaHJlYWQ6OnNldFN1c3BlbmRlZEFuaW1hdGlvbnMoY29u
c3QgVmVjdG9yPFJlZlB0cjxMYXllckFuaW1hdGlvbj4gPiYgYW5pbWF0aW9ucykKK3sKKyAgICBt
X3N1c3BlbmRlZEFuaW1hdGlvbnMgPSBhbmltYXRpb25zOworICAgIG1fYW5pbWF0aW9uc0NoYW5n
ZWQgPSB0cnVlOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuaApp
bmRleCA4NDhjMTg0YTY4ZTlhMGRkODJkOWEyMjNiNjU5MDEwYTYxNWRlM2ExLi45YTYzNDlmZjcy
YThlOGMxYTFhMDJiOTBhYTIwODVjOGEzOTBmMGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRo
cmVhZC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckJsYWNrQmVycnkuaCIKKyNpbmNsdWRlICJMYXll
ckFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkxheWVyRGF0YS5oIgogI2luY2x1ZGUgIkxheWVyVGls
ZXIuaCIKIApAQCAtMTQyLDEyICsxNDMsMTUgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TmVlZHND
b21taXQoKTsKICAgICB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoZG91YmxlIHRpbWUpOwog
Ci0gICAgdm9pZCBzZXRSdW5uaW5nQW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8UmVmUHRyPExheWVy
QW5pbWF0aW9uPiA+JiBhbmltYXRpb25zKSB7IG1fcnVubmluZ0FuaW1hdGlvbnMgPSBhbmltYXRp
b25zOyBzZXROZWVkc0NvbW1pdCgpOyB9Ci0gICAgdm9pZCBzZXRTdXNwZW5kZWRBbmltYXRpb25z
KGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJBbmltYXRpb24+ID4mIGFuaW1hdGlvbnMpIHsgbV9z
dXNwZW5kZWRBbmltYXRpb25zID0gYW5pbWF0aW9uczsgc2V0TmVlZHNDb21taXQoKTsgfQorICAg
IHZvaWQgc2V0UnVubmluZ0FuaW1hdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxMYXllckFuaW1h
dGlvbj4gPiYpOworICAgIHZvaWQgc2V0U3VzcGVuZGVkQW5pbWF0aW9ucyhjb25zdCBWZWN0b3I8
UmVmUHRyPExheWVyQW5pbWF0aW9uPiA+Jik7CiAKIHByb3RlY3RlZDoKICAgICBMYXllcldlYktp
dFRocmVhZChMYXllclR5cGUsIEdyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5KiBvd25lcik7CiAKKyAg
ICAvLyBDcmVhdGUgYSBjdXN0b20gTGF5ZXJ7V2ViS2l0VGhyZWFkLCBDb21wb3NpdGluZ1RocmVh
ZH0gcGFpciwgdXNlZCB3aGVuIHlvdSBuZWVkIHRvIHN1YmNsYXNzIGJvdGguCisgICAgTGF5ZXJX
ZWJLaXRUaHJlYWQoUGFzc1JlZlB0cjxMYXllckNvbXBvc2l0aW5nVGhyZWFkPiwgR3JhcGhpY3NM
YXllckJsYWNrQmVycnkqIG93bmVyKTsKKwogICAgIHZvaWQgc2V0TmVlZHNUZXh0dXJlKGJvb2wg
bmVlZHNUZXh0dXJlKSB7IG1fbmVlZHNUZXh0dXJlID0gbmVlZHNUZXh0dXJlOyB9CiAgICAgdm9p
ZCBzZXRMYXllclByb2dyYW1TaGFkZXIoTGF5ZXJEYXRhOjpMYXllclByb2dyYW1TaGFkZXIgc2hh
ZGVyKSB7IG1fbGF5ZXJQcm9ncmFtU2hhZGVyID0gc2hhZGVyOyB9CiAgICAgdm9pZCBjcmVhdGVG
cm9udEJ1ZmZlckxvY2soKTsKQEAgLTE3OCw2ICsxODIsOSBAQCBwcml2YXRlOgogCiAgICAgR3Jh
cGhpY3NMYXllckJsYWNrQmVycnkqIG1fb3duZXI7CiAKKyAgICBWZWN0b3I8UmVmUHRyPExheWVy
QW5pbWF0aW9uPiA+IG1fcnVubmluZ0FuaW1hdGlvbnM7CisgICAgVmVjdG9yPFJlZlB0cjxMYXll
ckFuaW1hdGlvbj4gPiBtX3N1c3BlbmRlZEFuaW1hdGlvbnM7CisKICAgICBWZWN0b3I8UmVmUHRy
PExheWVyV2ViS2l0VGhyZWFkPiA+IG1fc3VibGF5ZXJzOwogICAgIExheWVyV2ViS2l0VGhyZWFk
KiBtX3N1cGVybGF5ZXI7CiAgICAgUmVmUHRyPExheWVyV2ViS2l0VGhyZWFkPiBtX21hc2tMYXll
cjsKQEAgLTE4OSw4ICsxOTYsOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxMYXllclRpbGVyPiBt
X3RpbGVyOwogICAgIEZsb2F0U2l6ZSBtX2Fic29sdXRlT2Zmc2V0OwogICAgIGRvdWJsZSBtX3Nj
YWxlOyAvLyBTY2FsZSBhcHBsaWVzIG9ubHkgdG8gY29udGVudCBsYXllcnMKLSAgICBib29sIG1f
aXNEcmF3YWJsZTsKLSAgICBib29sIG1faXNNYXNrOworICAgIHVuc2lnbmVkIG1faXNEcmF3YWJs
ZSA6IDE7CisgICAgdW5zaWduZWQgbV9pc01hc2sgOiAxOworICAgIHVuc2lnbmVkIG1fYW5pbWF0
aW9uc0NoYW5nZWQgOiAxOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZS5jcHAKaW5kZXggNGRhNzFlN2U3YzBjZjBkNTI2YmMyNWRlMDkxZWM3YTZkN2UyNWQ5Mi4u
NmQwMmEwOTJmNWE2NGMyODQ2OWM3YTI3MDdkNGRhZmYzNGQ1YjQ3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01NTgyLDcgKzU1ODIsNyBAQCB2b2lkIFdl
YlBhZ2VQcml2YXRlOjpkcmF3TGF5ZXJzT25Db21taXQoKQogCiB2b2lkIFdlYlBhZ2VQcml2YXRl
OjpzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lTGF5ZXJzIHx8
ICFtX2ZyYW1lTGF5ZXJzLT5oYXNMYXllcigpKQorICAgIGlmICghKG1fZnJhbWVMYXllcnMgJiYg
bV9mcmFtZUxheWVycy0+aGFzTGF5ZXIoKSkgJiYgIW1fb3ZlcmxheUxheWVyKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX25lZWRzQ29tbWl0ID0gdHJ1ZTsKQEAgLTU2MTgsNiArNTYxOCwxNiBA
QCBMYXllclJlbmRlcmluZ1Jlc3VsdHMgV2ViUGFnZVByaXZhdGU6Omxhc3RDb21wb3NpdGluZ1Jl
c3VsdHMoKSBjb25zdAogICAgIHJldHVybiBMYXllclJlbmRlcmluZ1Jlc3VsdHMoKTsKIH0KIAor
R3JhcGhpY3NMYXllciogV2ViUGFnZVByaXZhdGU6Om92ZXJsYXlMYXllcigpCit7CisgICAgLy8g
VGhlIG92ZXJsYXkgbGF5ZXIgaGFzIG5vIEdyYXBoaWNzTGF5ZXJDbGllbnQsIGl0J3MganVzdCBh
IGNvbnRhaW5lcgorICAgIC8vIGZvciB2YXJpb3VzIG92ZXJsYXlzLgorICAgIGlmICghbV9vdmVy
bGF5TGF5ZXIpCisgICAgICAgIG1fb3ZlcmxheUxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KDApOworCisgICAgcmV0dXJuIG1fb3ZlcmxheUxheWVyLmdldCgpOworfQorCiB2b2lkIFdlYlBh
Z2VQcml2YXRlOjpzZXRDb21wb3NpdG9yKFBhc3NSZWZQdHI8V2ViUGFnZUNvbXBvc2l0b3JQcml2
YXRlPiBjb21wb3NpdG9yKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTsKQEAgLTU2NDUsMTYgKzU2NTUsMzQgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6Y29tbWl0
Um9vdExheWVyKGNvbnN0IEludFJlY3QmIGxheW91dFJlY3RGb3JDb21wb3NpdGluZywKICAgICAg
ICAgICAgIFdURl9QUkVUVFlfRlVOQ1RJT04sIG1fY29tcG9zaXRvci5nZXQoKSk7CiAjZW5kaWYK
IAotICAgIGlmICghbV9mcmFtZUxheWVycyB8fCAhbV9jb21wb3NpdG9yKQorICAgIGlmICghbV9j
b21wb3NpdG9yKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9mcmFtZUxheWVycy0+cm9v
dExheWVyKCkgJiYgbV9mcmFtZUxheWVycy0+cm9vdExheWVyKCktPmxheWVyQ29tcG9zaXRpbmdU
aHJlYWQoKSAhPSBtX2NvbXBvc2l0b3ItPnJvb3RMYXllcigpKQotICAgICAgICBtX2NvbXBvc2l0
b3ItPnNldFJvb3RMYXllcihtX2ZyYW1lTGF5ZXJzLT5yb290TGF5ZXIoKS0+bGF5ZXJDb21wb3Np
dGluZ1RocmVhZCgpKTsKKyAgICAvLyBGcmFtZSBsYXllcnMKKyAgICBMYXllcldlYktpdFRocmVh
ZCogcm9vdExheWVyID0gMDsKKyAgICBpZiAobV9mcmFtZUxheWVycykKKyAgICAgICAgcm9vdExh
eWVyID0gbV9mcmFtZUxheWVycy0+cm9vdExheWVyKCk7CisKKyAgICBpZiAocm9vdExheWVyICYm
IHJvb3RMYXllci0+bGF5ZXJDb21wb3NpdGluZ1RocmVhZCgpICE9IG1fY29tcG9zaXRvci0+cm9v
dExheWVyKCkpCisgICAgICAgIG1fY29tcG9zaXRvci0+c2V0Um9vdExheWVyKHJvb3RMYXllci0+
bGF5ZXJDb21wb3NpdGluZ1RocmVhZCgpKTsKKworICAgIC8vIE92ZXJsYXkgbGF5ZXJzCisgICAg
TGF5ZXJXZWJLaXRUaHJlYWQqIG92ZXJsYXlMYXllciA9IDA7CisgICAgaWYgKG1fb3ZlcmxheUxh
eWVyKQorICAgICAgICBvdmVybGF5TGF5ZXIgPSBtX292ZXJsYXlMYXllci0+cGxhdGZvcm1MYXll
cigpOworCisgICAgaWYgKG92ZXJsYXlMYXllciAmJiBvdmVybGF5TGF5ZXItPmxheWVyQ29tcG9z
aXRpbmdUaHJlYWQoKSAhPSBtX2NvbXBvc2l0b3ItPm92ZXJsYXlMYXllcigpKQorICAgICAgICBt
X2NvbXBvc2l0b3ItPnNldE92ZXJsYXlMYXllcihvdmVybGF5TGF5ZXItPmxheWVyQ29tcG9zaXRp
bmdUaHJlYWQoKSk7CiAKICAgICBtX2NvbXBvc2l0b3ItPnNldExheW91dFJlY3RGb3JDb21wb3Np
dGluZyhsYXlvdXRSZWN0Rm9yQ29tcG9zaXRpbmcpOwogICAgIG1fY29tcG9zaXRvci0+c2V0Q29u
dGVudHNTaXplRm9yQ29tcG9zaXRpbmcoY29udGVudHNTaXplRm9yQ29tcG9zaXRpbmcpOwogICAg
IG1fY29tcG9zaXRvci0+c2V0RHJhd3NSb290TGF5ZXIoZHJhd3NSb290TGF5ZXIpOwotICAgIG1f
Y29tcG9zaXRvci0+Y29tbWl0KG1fZnJhbWVMYXllcnMtPnJvb3RMYXllcigpKTsKKworICAgIGlm
IChyb290TGF5ZXIpCisgICAgICAgIHJvb3RMYXllci0+Y29tbWl0T25Db21wb3NpdGluZ1RocmVh
ZCgpOworCisgICAgaWYgKG92ZXJsYXlMYXllcikKKyAgICAgICAgb3ZlcmxheUxheWVyLT5jb21t
aXRPbkNvbXBvc2l0aW5nVGhyZWFkKCk7CiB9CiAKIGJvb2wgV2ViUGFnZVByaXZhdGU6OmNvbW1p
dFJvb3RMYXllcklmTmVlZGVkKCkKQEAgLTU2NzUsNyArNTcwMyw3IEBAIGJvb2wgV2ViUGFnZVBy
aXZhdGU6OmNvbW1pdFJvb3RMYXllcklmTmVlZGVkKCkKICAgICBpZiAoIW1fbmVlZHNDb21taXQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9mcmFtZUxheWVycyB8fCAhbV9m
cmFtZUxheWVycy0+aGFzTGF5ZXIoKSkKKyAgICBpZiAoIShtX2ZyYW1lTGF5ZXJzICYmIG1fZnJh
bWVMYXllcnMtPmhhc0xheWVyKCkpICYmICFtX292ZXJsYXlMYXllcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9tYWluRnJhbWUtPnZpZXcoKTsKQEAg
LTU3MDAsOCArNTcyOCwxMiBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjpjb21taXRSb290TGF5ZXJJ
Zk5lZWRlZCgpCiAgICAgaWYgKG1fcm9vdExheWVyQ29tbWl0VGltZXItPmlzQWN0aXZlKCkpCiAg
ICAgICAgIG1fcm9vdExheWVyQ29tbWl0VGltZXItPnN0b3AoKTsKIAotICAgIG1fZnJhbWVMYXll
cnMtPmNvbW1pdE9uV2ViS2l0VGhyZWFkKGN1cnJlbnRTY2FsZSgpKTsKKyAgICBkb3VibGUgc2Nh
bGUgPSBjdXJyZW50U2NhbGUoKTsKKyAgICBpZiAobV9mcmFtZUxheWVycyAmJiBtX2ZyYW1lTGF5
ZXJzLT5oYXNMYXllcigpKQorICAgICAgICBtX2ZyYW1lTGF5ZXJzLT5jb21taXRPbldlYktpdFRo
cmVhZChzY2FsZSk7CiAgICAgdXBkYXRlRGVsZWdhdGVkT3ZlcmxheXMoKTsKKyAgICBpZiAobV9v
dmVybGF5TGF5ZXIpCisgICAgICAgIG1fb3ZlcmxheUxheWVyLT5wbGF0Zm9ybUxheWVyKCktPmNv
bW1pdE9uV2ViS2l0VGhyZWFkKHNjYWxlKTsKIAogICAgIC8vIFN0YXNoIHRoZSB2aXNpYmxlIGNv
bnRlbnQgcmVjdCBhY2NvcmRpbmcgdG8gd2Via2l0IHRocmVhZAogICAgIC8vIFRoaXMgaXMgdGhl
IHJlY3RhbmdsZSB1c2VkIHRvIGxheW91dCBmaXhlZCBwb3NpdGlvbmVkIGVsZW1lbnRzLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDb21wb3NpdG9yLmNwcApp
bmRleCBhMmMzMDA2ZDVhMzk1YjI5ZjM4MmE1ZWZmYjNjYjY1YTBhNThhMWJmLi5kZWRmN2NhMGMx
MTIzZDhhYWFjZTQwZmY4M2E1N2YzMzI1ZDJkYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDb21wb3NpdG9yLmNwcApAQCAtNzgsNiArNzgsMTEgQEAg
dm9pZCBXZWJQYWdlQ29tcG9zaXRvclByaXZhdGU6OnNldFJvb3RMYXllcihMYXllckNvbXBvc2l0
aW5nVGhyZWFkKiByb290TGF5ZXIpCiAgICAgbV9yb290TGF5ZXIgPSByb290TGF5ZXI7CiB9CiAK
K3ZvaWQgV2ViUGFnZUNvbXBvc2l0b3JQcml2YXRlOjpzZXRPdmVybGF5TGF5ZXIoTGF5ZXJDb21w
b3NpdGluZ1RocmVhZCogb3ZlcmxheUxheWVyKQoreworICAgIG1fb3ZlcmxheUxheWVyID0gb3Zl
cmxheUxheWVyOworfQorCiB2b2lkIFdlYlBhZ2VDb21wb3NpdG9yUHJpdmF0ZTo6cHJlcGFyZUZy
YW1lKGRvdWJsZSBhbmltYXRpb25UaW1lKQogewogICAgIGlmICghbV9sYXllclJlbmRlcmVyKQpA
QCAtODgsNiArOTMsOCBAQCB2b2lkIFdlYlBhZ2VDb21wb3NpdG9yUHJpdmF0ZTo6cHJlcGFyZUZy
YW1lKGRvdWJsZSBhbmltYXRpb25UaW1lKQogICAgIGFuaW1hdGlvblRpbWUgPSBjdXJyZW50VGlt
ZSgpOwogICAgIGlmIChtX3Jvb3RMYXllcikKICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5wcmVw
YXJlRnJhbWUoYW5pbWF0aW9uVGltZSwgbV9yb290TGF5ZXIuZ2V0KCkpOworICAgIGlmIChtX292
ZXJsYXlMYXllcikKKyAgICAgICAgbV9sYXllclJlbmRlcmVyLT5wcmVwYXJlRnJhbWUoYW5pbWF0
aW9uVGltZSwgbV9vdmVybGF5TGF5ZXIuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VDb21wb3Np
dG9yUHJpdmF0ZTo6cmVuZGVyKGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtSW4sIGNv
bnN0IEZsb2F0UmVjdCYgdHJhbnNmb3JtZWRDb250ZW50cywgY29uc3QgRmxvYXRSZWN0JiAvKnZp
ZXdwb3J0Ki8pCkBAIC0xMjAsNiArMTI3LDggQEAgdm9pZCBXZWJQYWdlQ29tcG9zaXRvclByaXZh
dGU6OnJlbmRlcihjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRSZWN0JgogCiAg
ICAgaWYgKG1fcm9vdExheWVyKQogICAgICAgICBtX2xheWVyUmVuZGVyZXItPmNvbXBvc2l0ZUxh
eWVycyh0cmFuc2Zvcm0sIG1fcm9vdExheWVyLmdldCgpKTsKKyAgICBpZiAobV9vdmVybGF5TGF5
ZXIpCisgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+Y29tcG9zaXRlTGF5ZXJzKHRyYW5zZm9ybSwg
bV9vdmVybGF5TGF5ZXIuZ2V0KCkpOwogCiAgICAgbV9sYXN0Q29tcG9zaXRpbmdSZXN1bHRzID0g
bV9sYXllclJlbmRlcmVyLT5sYXN0UmVuZGVyaW5nUmVzdWx0cygpOwogCkBAIC0xNjIsNiArMTcx
LDggQEAgYm9vbCBXZWJQYWdlQ29tcG9zaXRvclByaXZhdGU6OmRyYXdMYXllcnMoY29uc3QgSW50
UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWMKICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2Qo
LWNvbnRlbnRzLngoKSwgLWNvbnRlbnRzLnkoKSwgMCk7CiAgICAgaWYgKG1fcm9vdExheWVyKQog
ICAgICAgICBtX2xheWVyUmVuZGVyZXItPmNvbXBvc2l0ZUxheWVycyh0cmFuc2Zvcm0sIG1fcm9v
dExheWVyLmdldCgpKTsKKyAgICBpZiAobV9vdmVybGF5TGF5ZXIpCisgICAgICAgIG1fbGF5ZXJS
ZW5kZXJlci0+Y29tcG9zaXRlTGF5ZXJzKHRyYW5zZm9ybSwgbV9vdmVybGF5TGF5ZXIuZ2V0KCkp
OwogCiAgICAgbV9sYXN0Q29tcG9zaXRpbmdSZXN1bHRzID0gbV9sYXllclJlbmRlcmVyLT5sYXN0
UmVuZGVyaW5nUmVzdWx0cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2VDb21wb3NpdG9yX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZUNvbXBvc2l0b3JfcC5oCmluZGV4IGUzY2Q4N2Y2YzgxMzc3NmZlNDZlNWU1NjFl
NGY5M2IxN2U3MDQ2MGUuLjNmZDQxM2Q4NDllOWY2ZWY2ZjlmODFkMmI1MjM2NWVkNjJlN2I3NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNvbXBvc2l0
b3JfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNvbXBvc2l0
b3JfcC5oCkBAIC02Nyw2ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpMYXllckNvbXBv
c2l0aW5nVGhyZWFkKiByb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQo
KTsgfQogICAgIHZvaWQgc2V0Um9vdExheWVyKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJl
YWQqKTsKIAorICAgIFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQqIG92ZXJsYXlMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmxheUxheWVyLmdldCgpOyB9CisgICAgdm9pZCBzZXRP
dmVybGF5TGF5ZXIoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVhZCopOworCiAgICAgYm9v
bCBkcmF3c1Jvb3RMYXllcigpIGNvbnN0OwogICAgIHZvaWQgc2V0RHJhd3NSb290TGF5ZXIoYm9v
bCBkcmF3c1Jvb3RMYXllcikgeyBtX2RyYXdzUm9vdExheWVyID0gZHJhd3NSb290TGF5ZXI7IH0K
IApAQCAtOTksNiArMTAyLDcgQEAgcHJpdmF0ZToKICAgICBQbGF0Zm9ybTo6R3JhcGhpY3M6OkdM
RVMyQ29udGV4dCogbV9jb250ZXh0OwogICAgIE93blB0cjxXZWJDb3JlOjpMYXllclJlbmRlcmVy
PiBtX2xheWVyUmVuZGVyZXI7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdU
aHJlYWQ+IG1fcm9vdExheWVyOworICAgIFJlZlB0cjxXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5n
VGhyZWFkPiBtX292ZXJsYXlMYXllcjsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fbGF5b3V0UmVj
dEZvckNvbXBvc2l0aW5nOwogICAgIFdlYkNvcmU6OkludFNpemUgbV9jb250ZW50c1NpemVGb3JD
b21wb3NpdGluZzsKICAgICBXZWJDb3JlOjpMYXllclJlbmRlcmluZ1Jlc3VsdHMgbV9sYXN0Q29t
cG9zaXRpbmdSZXN1bHRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgK
aW5kZXggYzY4OGM2ZGU2NTJjZmFlYWM3N2VkZjJiMDE4NmRiM2YwNDUxMWM4OS4uOWYyMGJlMDJm
YTA2Yjc4NDhmZWRhNzU5YTViNGZjNzllNGJmNzVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC0zNjgsNiArMzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cm9vdExheWVyQ29tbWl0VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJQYWdlUHJpdmF0ZT4q
KTsKICAgICBib29sIGNvbW1pdFJvb3RMYXllcklmTmVlZGVkKCk7CiAgICAgV2ViQ29yZTo6TGF5
ZXJSZW5kZXJpbmdSZXN1bHRzIGxhc3RDb21wb3NpdGluZ1Jlc3VsdHMoKSBjb25zdDsKKyAgICBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiBvdmVybGF5TGF5ZXIoKTsKIAogICAgIC8vIFdlYktpdCB0
aHJlYWQsIHBsdW1iZWQgdGhyb3VnaCBmcm9tIENocm9tZUNsaWVudEJsYWNrQmVycnkuCiAgICAg
dm9pZCBzZXRSb290TGF5ZXJXZWJLaXRUaHJlYWQoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpM
YXllcldlYktpdFRocmVhZCopOwpAQCAtNTE2LDYgKzUxNyw3IEBAIHB1YmxpYzoKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0FjdGl2ZTsKICAgICBPd25QdHI8RnJhbWVMYXllcnM+IG1fZnJhbWVMYXllcnM7IC8vIFdl
YktpdCB0aHJlYWQgb25seS4KKyAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9v
dmVybGF5TGF5ZXI7CiAKICAgICAvLyBDb21wb3NpdGluZyB0aHJlYWQgb25seSwgdXNlZCBvbmx5
IHdoZW4gdGhlIFdlYktpdCBsYXllciBjcmVhdGVkIHRoZSBjb250ZXh0LgogICAgIC8vIElmIHRo
ZSBBUEkgY2xpZW50IGNyZWF0ZWQgdGhlIGNvbnRleHQsIHRoaXMgd2lsbCBiZSBudWxsLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>