<?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>156274</bug_id>
          
          <creation_ts>2016-04-05 19:24:58 -0700</creation_ts>
          <short_desc>Rename exposedRect to viewExposedRect and propagate it as Optional&lt;&gt; through WK2</short_desc>
          <delta_ts>2016-04-06 12:23:35 -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>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>156266</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181131</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-05 19:24:58 -0700</bug_when>
    <thetext>Rename exposedRect to viewExposedRect and propagate it as Optional&lt;&gt; through WK2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181132</commentid>
    <comment_count>1</comment_count>
      <attachid>275739</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-05 19:37:53 -0700</bug_when>
    <thetext>Created attachment 275739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181319</commentid>
    <comment_count>2</comment_count>
      <attachid>275791</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-06 11:43:51 -0700</bug_when>
    <thetext>Created attachment 275791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181363</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-06 12:23:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199111</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275739</attachid>
            <date>2016-04-05 19:37:53 -0700</date>
            <delta_ts>2016-04-06 11:43:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156274-20160405193753.patch</filename>
            <type>text/plain</type>
            <size>40714</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRlMWQyMTgwMTVmM2Zj
YTEwYzhlYTBhMWZiNWFiOGM3NDI1YTE0NC4uYjhmMzkwYWQ1ODFjY2U2Y2UzODk5NThlYjhhZTFl
ZmRmZWM0YjJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA0LTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBleHBv
c2VkUmVjdCB0byB2aWV3RXhwb3NlZFJlY3QgYW5kIHByb3BhZ2F0ZSBpdCBhcyBPcHRpb25hbDw+
IHRocm91Z2ggV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTYyNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEcmF3aW5nQXJlYSBhbmQgRnJhbWVWaWV3IGhhdmUgYW4gImV4cG9zZWRSZWN0IiBwcm9w
ZXJ0eSB0aGF0IGlzIHVzZWQgYnkgYXBwbGljYXRpb25zCisgICAgICAgIG9uIE1hYywgbGlrZSBN
YWlsLCB0aGF0IGVtYmVkIHdlYiB2aWV3cyBpbnNpZGUgc2Nyb2xsIHZpZXdzLiBIb3dldmVyLCB0
aGlzIG5hbWUgaXMgdmVyeQorICAgICAgICBzaW1pbGFyIHRvIHRoZSAiZXhwb3NlZENvbnRlbnRS
ZWN0IiB0aGF0IGlzIHVzZWQgb24gaU9TIHRvIGRlbm90ZSB0aGUgcGFydCBvZiB0aGUgdmlldwor
ICAgICAgICB3aG9zZSBwaXhlbHMgYXJlIHZpc2libGUsIGluY2x1ZGluZyB0aHJvdWdoIGJsdXJy
aW5nIG92ZXJsYWlkIFVJLgorICAgICAgICAKKyAgICAgICAgVG8gZGlzYW1iaWd1YXRlIHRoZXNl
IHR3bywgcmVuYW1lIHRoZSBNYWMgImV4cG9zZWRSZWN0IiB0byAidmlld0V4cG9zZWRSZWN0IiB0
bworICAgICAgICBlbXBoYXNpemUgdGhhdCBpdCdzIGEgcmVjdCB0aGF0IHRha2VzIGludG8gYWNj
b3VudCBjbGlwcGluZyBpbiB0aGUgbmF0aXZlIHZpZXcKKyAgICAgICAgaGllcmFyY2h5LgorICAg
ICAgICAKKyAgICAgICAgQWxzbyBtYWtlIHRoaXMgcmVjdCBPcHRpb25hbDw+IHRocm91Z2ggdGhl
IERyYXdpbmdBcmVhLCByZW1vdmluZyBjb21wYXJpc29ucyBhZ2FpbnN0CisgICAgICAgIEZsb2F0
UmVjdDo6aW5maW5pdGVSZWN0KCkuCisgICAgICAgIAorICAgICAgICBEbyBzb21lIG90aGVyIG1p
bm9yIHJlbmFtaW5nIGluIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFZp
ZXdFeHBvc2VkUmVjdCk6IFRoaXMgbm93IHRha2VzIGFuIE9wdGlvbmFsPD4gYmVjYXVzZSBXZWJW
aWV3SW1wbDo6dXBkYXRlVmlld0V4cG9zZWRSZWN0KCkKKyAgICAgICAgY2FuIGNsZWFyIGl0Lgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250cm9sbGVyOjpk
aWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlD
b250cm9sbGVyOjpkaWRDaGFuZ2VFeHBvc2VkUmVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVUaWxlQ292ZXJhZ2UpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMp
OgorCiAyMDE2LTA0LTA1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dlYkdMMl0gVHVybiB0aGUgRU5BQkxFX1dFQkdMMiBmbGFnIG9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTY0YzIzM2I0MzFlYjY2MTg0YjU1MDIwMTJlOTk5MjMwZDFhNTNkYi4uNDlkYmZkZDBlOTY3
MzQ5MmI1NGFlZmE1NmZhYzU5NGFiZTc4MDIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBA
CisyMDE2LTA0LTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBleHBvc2VkUmVjdCB0byB2aWV3RXhwb3NlZFJlY3QgYW5kIHByb3BhZ2F0
ZSBpdCBhcyBPcHRpb25hbDw+IHRocm91Z2ggV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYyNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcmF3aW5nQXJlYSBhbmQgRnJhbWVWaWV3IGhhdmUgYW4g
ImV4cG9zZWRSZWN0IiBwcm9wZXJ0eSB0aGF0IGlzIHVzZWQgYnkgYXBwbGljYXRpb25zCisgICAg
ICAgIG9uIE1hYywgbGlrZSBNYWlsLCB0aGF0IGVtYmVkIHdlYiB2aWV3cyBpbnNpZGUgc2Nyb2xs
IHZpZXdzLiBIb3dldmVyLCB0aGlzIG5hbWUgaXMgdmVyeQorICAgICAgICBzaW1pbGFyIHRvIHRo
ZSAiZXhwb3NlZENvbnRlbnRSZWN0IiB0aGF0IGlzIHVzZWQgb24gaU9TIHRvIGRlbm90ZSB0aGUg
cGFydCBvZiB0aGUgdmlldworICAgICAgICB3aG9zZSBwaXhlbHMgYXJlIHZpc2libGUsIGluY2x1
ZGluZyB0aHJvdWdoIGJsdXJyaW5nIG92ZXJsYWlkIFVJLgorICAgICAgICAKKyAgICAgICAgVG8g
ZGlzYW1iaWd1YXRlIHRoZXNlIHR3bywgcmVuYW1lIHRoZSBNYWMgImV4cG9zZWRSZWN0IiB0byAi
dmlld0V4cG9zZWRSZWN0IiB0bworICAgICAgICBlbXBoYXNpemUgdGhhdCBpdCdzIGEgcmVjdCB0
aGF0IHRha2VzIGludG8gYWNjb3VudCBjbGlwcGluZyBpbiB0aGUgbmF0aXZlIHZpZXcKKyAgICAg
ICAgaGllcmFyY2h5LgorICAgICAgICAKKyAgICAgICAgQWxzbyBtYWtlIHRoaXMgcmVjdCBPcHRp
b25hbDw+IHRocm91Z2ggdGhlIERyYXdpbmdBcmVhLCByZW1vdmluZyBjb21wYXJpc29ucyBhZ2Fp
bnN0CisgICAgICAgIEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkuCisgICAgICAgIAorICAgICAg
ICBEbyBzb21lIG90aGVyIG1pbm9yIHJlbmFtaW5nIGluIFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8uCisKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5j
cHA6IFJlbmFtZSAiZXhwb3NlZFJlY3QiIGFuZCAidW5vYnNjdXJlZFJlY3QiIHRvCisgICAgICAg
IGhhdmUgIkNvbnRlbnQiIGluIHRoZSBuYW1lcy4KKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZXhwb3NlZENvbnRlbnRSZWN0KToK
KyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6dW5vYnNjdXJl
ZENvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmV4cG9zZWRSZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6dW5vYnNj
dXJlZFJlY3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVj
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eTo6dmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQp
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2VkUmVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hh
bmdlZFRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2Vk
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXhwb3NlZENvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp1bm9ic2N1cmVkQ29udGVudFJlY3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6
aW5kaWNhdG9yTG9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNjYWxlZEV4cG9zZWRSZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2V0
RXhwb3NlZFJlY3QpOiBEZWxldGVkLiBUaGlzIHdhcyBvbmx5IHVzZWQKKyAgICAgICAgdG8gcG9z
aXRpb24gdGhlIGluZGljYXRvciwgYW5kIGNvbmZ1c2luZ2x5IHVzZWQgZWl0aGVyIGV4cG9zZWRD
b250ZW50UmVjdCgpIG9yIHZpZXdFeHBvc2VkUmVjdCgpCisgICAgICAgIGRlcGVuZGluZyBvbiBw
bGF0Zm9ybS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRy
YW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50
UmVjdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hM
YXllcnMpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QpOiBEZWxldGVkLgorCiAyMDE2LTA0LTA1ICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMMl0gVHVybiB0aGUg
RU5BQkxFX1dFQkdMMiBmbGFnIG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggY2Ni
ZWIzOWFmMmUyMzY3YmIwN2MxMWU1ZmFhYmFmOTE0ZGYxNWVlNy4uMTVkNWRiZDk1OTlkZWFmNmZj
Yzc5MTJkODU3ZDgxYWE5OWRmYWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NDkwNywyNSArNDkwNywyNSBAQCB2b2lkIEZyYW1lVmlldzo6bm90aWZ5V2lkZ2V0cyhXaWRnZXRO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogICAgICAgICB3aWRnZXQtPm5vdGlmeVdpZGdldChu
b3RpZmljYXRpb24pOwogfQogCi12b2lkIEZyYW1lVmlldzo6c2V0RXhwb3NlZFJlY3QoRmxvYXRS
ZWN0IGV4cG9zZWRSZWN0KQordm9pZCBGcmFtZVZpZXc6OnNldFZpZXdFeHBvc2VkUmVjdChPcHRp
b25hbDxGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKIHsKLSAgICBpZiAobV9leHBvc2VkUmVj
dCAmJiBtX2V4cG9zZWRSZWN0LnZhbHVlKCkgPT0gZXhwb3NlZFJlY3QpCisgICAgaWYgKG1fdmll
d0V4cG9zZWRSZWN0ID09IHZpZXdFeHBvc2VkUmVjdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9leHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0OworICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmll
d0V4cG9zZWRSZWN0OwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IGNsaXBwaW5n
IHRvIHRoZSBleHBvc2VkIHJlY3QgZm9yIHN1YmZyYW1lcyBhcyB3ZWxsLgogICAgIGlmICghZnJh
bWUoKS5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFRpbGVkQmFja2lu
ZyogdGlsZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5nKCkpIHsKICAgICAgICAgYWRqdXN0
VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsKLSAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRUaWxlZFNj
cm9sbGluZ0luZGljYXRvclBvc2l0aW9uKGV4cG9zZWRSZWN0LmxvY2F0aW9uKCkpOworICAgICAg
ICB0aWxlZEJhY2tpbmctPnNldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yUG9zaXRpb24obV92aWV3
RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlvbigpKTsKICAgICB9CiAKICAgICBpZiAoYXV0byog
dmlldyA9IHJlbmRlclZpZXcoKSkKICAgICAgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxl
TGF5ZXJGbHVzaChmYWxzZSAvKiBjYW5UaHJvdHRsZSAqLyk7CiAKLSAgICBmcmFtZSgpLm1haW5G
cmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZUV4cG9zZWRSZWN0KCk7Cisg
ICAgZnJhbWUoKS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VW
aWV3RXhwb3NlZFJlY3QoKTsKIH0KICAgICAKIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzKEludFNpemUgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IGM4ZTg0YzVlNTdhYTY5NjkxNTI4YzliZTkyNmRiYzU0ZTVjZDg1NGYuLjk3NzUzZGMy
MTM1M2I2YzA0ZWNjODY5MmRkZDc4NTQxY2M1ODVhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtNTQyLDggKzU0Miw4IEBAIHB1YmxpYzoKICAgICAvLyBvZiB0aGUgdmlldyBpcyBhY3R1
YWxseSBleHBvc2VkIG9uIHNjcmVlbiAodGFraW5nIGludG8gYWNjb3VudAogICAgIC8vIGNsaXBw
aW5nIGJ5IG90aGVyIFVJIGVsZW1lbnRzKSwgd2hlcmVhcyB2aXNpYmxlQ29udGVudFJlY3QgaXMK
ICAgICAvLyBpbnRlcm5hbCB0byBXZWJDb3JlIGFuZCBkb2Vzbid0IHJlc3BlY3QgdGhvc2UgdGhp
bmdzLgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXhwb3NlZFJlY3QoRmxvYXRSZWN0KTsK
LSAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGV4cG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9l
eHBvc2VkUmVjdDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0
KE9wdGlvbmFsPEZsb2F0UmVjdD4pOworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9z
ZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV92aWV3RXhwb3NlZFJlY3Q7IH0KIAogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0cygpIG92ZXJyaWRl
OwpAQCAtNzU0LDcgKzc1NCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc2hvdWxkVXBkYXRl
V2hpbGVPZmZzY3JlZW47CiAKLSAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IG1fZXhwb3NlZFJlY3Q7
CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKIAogICAgIHVuc2ln
bmVkIG1fZGVmZXJTZXROZWVkc0xheW91dENvdW50OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91
dFdhc0RlZmVycmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwCmluZGV4IDgyYmEzZjZhNzllYmUwMjMzYjc1NmZlMDE1NGZjYzIzMDNjNmNkMzUuLjg2
NmI4NzBjYjhlNGQxYjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTI0Myw3ICsyNDMsNyBAQCB2
b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3IoKQog
ICAgICAgICBncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAotdm9pZCBQYWdl
T3ZlcmxheUNvbnRyb2xsZXI6OmRpZENoYW5nZUV4cG9zZWRSZWN0KCkKK3ZvaWQgUGFnZU92ZXJs
YXlDb250cm9sbGVyOjpkaWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QoKQogewogICAgIG1fbWFpbkZy
YW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCmlu
ZGV4IDVkYTNlZWQwMjc3NDlkZjViYzAxOTUxYmM1OTRiM2MxYTFiMDZmODQuLjg4ZDc0ZjYxOWIw
NmMxYzBjYjMwZjAwNTE1YWE1MmYwMzY5YmY3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsKICAgICB2b2lkIGRpZENoYW5nZVNldHRpbmdzKCk7
CiAgICAgdm9pZCBkaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3RvcigpOwotICAgIHZvaWQgZGlkQ2hh
bmdlRXhwb3NlZFJlY3QoKTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOwog
ICAgIHZvaWQgZGlkU2Nyb2xsRnJhbWUoRnJhbWUmKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlT3Zl
cmxheUZyYW1lKFBhZ2VPdmVybGF5Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGRlYWVlN2NjNTUwNTNlNTVmYzlhN2VkM2IxZjU5
ZmJiNGZhZDAzMjEuLjllZmNjNGNjOWJiYjBkNjE3NjBiZWMyYTVjMDY2MDJmYmFlMDgxOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBA
IC0yMjYsNyArMjI2LDcgQEAgc3RhdGljIFRpbGVkQmFja2luZzo6VGlsZUNvdmVyYWdlIGNvbXB1
dGVUaWxlQ292ZXJhZ2UoUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW4KICAgICBUaWxlZEJhY2tp
bmc6OlRpbGVDb3ZlcmFnZSB0aWxlQ292ZXJhZ2UgPSBUaWxlZEJhY2tpbmc6OkNvdmVyYWdlRm9y
VmlzaWJsZUFyZWE7CiAgICAgYm9vbCB1c2VNaW5pbWFsVGlsZXNEdXJpbmdMaXZlUmVzaXplID0g
ZnJhbWVWaWV3LmluTGl2ZVJlc2l6ZSgpOwogICAgIGlmIChmcmFtZVZpZXcuc3BlY3VsYXRpdmVU
aWxpbmdFbmFibGVkKCkgJiYgIXVzZU1pbmltYWxUaWxlc0R1cmluZ0xpdmVSZXNpemUpIHsKLSAg
ICAgICAgYm9vbCBjbGlwc1RvRXhwb3NlZFJlY3QgPSBzdGF0aWNfY2FzdDxib29sPihmcmFtZVZp
ZXcuZXhwb3NlZFJlY3QoKSk7CisgICAgICAgIGJvb2wgY2xpcHNUb0V4cG9zZWRSZWN0ID0gc3Rh
dGljX2Nhc3Q8Ym9vbD4oZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdCgpKTsKICAgICAgICAgaWYg
KGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSgpICE9IFNjcm9sbGJhckFsd2F5c09m
ZiB8fCBjbGlwc1RvRXhwb3NlZFJlY3QpCiAgICAgICAgICAgICB0aWxlQ292ZXJhZ2UgfD0gVGls
ZWRCYWNraW5nOjpDb3ZlcmFnZUZvckhvcml6b250YWxTY3JvbGxpbmc7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzVh
ZDY2MzMyNmQ2Zjc1N2YwZDFhOGNmYzIzZmFkMTI1ZWE4ODg2Ni4uMTM1ZGQxYjI2YTI0Y2Q5MjJk
NjgwZDBkODE0YzZkNmUxM2NjNDc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTQ2MSw4ICs0NjEsOCBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKGJvb2wgaXNGbHVz
aFJvb3QpCiAgICAgICAgIC8vIEhhdmluZyBhIG1fY2xpcExheWVyIGluZGljYXRlcyB0aGF0IHdl
J3JlIGRvaW5nIHNjcm9sbGluZyB2aWEgR3JhcGhpY3NMYXllcnMuCiAgICAgICAgIEZsb2F0UmVj
dCB2aXNpYmxlUmVjdCA9IG1fY2xpcExheWVyID8gRmxvYXRSZWN0KHsgMCwgMCB9LCBmcmFtZVZp
ZXcudW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemVJbmNsdWRpbmdPYnNjdXJlZEFyZWEoKSkgOiBm
cmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAKLSAgICAgICAgaWYgKGZyYW1lVmlldy5l
eHBvc2VkUmVjdCgpKQotICAgICAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJzZWN0KGZyYW1lVmll
dy5leHBvc2VkUmVjdCgpLnZhbHVlKCkpOworICAgICAgICBpZiAoZnJhbWVWaWV3LnZpZXdFeHBv
c2VkUmVjdCgpKQorICAgICAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJzZWN0KGZyYW1lVmlldy52
aWV3RXhwb3NlZFJlY3QoKS52YWx1ZSgpKTsKIAogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ29t
cG9zaXRpbmcsICBzdHJlYW0gPDwgIlJlbmRlckxheWVyQ29tcG9zaXRvciAiIDw8IHRoaXMgPDwg
IiBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoIiA8PCBpc0ZsdXNoUm9vdCA8PCAiKSAiIDw8IHZp
c2libGVSZWN0IDw8ICIgKHN0YWJsZSB2aWV3cG9ydCAiIDw8IGZyYW1lVmlldy52aWV3cG9ydElz
U3RhYmxlKCkgPDwgIikiKTsKICAgICAgICAgcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGUodmlzaWJsZVJlY3QsIGZyYW1lVmlldy52aWV3cG9ydElzU3RhYmxlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
CmluZGV4IDkxZjJmNjAxNGE5YmMwYjg2Mzc0MmQzM2FkYThhMjZjNzQ1MzBlODkuLmI0ZjM4NWYz
ODIwMDFkZmY0OTgzOTU0NzE4OWM0MmU1MDM4YTJhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKQEAgLTMyLDgg
KzMyLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbzo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXIgPDwgbV9leHBvc2VkUmVjdDsKLSAgICBlbmNvZGVyIDw8IG1fdW5vYnNjdXJl
ZFJlY3Q7CisgICAgZW5jb2RlciA8PCBtX2V4cG9zZWRDb250ZW50UmVjdDsKKyAgICBlbmNvZGVy
IDw8IG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0OwogICAgIGVuY29kZXIgPDwgbV91bm9ic2N1cmVk
UmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOwogICAgIGVuY29kZXIgPDwgbV9jdXN0b21GaXhl
ZFBvc2l0aW9uUmVjdDsKICAgICBlbmNvZGVyIDw8IG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SUQ7CkBAIC00OSw5ICs0OSw5IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBib29sIFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgcmVzdWx0KQogewotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fZXhwb3NlZFJlY3QpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lm1fZXhwb3NlZENvbnRlbnRSZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdW5vYnNjdXJlZFJlY3QpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdW5vYnNjdXJlZENvbnRlbnRSZWN0KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oCmluZGV4IDFhYjI1MDcxMjYwNjI0YjNlOWRlZjk4ODljMTUxNzdiZjc4Zjk3MTQu
LjZhNTdkZTlhMjEzYmUyNzc3NDcxYWNhYmYyNWZhNDRmNGMzZjFiMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApAQCAt
MzksOSArMzksOSBAQCBjbGFzcyBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHsKIHB1Ymxp
YzoKICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKCkgPSBkZWZhdWx0OwogCi0gICAg
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4
cG9zZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGRv
dWJsZSBzY2FsZSwgYm9vbCBpblN0YWJsZVN0YXRlLCBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZElu
c2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRv
dWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklk
KQotICAgICAgICA6IG1fZXhwb3NlZFJlY3QoZXhwb3NlZFJlY3QpCi0gICAgICAgICwgbV91bm9i
c2N1cmVkUmVjdCh1bm9ic2N1cmVkUmVjdCkKKyAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUs
IGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFj
dGl2ZWx5LCBib29sIGFsbG93U2hyaW5rVG9GaXQsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBo
b3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVD
aGFuZ2VSYXRlLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKKyAgICAgICAg
OiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVudFJlY3QpCisgICAgICAgICwgbV91
bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRlbnRSZWN0KQogICAgICAgICAsIG1f
dW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcyh1bm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzKQogICAgICAgICAsIG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3Qo
Y3VzdG9tRml4ZWRQb3NpdGlvblJlY3QpCiAgICAgICAgICwgbV9sYXN0TGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JRChsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKQEAgLTU2LDggKzU2LDggQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAKLSAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9z
ZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9leHBvc2VkUmVjdDsgfQotICAgIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Vub2JzY3Vy
ZWRSZWN0OyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9zZWRDb250ZW50UmVjdDsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV91bm9ic2N1cmVkQ29udGVudFJlY3Q7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBt
X3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsgfQogICAgIGRvdWJsZSBzY2FsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2NhbGU7IH0KQEAgLTc2LDggKzc2LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8mKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9leHBvc2VkUmVj
dDsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV91bm9ic2N1cmVkUmVjdDsKKyAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgbV9leHBvc2VkQ29udGVudFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0OwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3Vub2Jz
Y3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3Q7CiAgICAgdWludDY0X3QgbV9sYXN0TGF5ZXJUcmVl
VHJhbnNhY3Rpb25JRCB7IDAgfTsKQEAgLTk1LDggKzk1LDggQEAgaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiBhLCBjb25zdCBWaXNpYmxl
Q29udGUKIHsKICAgICAvLyBOb3RlOiB0aGUgY29tcGFyaXNvbiBkb2Vzbid0IGluY2x1ZGUgdGlt
ZXN0YW1wIGFuZCB2ZWxvY2l0eSBzaW5jZSB3ZSBjYXJlIGFib3V0IGVxdWFsaXR5IGJhc2VkIG9u
IHRoZSBvdGhlciBkYXRhLgogICAgIHJldHVybiBhLnNjYWxlKCkgPT0gYi5zY2FsZSgpCi0gICAg
ICAgICYmIGEuZXhwb3NlZFJlY3QoKSA9PSBiLmV4cG9zZWRSZWN0KCkKLSAgICAgICAgJiYgYS51
bm9ic2N1cmVkUmVjdCgpID09IGIudW5vYnNjdXJlZFJlY3QoKQorICAgICAgICAmJiBhLmV4cG9z
ZWRDb250ZW50UmVjdCgpID09IGIuZXhwb3NlZENvbnRlbnRSZWN0KCkKKyAgICAgICAgJiYgYS51
bm9ic2N1cmVkQ29udGVudFJlY3QoKSA9PSBiLnVub2JzY3VyZWRDb250ZW50UmVjdCgpCiAgICAg
ICAgICYmIGEuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSA9PSBiLmN1c3RvbUZpeGVkUG9zaXRp
b25SZWN0KCkKICAgICAgICAgJiYgYS5ob3Jpem9udGFsVmVsb2NpdHkoKSA9PSBiLmhvcml6b250
YWxWZWxvY2l0eSgpCiAgICAgICAgICYmIGEudmVydGljYWxWZWxvY2l0eSgpID09IGIudmVydGlj
YWxWZWxvY2l0eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggNTdjZTlhNzhhNzFlN2Y1ZmI3N2U4MzQ1ZjZlMWNjMzVlYjI2NDJlZS4uYWVj
M2Q4OWEwMDY0OTExNjI0YmJmZTM2NzFmMmM5ZGYwNTNhMmQ1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtODcxLDcgKzg3MSw3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAgICAgIGV4cG9zZWRS
ZWN0ID0gQ0dSZWN0VW5pb24obV9jb250ZW50UHJlcGFyYXRpb25SZWN0LCBleHBvc2VkUmVjdCk7
CiAKICAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKLSAg
ICAgICAgZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRSZWN0KG1fY2xpcHNUb1Zpc2libGVSZWN0ID8g
V2ViQ29yZTo6RmxvYXRSZWN0KGV4cG9zZWRSZWN0KSA6IFdlYkNvcmU6OkZsb2F0UmVjdDo6aW5m
aW5pdGVSZWN0KCkpOworICAgICAgICBkcmF3aW5nQXJlYS0+c2V0Vmlld0V4cG9zZWRSZWN0KG1f
Y2xpcHNUb1Zpc2libGVSZWN0ID8gT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PihleHBvc2Vk
UmVjdCkgOiBOdWxsb3B0KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0Q2xpcHNUb1Zpc2li
bGVSZWN0KGJvb2wgY2xpcHNUb1Zpc2libGVSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCmluZGV4IDNkNWI5ZTJlMWU4ODQwNzY5OTBjMmFiYTFl
YTUwMWYwNGMzM2Y2ZmUuLmIwZTUxNjQ0MTk2YzkyODE1NGI3YmY5ZTE2NGY1MjVmZDdiOTA0ODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAg
LTQwLDcgKzQwLDcgQEAgRHJhd2luZ0FyZWFQcm94eTo6RHJhd2luZ0FyZWFQcm94eShEcmF3aW5n
QXJlYVR5cGUgdHlwZSwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHIKICAgICAsIG1fd2ViUGFnZVBy
b3h5KHdlYlBhZ2VQcm94eSkKICAgICAsIG1fc2l6ZSh3ZWJQYWdlUHJveHkudmlld1NpemUoKSkK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgLCBtX2V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyKFJ1bkxv
b3A6Om1haW4oKSwgdGhpcywgJkRyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hhbmdlZFRp
bWVyRmlyZWQpCisgICAgLCBtX3ZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGlt
ZXJGaXJlZCkKICNlbmRpZgogewogICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCksICp0aGlzKTsKQEAgLTYzLDI3ICs2MywyNyBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29u
c3QgSW50U2l6ZSYgbGF5ZXJQb3NpdGlvbgogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBE
cmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2VkUmVjdChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRS
ZWN0KQordm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiB7CiAgICAgaWYgKCFtX3dlYlBh
Z2VQcm94eS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZXhwb3NlZFJlY3Qg
PSBleHBvc2VkUmVjdDsKKyAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsK
IAotICAgIGlmICghbV9leHBvc2VkUmVjdENoYW5nZWRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAg
ICBtX2V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICBpZiAoIW1f
dmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdmlld0V4
cG9zZWRSZWN0Q2hhbmdlZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBEcmF3aW5n
QXJlYVByb3h5OjpleHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCkKK3ZvaWQgRHJhd2luZ0Fy
ZWFQcm94eTo6dmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQoKQogewogICAgIGlmICgh
bV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9l
eHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50RXhwb3NlZFJlY3QpCisgICAgaWYgKG1fdmlld0V4cG9z
ZWRSZWN0ID09IG1fbGFzdFNlbnRWaWV3RXhwb3NlZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6
U2V0RXhwb3NlZFJlY3QobV9leHBvc2VkUmVjdCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsK
LSAgICBtX2xhc3RTZW50RXhwb3NlZFJlY3QgPSBtX2V4cG9zZWRSZWN0OworICAgIG1fd2ViUGFn
ZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0Vmlld0V4cG9z
ZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCkpOworICAg
IG1fbGFzdFNlbnRWaWV3RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2VkUmVjdDsKIH0KICNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eS5oCmluZGV4IDlhOWUzYmE5OWQxN2YwYTdjYThkNTkzODRjOWM3NGMwZDQ3NDYyOTAu
LjA4N2FlZWI3MzEwOWM4NmNiOGQ0OWVjNWQ4ZDUwMjUzYTAyZmNkYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApAQCAtNzYsMTEgKzc2LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSwgV2ViQ29y
ZTo6RmxvYXRQb2ludCkgeyB9CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCB2b2lk
IHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwb3NlZFJlY3Q7IH0K
LSNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZXhwb3NlZFJlY3RDaGFuZ2Vk
VGltZXJGaXJlZCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0Pik7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0
PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQor
ICAgIHZvaWQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQoKTsKICNlbmRpZgogCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9yKCkgeyB9CkBAIC0xMjgsOSArMTI2
LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljQ29udGVudFNpemVEaWRD
aGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQot
ICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHk+IG1fZXhwb3NlZFJlY3RDaGFuZ2Vk
VGltZXI7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3NlZFJlY3Q7Ci0gICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IG1fbGFzdFNlbnRFeHBvc2VkUmVjdDsKKyAgICBSdW5Mb29wOjpUaW1lcjxE
cmF3aW5nQXJlYVByb3h5PiBtX3ZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lcjsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdDsKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggYTZkZTUzMWRiYjhlYjkwMzkyZDUxNWY1YmZhOWQ4ZjgxYWYyN2MyNC4u
NTlmYzdkOWE2YmE4YzZhODA1MmU0ZmQ2ZjIxYmE2NzM3OTFiYTRhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDQ5LDggKzQ0OSw4IEBAIHB1YmxpYzoKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5n
JiBjb21tYW5kTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4p
OwogICAgIGRvdWJsZSBkaXNwbGF5ZWRDb250ZW50U2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2xh
c3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUuc2NhbGUoKTsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Vmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlLmV4cG9zZWRSZWN0KCk7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFz
dFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS51bm9ic2N1cmVkUmVjdCgpOyB9CisgICAgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUuZXhwb3NlZENvbnRlbnRSZWN0KCk7IH0KKyAg
ICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS51bm9ic2N1cmVkQ29udGVu
dFJlY3QoKTsgfQogCiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21G
aXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3RhdGUsIGJvb2wg
aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlua1Rv
Rml0LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUg
dmVydGljYWxWZWxvY2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSk7CiAgICAgdm9pZCByZXNl
bmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaApp
bmRleCBjNWFjNTg0MWNkODg1Yjg0OGJmN2VhY2M5MGZjZTJlMTJiMjFhNGJjLi4zMTEwYTY3Y2Jj
NmY0ZTE5MjMwYWNhOTkzYWUyMjI4NWY0YTRkNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNjMsMTAgKzYzLDggQEAgcHJpdmF0ZToKICAgICAvLyBPbmNlIHdlIGhhdmUgb3Ro
ZXIgY2FsbGJhY2tzLCBpdCBtYXkgbWFrZSBzZW5zZSB0byBoYXZlIGEgYmVmb3JlLWNvbW1pdC9h
ZnRlci1jb21taXQgb3B0aW9uLgogICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2lu
ZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPikgb3ZlcnJpZGU7CiAK
LSAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2NhbGVkRXhwb3NlZFJlY3QoKSBjb25zdDsKLQogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBmbG9hdCBpbmRp
Y2F0b3JTY2FsZShXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggZDEwN2FhYjVlMDcxMjMwNDI2ZjBkNTMwYjgyOWVj
MzhkMjJkZThhMi4uNzRlNWIwNjljNzJiOTZmYzE2YjkzOTEzZDI0OTlmZTk5YTc1ODdiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTU3LDE4ICsxNTcsNiBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUdlb21ldHJ5KCkKICAgICAg
ICAgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7CiB9CiAKLUZsb2F0UmVjdCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjpzY2FsZWRFeHBvc2VkUmVjdCgpIGNvbnN0Ci17Ci0jaWYgUExBVEZP
Uk0oSU9TKQotICAgIHJldHVybiBtX3dlYlBhZ2VQcm94eS5leHBvc2VkQ29udGVudFJlY3QoKTsK
LSNlbHNlCi0gICAgRmxvYXRSZWN0IHNjYWxlZEV4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3QoKTsK
LSAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS5wYWdlU2NhbGVGYWN0b3IoKTsK
LSAgICBzY2FsZWRFeHBvc2VkUmVjdC5zY2FsZShzY2FsZSwgc2NhbGUpOwotICAgIHJldHVybiBz
Y2FsZWRFeHBvc2VkUmVjdDsKLSNlbmRpZgotfQotCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OnNlbmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAgbV9sYXN0U2VudFNpemUg
PSBtX3NpemU7CkBAIC0yNTksOSArMjQ3LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllckkKIHN0
YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExBVEZPUk0oTUFD
KQotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2VkUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHIpCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+
IHZpZXdFeHBvc2VkUmVjdCkKIHsKLSAgICBEcmF3aW5nQXJlYVByb3h5OjpzZXRFeHBvc2VkUmVj
dChyKTsKKyAgICBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3Qodmlld0V4cG9z
ZWRSZWN0KTsKICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvclBvc2l0aW9uKCk7CiB9CiAjZW5kaWYK
QEAgLTI3NCw3ICsyNjIsMTAgQEAgRmxvYXRQb2ludCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5OjppbmRpY2F0b3JMb2NhdGlvbigpIGNvbnN0CiAgICAgICAgIGZsb2F0IGFic29sdXRl
SW5zZXQgPSBpbmRpY2F0b3JJbnNldCAvIG1fd2ViUGFnZVByb3h5LmRpc3BsYXllZENvbnRlbnRT
Y2FsZSgpOwogICAgICAgICB0aWxlZE1hcExvY2F0aW9uICs9IEZsb2F0U2l6ZShhYnNvbHV0ZUlu
c2V0LCBhYnNvbHV0ZUluc2V0KTsKICNlbHNlCi0gICAgICAgIEZsb2F0UG9pbnQgdGlsZWRNYXBM
b2NhdGlvbiA9IGV4cG9zZWRSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgRmxvYXRQb2ludCB0
aWxlZE1hcExvY2F0aW9uOworICAgICAgICBpZiAodmlld0V4cG9zZWRSZWN0KCkpCisgICAgICAg
ICAgICB0aWxlZE1hcExvY2F0aW9uID0gdmlld0V4cG9zZWRSZWN0KCkudmFsdWUoKS5sb2NhdGlv
bigpOworCiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGluZGljYXRvcklu
c2V0LCBpbmRpY2F0b3JJbnNldCk7CiAgICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIG1fd2ViUGFn
ZVByb3h5LnBhZ2VTY2FsZUZhY3RvcigpOwogICAgICAgICB0aWxlZE1hcExvY2F0aW9uLnNjYWxl
KHNjYWxlLCBzY2FsZSk7CkBAIC0zMzksNyArMzMwLDE1IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0b3IoSW50U2l6ZSBjb250ZW50c1Np
emUsCiAgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRCb3JkZXJXaWR0aDpjb3Vu
dGVyU2NhbGVkQm9yZGVyXTsKIAogICAgIGlmIChtX3dlYlBhZ2VQcm94eS5kZWxlZ2F0ZXNTY3Jv
bGxpbmcoKSkgewotICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkRXhwb3NlZFJlY3QgPSB0aGlzLT5z
Y2FsZWRFeHBvc2VkUmVjdCgpOworICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkRXhwb3NlZFJlY3Q7
CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IG1fd2ViUGFn
ZVByb3h5LmV4cG9zZWRDb250ZW50UmVjdCgpOworI2Vsc2UKKyAgICAgICAgaWYgKHZpZXdFeHBv
c2VkUmVjdCgpKQorICAgICAgICAgICAgc2NhbGVkRXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJl
Y3QoKS52YWx1ZSgpOworICAgICAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS5w
YWdlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgc2NhbGVkRXhwb3NlZFJlY3Quc2NhbGUoc2NhbGUs
IHNjYWxlKTsKKyNlbmRpZgogICAgICAgICBbbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyIHNl
dFBvc2l0aW9uOnNjYWxlZEV4cG9zZWRSZWN0LmxvY2F0aW9uKCldOwogICAgICAgICBbbV9leHBv
c2VkUmVjdEluZGljYXRvckxheWVyIHNldEJvdW5kczpGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBz
Y2FsZWRFeHBvc2VkUmVjdC5zaXplKCkpXTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCBlYzRhMmFlNzhhMjhkNGQ3N2M3YTg5MDgzZjc3ZjExNjQ4
MWYwNTgxLi40MDdjM2NjMTBkNDk4YTk0N2JkYWFkMWU3YzliNGFmNWRmZWE1MjFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTM0Myw3ICsxMzQzLDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAg
ICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0UHJvaGliaXRzU2Nyb2xsaW5nKHNo
b3VsZERpc2FibGVTY3JvbGxpbmcpOwogICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkt
PnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoIXdlYlBhZ2UtPnNob3VsZEV4dGVuZElu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0RXhwb3NlZFJlY3Qod2ViUGFnZS0+
ZHJhd2luZ0FyZWEoKS0+ZXhwb3NlZFJlY3QoKSk7CisgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PnZpZXcoKS0+c2V0Vmlld0V4cG9zZWRSZWN0KHdlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPnZpZXdF
eHBvc2VkUmVjdCgpKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICBtX2ZyYW1lLT5j
b3JlRnJhbWUoKS0+dmlldygpLT5zZXREZWxlZ2F0ZXNTY3JvbGxpbmcodHJ1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDk0YzRj
YTU0NmI1MmVlNzlhMGNlZGQ0NDY4N2RlMTI2NjRjMzY1ZTkuLjlkODNlMDY0Njc0NmIyYTI4Zjdk
MGE3N2JmOTE1YzRhMWRkYzNkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC04OCw4ICs4OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSB7IH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBv
c2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KSA9IDA7Cisg
ICAgdmlydHVhbCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgp
IGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0
YXJ0KHVpbnQ2NF90IC8qbGF5ZXJJRCovLCBjb25zdCBTdHJpbmcmIC8qa2V5Ki8sIGRvdWJsZSAv
KnN0YXJ0VGltZSovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25E
aWRFbmQodWludDY0X3QgLypsYXllcklEKi8sIGNvbnN0IFN0cmluZyYgLyprZXkqLykgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGFkZEZlbmNlKGNvbnN0IFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQmKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5tZXNzYWdlcy5pbgppbmRleCA5MDk3NzFkNjI4ZmQwNDNiNDk1MjQxMGVhYjBmODhi
NzUxMzFkNTY1Li43Mjg5YjYzY2M0MmYzNmZhMmU0MzA0YzZkZjNlZWZmMDhhNjQ0YTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsyOSw3IEBAIG1lc3NhZ2VzIC0+IERyYXdpbmdBcmVh
IHsKICAgICBVcGRhdGVHZW9tZXRyeShXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplLCBXZWJDb3Jl
OjpJbnRTaXplIGxheWVyUG9zaXRpb24sIGJvb2wgZmx1c2hTeW5jaHJvbm91c2x5LCBXZWJDb3Jl
OjpNYWNoU2VuZFJpZ2h0IGZlbmNlUG9ydCkKICAgICBTZXREZXZpY2VTY2FsZUZhY3RvcihmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcikKICAgICBTZXRDb2xvclNwYWNlKHN0cnVjdCBXZWJLaXQ6OkNv
bG9yU3BhY2VEYXRhIGNvbG9yU3BhY2UpCi0gICAgU2V0RXhwb3NlZFJlY3QoV2ViQ29yZTo6Rmxv
YXRSZWN0IGV4cG9zZWRSZWN0KQorICAgIFNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJD
b3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKIAogICAgIEFkanVzdFRyYW5zaWVudFpv
b20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikKICAgICBDb21taXRU
cmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KaW5kZXggYzg0ZDRmMzRiMWZlZmZmN2Q3Y2M5MmIwMWVkMjljN2M2ZTQ2MGNlYi4uODMxOWQ4
ZGVmOTY1NjU3MjZhZDc3YTdlNGJlYTY1ODcxNTQwZGU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjkzMiwxMSAr
MjkzMiwxMSBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3Qg
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogICAgICAgICAgICAgbV9vbGRlc3RO
b25TdGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wID0gc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcyhzdGF0aWNfY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXA+
KG9sZGVzdFRpbWVzdGFtcCAqIDEwMDApKTsKICAgICB9CiAKLSAgICBGbG9hdFJlY3QgZXhwb3Nl
ZFJlY3QgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmV4cG9zZWRSZWN0KCk7Ci0gICAg
RmxvYXRSZWN0IGFkanVzdGVkRXhwb3NlZFJlY3QgPSBhZGp1c3RFeHBvc2VkUmVjdEZvckJvdW5k
ZWRTY2FsZShleHBvc2VkUmVjdCwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2FsZSgp
LCBib3VuZGVkU2NhbGUpOwotICAgIG1fZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRDb250ZW50UmVj
dChhZGp1c3RlZEV4cG9zZWRSZWN0KTsKKyAgICBGbG9hdFJlY3QgZXhwb3NlZENvbnRlbnRSZWN0
ID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5leHBvc2VkQ29udGVudFJlY3QoKTsKKyAg
ICBGbG9hdFJlY3QgYWRqdXN0ZWRFeHBvc2VkQ29udGVudFJlY3QgPSBhZGp1c3RFeHBvc2VkUmVj
dEZvckJvdW5kZWRTY2FsZShleHBvc2VkQ29udGVudFJlY3QsIHZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uc2NhbGUoKSwgYm91bmRlZFNjYWxlKTsKKyAgICBtX2RyYXdpbmdBcmVhLT5zZXRF
eHBvc2VkQ29udGVudFJlY3QoYWRqdXN0ZWRFeHBvc2VkQ29udGVudFJlY3QpOwogCi0gICAgSW50
UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQodmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby51bm9ic2N1cmVkUmVjdCgpLmxvY2F0aW9uKCkpOworICAgIEludFBvaW50IHNj
cm9sbFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkubG9jYXRpb24oKSk7CiAKICAgICBmbG9hdCBmbG9h
dEJvdW5kZWRTY2FsZSA9IGJvdW5kZWRTY2FsZTsKICAgICBib29sIGhhc1NldFBhZ2VTY2FsZSA9
IGZhbHNlOwpAQCAtMjk2Myw3ICsyOTYzLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxl
Q29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKICAg
ICBpZiAobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Q2FuSWdub3JlU2NhbGluZ0NvbnN0cmFp
bnRzKG1faWdub3JlVmlld3BvcnRTY2FsaW5nQ29uc3RyYWludHMgJiYgdmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby5hbGxvd1Nocmlua1RvRml0KCkpKQogICAgICAgICB2aWV3cG9ydENvbmZp
Z3VyYXRpb25DaGFuZ2VkKCk7CiAKLSAgICBmcmFtZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRT
aXplKHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZFJlY3QoKS5zaXplKCkp
OworICAgIGZyYW1lVmlldy5zZXRVbm9ic2N1cmVkQ29udGVudFNpemUodmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3QoKS5zaXplKCkpOwogCiAgICAgZG91
YmxlIGhvcml6b250YWxWZWxvY2l0eSA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaG9y
aXpvbnRhbFZlbG9jaXR5KCk7CiAgICAgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHkgPSB2aXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvLnZlcnRpY2FsVmVsb2NpdHkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCA3NDQ3MThhYWI5MDBkNTlhOTNmOTVjM2NkMDM3MjA0
NjA0ODgxYzU5Li5kZTNjYzI4NzQ5YzU2NjBjMzk0OTYzOWI4OWIwMGVmMDVkZThlNTgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC04OCw4ICs4OCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBmb3JjZVJlcGFpbnQoKSBvdmVycmlkZTsKICAgICBib29sIGZvcmNlUmVw
YWludEFzeW5jKHVpbnQ2NF90KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9p
ZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3Njcm9sbGVkRXhwb3NlZFJlY3Q7IH0KKyAgICB2b2lkIHNldFZpZXdFeHBvc2VkUmVjdChP
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KSBvdmVycmlkZTsKKyAgICBPcHRpb25hbDxXZWJD
b3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7IH0KIAogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmlt
YXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgZG91Ymxl
IHN0YXJ0VGltZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVu
ZCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CkBAIC0xNDYs
OCArMTQ2LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3U2l6ZTsK
IAotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2V4cG9zZWRSZWN0OwotICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCBtX3Njcm9sbGVkRXhwb3NlZFJlY3Q7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJl
Y3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpUaW1lciBtX2xh
eWVyRmx1c2hUaW1lcjsKICAgICBib29sIG1faXNGbHVzaGluZ1N1c3BlbmRlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGE3YTRmMDMzODVjNzdkODBkODJkZGQ5
NDk1ZGM2MTJmOTlmYzEyZDQuLjM3MWY2MTQzNDkzZTM4N2Q0ZTRmMDlhOTdmZTY2OTkxZDNiNDNj
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtNTgsOCArNTgs
NiBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0Fy
ZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlKQogICAgICwgbV9yZW1vdGVMYXllclRyZWVD
b250ZXh0KHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4od2ViUGFnZSkp
CiAgICAgLCBtX3Jvb3RMYXllcihHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSwgKnRoaXMpKQotICAgICwgbV9leHBvc2VkUmVjdChGbG9hdFJlY3Q6OmluZmluaXRl
UmVjdCgpKQotICAgICwgbV9zY3JvbGxlZEV4cG9zZWRSZWN0KEZsb2F0UmVjdDo6aW5maW5pdGVS
ZWN0KCkpCiAgICAgLCBtX2xheWVyRmx1c2hUaW1lcigqdGhpcywgJlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjpmbHVzaExheWVycykKICAgICAsIG1faXNGbHVzaGluZ1N1c3BlbmRlZChmYWxz
ZSkKICAgICAsIG1faGFzRGVmZXJyZWRGbHVzaChmYWxzZSkKQEAgLTIzMSw5ICsyMjksOSBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVu
ZCh1aW50NjRfdCBsYXllcklELCBjbwogICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+YW5p
bWF0aW9uRGlkRW5kKGxheWVySUQsIGtleSk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlZFJlY3QpCit2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiB7Ci0gICAgbV9leHBvc2Vk
UmVjdCA9IGV4cG9zZWRSZWN0OworICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmlld0V4cG9zZWRS
ZWN0OwogICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKIH0KIApAQCAtMjY2LDE2ICsy
NjQsMTYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlU2Nyb2xsZWRF
eHBvc2VkUmVjdCgpCiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fc2Nyb2xsZWRFeHBvc2VkUmVjdCA9IG1fZXhwb3NlZFJlY3Q7CisgICAgbV9zY3JvbGxlZFZp
ZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OwogCiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICBpZiAoIW1fZXhwb3NlZFJlY3QuaXNJbmZpbml0ZSgpKSB7CisgICAgaWYgKG1fdmlld0V4
cG9zZWRSZWN0KSB7CiAgICAgICAgIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQgPSBmcmFtZVZp
ZXctPnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihmcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkp
OwotICAgICAgICBtX3Njcm9sbGVkRXhwb3NlZFJlY3QubW92ZUJ5KHNjcm9sbE9mZnNldCk7Cisg
ICAgICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKS5tb3ZlQnkoc2Nyb2xsT2Zm
c2V0KTsKICAgICB9CiAjZW5kaWYKIAotICAgIGZyYW1lVmlldy0+c2V0RXhwb3NlZFJlY3QobV9z
Y3JvbGxlZEV4cG9zZWRSZWN0KTsKKyAgICBmcmFtZVZpZXctPnNldFZpZXdFeHBvc2VkUmVjdCht
X3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KTsKIH0KIAogVGlsZWRCYWNraW5nKiBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkgY29uc3QKQEAgLTM1NSw5
ICszNTMsMTAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMo
KQogICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCiAgICAgRmxvYXRSZWN0IHZpc2li
bGVSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3U2l6ZSk7Ci0gICAgdmlzaWJsZVJlY3QuaW50ZXJz
ZWN0KG1fc2Nyb2xsZWRFeHBvc2VkUmVjdCk7CisgICAgaWYgKG1fc2Nyb2xsZWRWaWV3RXhwb3Nl
ZFJlY3QpCisgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdChtX3Njcm9sbGVkVmlld0V4cG9z
ZWRSZWN0LnZhbHVlKCkpOwogCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKKyNpZiBQTEFU
Rk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMTAwKQogICAgIFJlZlB0cjxXZWJQYWdlPiByZXRhaW5lZFBhZ2UgPSAmbV93
ZWJQYWdlOwogICAgIFtDQVRyYW5zYWN0aW9uIGFkZENvbW1pdEhhbmRsZXI6W3JldGFpbmVkUGFn
ZV0gewogICAgICAgICBpZiAoUGFnZSogY29yZVBhZ2UgPSByZXRhaW5lZFBhZ2UtPmNvcmVQYWdl
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBiOWE3
ZmVmZGM5MGE5ZjBmYWI0NTQyNWU1YmQ2Y2ViOWFiMTc2MTk0Li4wYzk5NTcyMTkyYzUzNDljYzMy
MWNlYjU0MjE4ZDU3ZTJmY2ZkYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCkBAIC03Miw4ICs3Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVQcmVm
ZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBt
YWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJy
aWRlOwogCi0gICAgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3Njcm9sbGVkRXhwb3NlZFJlY3Q7IH0KKyAgICB2b2lkIHNldFZp
ZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KSBvdmVycmlkZTsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7IH0KIAogICAgIGJvb2wg
c3VwcG9ydHNBc3luY1Njcm9sbGluZygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApAQCAt
MTMzLDggKzEzMyw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNQYWludGluZ1N1c3BlbmRl
ZDsKIAotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2V4cG9zZWRSZWN0OwotICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBtX3Njcm9sbGVkRXhwb3NlZFJlY3Q7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpJbnRTaXpl
IG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBib29sIG1faW5VcGRhdGVHZW9t
ZXRyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IGU3
YjZhMjE0ZDJhMmM0ZDc1MjIyODUzNzAwYjc1ODY5MmI2NGZiMmIuLmY4NmVlZjQ2MTNkZmNkMjI5
ZDViODEwY2UyYzViMDIxMGVlNjIwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbQpAQCAtNzgsOCArNzgsNiBAQCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgYwog
ICAgICwgbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKGZhbHNlKQogICAgICwgbV9sYXllckZsdXNo
U2NoZWR1bGVyKHRoaXMpCiAgICAgLCBtX2lzUGFpbnRpbmdTdXNwZW5kZWQoIShwYXJhbWV0ZXJz
LnZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSkKLSAgICAsIG1fZXhwb3NlZFJlY3Qo
RmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSkKLSAgICAsIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdChG
bG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKQogICAgICwgbV90cmFuc2llbnRab29tU2NhbGUoMSkK
ICAgICAsIG1fc2VuZERpZFVwZGF0ZVZpZXdTdGF0ZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhp
cywgJlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaWRVcGRhdGVWaWV3U3RhdGVUaW1l
ckZpcmVkKQogICAgICwgbV93YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZShmYWxzZSkKQEAgLTQxMyw3
ICs0MTEsOCBAQCBib29sIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVy
cygpCiAgICAgICAgIH0KIAogICAgICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBbbV9ob3N0
aW5nTGF5ZXIgZnJhbWVdOwotICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QobV9zY3JvbGxl
ZEV4cG9zZWRSZWN0KTsKKyAgICAgICAgaWYgKG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpCisg
ICAgICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVj
dC52YWx1ZSgpKTsKIAogICAgICAgICAvLyBCZWNhdXNlIG91ciB2aWV3LXJlbGF0aXZlIG92ZXJs
YXkgcm9vdCBsYXllciBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIG1haW4gR3JhcGhpY3NMYXllciB0
cmVlLCB3ZSBuZWVkIHRvIGZsdXNoIGl0IG1hbnVhbGx5LgogICAgICAgICBpZiAobV92aWV3T3Zl
cmxheVJvb3RMYXllcikKQEAgLTQ5Niw5ICs0OTUsOSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpyZXN1bWVQYWludGluZygpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIk5TQ0FWaWV3UmVuZGVyRGlk
UmVzdW1lTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHVzZXJJbmZvOltOU0RpY3Rpb25hcnkgZGlj
dGlvbmFyeVdpdGhPYmplY3Q6bV9ob3N0aW5nTGF5ZXIuZ2V0KCkgZm9yS2V5OkAibGF5ZXIiXV07
CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlZFJlY3QpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0
PiB2aWV3RXhwb3NlZFJlY3QpCiB7Ci0gICAgbV9leHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0Owor
ICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmlld0V4cG9zZWRSZWN0OwogICAgIHVwZGF0ZVNjcm9s
bGVkRXhwb3NlZFJlY3QoKTsKIH0KIApAQCAtNTA4LDE2ICs1MDcsMTYgQEAgdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpCiAgICAg
aWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2Nyb2xsZWRFeHBvc2Vk
UmVjdCA9IG1fZXhwb3NlZFJlY3Q7CisgICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCA9IG1f
dmlld0V4cG9zZWRSZWN0OwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBpZiAoIW1fZXhwb3Nl
ZFJlY3QuaXNJbmZpbml0ZSgpKSB7CisgICAgaWYgKG1fdmlld0V4cG9zZWRSZWN0KSB7CiAgICAg
ICAgIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQgPSBmcmFtZVZpZXctPnNjcm9sbE9mZnNldEZy
b21Qb3NpdGlvbihmcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkpOwotICAgICAgICBtX3Njcm9s
bGVkRXhwb3NlZFJlY3QubW92ZUJ5KHNjcm9sbE9mZnNldCk7CisgICAgICAgIG1fc2Nyb2xsZWRW
aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5tb3ZlQnkoc2Nyb2xsT2Zmc2V0KTsKICAgICB9CiAjZW5k
aWYKIAotICAgIGZyYW1lVmlldy0+c2V0RXhwb3NlZFJlY3QobV9zY3JvbGxlZEV4cG9zZWRSZWN0
KTsKKyAgICBmcmFtZVZpZXctPnNldFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4cG9z
ZWRSZWN0KTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRl
R2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IEludFNpemUmIGxheWVyUG9z
aXRpb24sIGJvb2wgZmx1c2hTeW5jaHJvbm91c2x5LCBjb25zdCBXZWJDb3JlOjpNYWNoU2VuZFJp
Z2h0JiBmZW5jZVBvcnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275791</attachid>
            <date>2016-04-06 11:43:51 -0700</date>
            <delta_ts>2016-04-06 11:57:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156274-20160406114353.patch</filename>
            <type>text/plain</type>
            <size>40737</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmNjMjRjZWQ0ZjU2NTQy
Njg5NmYzZTI5ZDc1N2U2MzJhMmE4NGJhYy4uZWM5YmExZDI1YWVlZGZmZjQzMTMzMmQxYjVhOGI0
NGZmOGNjMDU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA0LTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBleHBv
c2VkUmVjdCB0byB2aWV3RXhwb3NlZFJlY3QgYW5kIHByb3BhZ2F0ZSBpdCBhcyBPcHRpb25hbDw+
IHRocm91Z2ggV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTYyNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEcmF3aW5nQXJlYSBhbmQgRnJhbWVWaWV3IGhhdmUgYW4gImV4cG9zZWRSZWN0IiBwcm9w
ZXJ0eSB0aGF0IGlzIHVzZWQgYnkgYXBwbGljYXRpb25zCisgICAgICAgIG9uIE1hYywgbGlrZSBN
YWlsLCB0aGF0IGVtYmVkIHdlYiB2aWV3cyBpbnNpZGUgc2Nyb2xsIHZpZXdzLiBIb3dldmVyLCB0
aGlzIG5hbWUgaXMgdmVyeQorICAgICAgICBzaW1pbGFyIHRvIHRoZSAiZXhwb3NlZENvbnRlbnRS
ZWN0IiB0aGF0IGlzIHVzZWQgb24gaU9TIHRvIGRlbm90ZSB0aGUgcGFydCBvZiB0aGUgdmlldwor
ICAgICAgICB3aG9zZSBwaXhlbHMgYXJlIHZpc2libGUsIGluY2x1ZGluZyB0aHJvdWdoIGJsdXJy
aW5nIG92ZXJsYWlkIFVJLgorICAgICAgICAKKyAgICAgICAgVG8gZGlzYW1iaWd1YXRlIHRoZXNl
IHR3bywgcmVuYW1lIHRoZSBNYWMgImV4cG9zZWRSZWN0IiB0byAidmlld0V4cG9zZWRSZWN0IiB0
bworICAgICAgICBlbXBoYXNpemUgdGhhdCBpdCdzIGEgcmVjdCB0aGF0IHRha2VzIGludG8gYWNj
b3VudCBjbGlwcGluZyBpbiB0aGUgbmF0aXZlIHZpZXcKKyAgICAgICAgaGllcmFyY2h5LgorICAg
ICAgICAKKyAgICAgICAgQWxzbyBtYWtlIHRoaXMgcmVjdCBPcHRpb25hbDw+IHRocm91Z2ggdGhl
IERyYXdpbmdBcmVhLCByZW1vdmluZyBjb21wYXJpc29ucyBhZ2FpbnN0CisgICAgICAgIEZsb2F0
UmVjdDo6aW5maW5pdGVSZWN0KCkuCisgICAgICAgIAorICAgICAgICBEbyBzb21lIG90aGVyIG1p
bm9yIHJlbmFtaW5nIGluIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFZp
ZXdFeHBvc2VkUmVjdCk6IFRoaXMgbm93IHRha2VzIGFuIE9wdGlvbmFsPD4gYmVjYXVzZSBXZWJW
aWV3SW1wbDo6dXBkYXRlVmlld0V4cG9zZWRSZWN0KCkKKyAgICAgICAgY2FuIGNsZWFyIGl0Lgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250cm9sbGVyOjpk
aWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlD
b250cm9sbGVyOjpkaWRDaGFuZ2VFeHBvc2VkUmVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVUaWxlQ292ZXJhZ2UpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMp
OgorCiAyMDE2LTA0LTA2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIENSQVNIIGluIC1bV2ViQ29yZU5TVVJMU2Vzc2lvbiB0YXNrQ29tcGxldGVkOl0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA2ZDAzYWY1NWFhMDk3MTM4YTljYTQ5OTlhNzAxYjNmMDAzNjQwNTg0Li44NTk2NTkz
NTMzNDZlOGIwYWMwZDI0YjM0MmYwOWU1OTRkOTM1ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzkgQEAKKzIwMTYtMDQtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVuYW1lIGV4cG9zZWRSZWN0IHRvIHZpZXdFeHBvc2VkUmVjdCBhbmQgcHJv
cGFnYXRlIGl0IGFzIE9wdGlvbmFsPD4gdGhyb3VnaCBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjI3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyYXdpbmdBcmVhIGFuZCBGcmFtZVZpZXcgaGF2
ZSBhbiAiZXhwb3NlZFJlY3QiIHByb3BlcnR5IHRoYXQgaXMgdXNlZCBieSBhcHBsaWNhdGlvbnMK
KyAgICAgICAgb24gTWFjLCBsaWtlIE1haWwsIHRoYXQgZW1iZWQgd2ViIHZpZXdzIGluc2lkZSBz
Y3JvbGwgdmlld3MuIEhvd2V2ZXIsIHRoaXMgbmFtZSBpcyB2ZXJ5CisgICAgICAgIHNpbWlsYXIg
dG8gdGhlICJleHBvc2VkQ29udGVudFJlY3QiIHRoYXQgaXMgdXNlZCBvbiBpT1MgdG8gZGVub3Rl
IHRoZSBwYXJ0IG9mIHRoZSB2aWV3CisgICAgICAgIHdob3NlIHBpeGVscyBhcmUgdmlzaWJsZSwg
aW5jbHVkaW5nIHRocm91Z2ggYmx1cnJpbmcgb3ZlcmxhaWQgVUkuCisgICAgICAgIAorICAgICAg
ICBUbyBkaXNhbWJpZ3VhdGUgdGhlc2UgdHdvLCByZW5hbWUgdGhlIE1hYyAiZXhwb3NlZFJlY3Qi
IHRvICJ2aWV3RXhwb3NlZFJlY3QiIHRvCisgICAgICAgIGVtcGhhc2l6ZSB0aGF0IGl0J3MgYSBy
ZWN0IHRoYXQgdGFrZXMgaW50byBhY2NvdW50IGNsaXBwaW5nIGluIHRoZSBuYXRpdmUgdmlldwor
ICAgICAgICBoaWVyYXJjaHkuCisgICAgICAgIAorICAgICAgICBBbHNvIG1ha2UgdGhpcyByZWN0
IE9wdGlvbmFsPD4gdGhyb3VnaCB0aGUgRHJhd2luZ0FyZWEsIHJlbW92aW5nIGNvbXBhcmlzb25z
IGFnYWluc3QKKyAgICAgICAgRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKS4KKyAgICAgICAgCisg
ICAgICAgIERvIHNvbWUgb3RoZXIgbWlub3IgcmVuYW1pbmcgaW4gVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby4KKworICAgICAgICAqIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmNwcDogUmVuYW1lICJleHBvc2VkUmVjdCIgYW5kICJ1bm9ic2N1cmVkUmVjdCIgdG8KKyAg
ICAgICAgaGF2ZSAiQ29udGVudCIgaW4gdGhlIG5hbWVzLgorICAgICAgICAoV2ViS2l0OjpWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9WaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmg6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm86OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pOgorICAgICAg
ICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpleHBvc2VkQ29udGVudFJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp1bm9i
c2N1cmVkQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpvcGVyYXRvcj09KToKKyAgICAg
ICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZXhwb3NlZFJlY3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp1
bm9ic2N1cmVkUmVjdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlVmlld0V4cG9z
ZWRSZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OkRyYXdpbmdBcmVhUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXJG
aXJlZCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnNldEV4cG9zZWRSZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6ZXhwb3NlZFJl
Y3RDaGFuZ2VkVGltZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6dmlld0V4
cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6ZXhwb3NlZFJl
Y3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpleHBvc2VkQ29udGVudFJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnVub2JzY3VyZWRDb250ZW50UmVjdCk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhw
b3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5OjppbmRpY2F0b3JMb2NhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2NhbGVkRXhwb3NlZFJlY3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjpzZXRFeHBvc2VkUmVjdCk6IERlbGV0ZWQuIFRoaXMgd2FzIG9ubHkgdXNlZAorICAgICAgICB0
byBwb3NpdGlvbiB0aGUgaW5kaWNhdG9yLCBhbmQgY29uZnVzaW5nbHkgdXNlZCBlaXRoZXIgZXhw
b3NlZENvbnRlbnRSZWN0KCkgb3Igdmlld0V4cG9zZWRSZWN0KCkKKyAgICAgICAgZGVwZW5kaW5n
IG9uIHBsYXRmb3JtLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNv
bnRlbnRSZWN0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpm
bHVzaExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6IERlbGV0ZWQuCisKIDIwMTYtMDQtMDUgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtl
IENNYWtlLWdlbmVyYXRlZCBiaW5hcmllcyBvbiBNYWMgYWJsZSB0byBydW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBjY2JlYjM5YWYyZTIzNjdiYjA3YzExZTVmYWFiYWY5MTRkZjE1
ZWU3Li4xNWQ1ZGJkOTU5OWRlYWY2ZmNjNzkxMmQ4NTdkODFhYTk5ZGZhZDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00OTA3LDI1ICs0OTA3LDI1IEBAIHZvaWQgRnJhbWVWaWV3
Ojpub3RpZnlXaWRnZXRzKFdpZGdldE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCiAgICAgICAg
IHdpZGdldC0+bm90aWZ5V2lkZ2V0KG5vdGlmaWNhdGlvbik7CiB9CiAKLXZvaWQgRnJhbWVWaWV3
OjpzZXRFeHBvc2VkUmVjdChGbG9hdFJlY3QgZXhwb3NlZFJlY3QpCit2b2lkIEZyYW1lVmlldzo6
c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQog
ewotICAgIGlmIChtX2V4cG9zZWRSZWN0ICYmIG1fZXhwb3NlZFJlY3QudmFsdWUoKSA9PSBleHBv
c2VkUmVjdCkKKyAgICBpZiAobV92aWV3RXhwb3NlZFJlY3QgPT0gdmlld0V4cG9zZWRSZWN0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CisgICAg
bV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7CiAKICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHN1cHBvcnQgY2xpcHBpbmcgdG8gdGhlIGV4cG9zZWQgcmVjdCBmb3Igc3ViZnJhbWVz
IGFzIHdlbGwuCiAgICAgaWYgKCFmcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBpZiAoVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSB0aGlzLT50aWxlZEJhY2tp
bmcoKSkgewogICAgICAgICBhZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSgpOwotICAgICAgICB0
aWxlZEJhY2tpbmctPnNldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yUG9zaXRpb24oZXhwb3NlZFJl
Y3QubG9jYXRpb24oKSk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0VGlsZWRTY3JvbGxpbmdJ
bmRpY2F0b3JQb3NpdGlvbihtX3ZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpLmxvY2F0aW9uKCkpOwog
ICAgIH0KIAogICAgIGlmIChhdXRvKiB2aWV3ID0gcmVuZGVyVmlldygpKQogICAgICAgICB2aWV3
LT5jb21wb3NpdG9yKCkuc2NoZWR1bGVMYXllckZsdXNoKGZhbHNlIC8qIGNhblRocm90dGxlICov
KTsKIAotICAgIGZyYW1lKCkubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuZGlk
Q2hhbmdlRXhwb3NlZFJlY3QoKTsKKyAgICBmcmFtZSgpLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOwogfQogICAgIAogdm9pZCBG
cmFtZVZpZXc6OnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoSW50U2l6ZSBzaXpl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggYzhlODRjNWU1N2FhNjk2OTE1MjhjOWJlOTI2
ZGJjNTRlNWNkODU0Zi4uOTc3NTNkYzIxMzUzYjZjMDRlY2M4NjkyZGRkNzg1NDFjYzU4NWFiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC01NDIsOCArNTQyLDggQEAgcHVibGljOgogICAg
IC8vIG9mIHRoZSB2aWV3IGlzIGFjdHVhbGx5IGV4cG9zZWQgb24gc2NyZWVuICh0YWtpbmcgaW50
byBhY2NvdW50CiAgICAgLy8gY2xpcHBpbmcgYnkgb3RoZXIgVUkgZWxlbWVudHMpLCB3aGVyZWFz
IHZpc2libGVDb250ZW50UmVjdCBpcwogICAgIC8vIGludGVybmFsIHRvIFdlYkNvcmUgYW5kIGRv
ZXNuJ3QgcmVzcGVjdCB0aG9zZSB0aGluZ3MuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRF
eHBvc2VkUmVjdChGbG9hdFJlY3QpOwotICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZXhwb3NlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9zZWRSZWN0OyB9CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0Pik7CisgICAgT3B0aW9u
YWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBv
c2VkUmVjdDsgfQogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICB2b2lkIHVwZGF0
ZVNuYXBPZmZzZXRzKCkgb3ZlcnJpZGU7CkBAIC03NTQsNyArNzU0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV9zaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbjsKIAotICAgIE9wdGlvbmFsPEZs
b2F0UmVjdD4gbV9leHBvc2VkUmVjdDsKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IG1fdmlld0V4
cG9zZWRSZWN0OwogCiAgICAgdW5zaWduZWQgbV9kZWZlclNldE5lZWRzTGF5b3V0Q291bnQ7CiAg
ICAgYm9vbCBtX3NldE5lZWRzTGF5b3V0V2FzRGVmZXJyZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggODJiYTNmNmE3OWViZTAyMzNiNzU2
ZmUwMTU0ZmNjMjMwM2M2Y2QzNS4uODY2Yjg3MGNiOGU0ZDFiN2U1ZDIxYjNiMTZhYzFlNWM2YjNh
YmY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNw
cApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpkaWRDaGFu
Z2VEZXZpY2VTY2FsZUZhY3RvcigpCiAgICAgICAgIGdyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ2hhbmdlRXhwb3Nl
ZFJlY3QoKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRpZENoYW5nZVZpZXdFeHBvc2Vk
UmVjdCgpCiB7CiAgICAgbV9tYWluRnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNWRhM2VlZDAyNzc0OWRmNWJjMDE5NTFiYzU5NGIz
YzFhMWIwNmY4NC4uODhkNzRmNjE5YjA2YzFjMGNiMzBmMDA1MTVhYTUyZjAzNjliZjdjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC02NSw3ICs2
NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENoYW5nZURvY3VtZW50U2l6ZSgpOwogICAgIHZv
aWQgZGlkQ2hhbmdlU2V0dGluZ3MoKTsKICAgICB2b2lkIGRpZENoYW5nZURldmljZVNjYWxlRmFj
dG9yKCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VFeHBvc2VkUmVjdCgpOworICAgIHZvaWQgZGlkQ2hh
bmdlVmlld0V4cG9zZWRSZWN0KCk7CiAgICAgdm9pZCBkaWRTY3JvbGxGcmFtZShGcmFtZSYpOwog
CiAgICAgdm9pZCBkaWRDaGFuZ2VPdmVybGF5RnJhbWUoUGFnZU92ZXJsYXkmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggZGVhZWU3
Y2M1NTA1M2U1NWZjOWE3ZWQzYjFmNTlmYmI0ZmFkMDMyMS4uOWVmY2M0Y2M5YmJiMGQ2MTc2MGJl
YzJhNWMwNjYwMmZiYWUwODE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgVGlsZWRCYWNr
aW5nOjpUaWxlQ292ZXJhZ2UgY29tcHV0ZVRpbGVDb3ZlcmFnZShSZW5kZXJMYXllckJhY2tpbmcq
IGJhY2tpbgogICAgIFRpbGVkQmFja2luZzo6VGlsZUNvdmVyYWdlIHRpbGVDb3ZlcmFnZSA9IFRp
bGVkQmFja2luZzo6Q292ZXJhZ2VGb3JWaXNpYmxlQXJlYTsKICAgICBib29sIHVzZU1pbmltYWxU
aWxlc0R1cmluZ0xpdmVSZXNpemUgPSBmcmFtZVZpZXcuaW5MaXZlUmVzaXplKCk7CiAgICAgaWYg
KGZyYW1lVmlldy5zcGVjdWxhdGl2ZVRpbGluZ0VuYWJsZWQoKSAmJiAhdXNlTWluaW1hbFRpbGVz
RHVyaW5nTGl2ZVJlc2l6ZSkgewotICAgICAgICBib29sIGNsaXBzVG9FeHBvc2VkUmVjdCA9IHN0
YXRpY19jYXN0PGJvb2w+KGZyYW1lVmlldy5leHBvc2VkUmVjdCgpKTsKKyAgICAgICAgYm9vbCBj
bGlwc1RvRXhwb3NlZFJlY3QgPSBzdGF0aWNfY2FzdDxib29sPihmcmFtZVZpZXcudmlld0V4cG9z
ZWRSZWN0KCkpOwogICAgICAgICBpZiAoZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJNb2Rl
KCkgIT0gU2Nyb2xsYmFyQWx3YXlzT2ZmIHx8IGNsaXBzVG9FeHBvc2VkUmVjdCkKICAgICAgICAg
ICAgIHRpbGVDb3ZlcmFnZSB8PSBUaWxlZEJhY2tpbmc6OkNvdmVyYWdlRm9ySG9yaXpvbnRhbFNj
cm9sbGluZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAppbmRleCAzNWFkNjYzMzI2ZDZmNzU3ZjBkMWE4Y2ZjMjNmYWQxMjVlYTg4
ODY2Li4xMzVkZDFiMjZhMjRjZDkyMmQ2ODBkMGQ4MTRjNmQ2ZTEzY2M0Nzc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAt
NDYxLDggKzQ2MSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICAgICAgLy8gSGF2aW5nIGEgbV9jbGlw
TGF5ZXIgaW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xh
eWVycy4KICAgICAgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gbV9jbGlwTGF5ZXIgPyBGbG9h
dFJlY3QoeyAwLCAwIH0sIGZyYW1lVmlldy51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZUluY2x1
ZGluZ09ic2N1cmVkQXJlYSgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKTsKIAot
ICAgICAgICBpZiAoZnJhbWVWaWV3LmV4cG9zZWRSZWN0KCkpCi0gICAgICAgICAgICB2aXNpYmxl
UmVjdC5pbnRlcnNlY3QoZnJhbWVWaWV3LmV4cG9zZWRSZWN0KCkudmFsdWUoKSk7CisgICAgICAg
IGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCisgICAgICAgICAgICB2aXNpYmxlUmVj
dC5pbnRlcnNlY3QoZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdCgpLnZhbHVlKCkpOwogCiAgICAg
ICAgIExPR19XSVRIX1NUUkVBTShDb21wb3NpdGluZywgIHN0cmVhbSA8PCAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yICIgPDwgdGhpcyA8PCAiIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygiIDw8IGlz
Rmx1c2hSb290IDw8ICIpICIgPDwgdmlzaWJsZVJlY3QgPDwgIiAoc3RhYmxlIHZpZXdwb3J0ICIg
PDwgZnJhbWVWaWV3LnZpZXdwb3J0SXNTdGFibGUoKSA8PCAiKSIpOwogICAgICAgICByb290TGF5
ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh2aXNpYmxlUmVjdCwgZnJhbWVWaWV3LnZpZXdwb3J0
SXNTdGFibGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKaW5kZXggOTFmMmY2MDE0YTliYzBiODYzNzQyZDMzYWRh
OGEyNmM3NDUzMGU4OS4uYjRmMzg1ZjM4MjAwMWRmZjQ5ODM5NTQ3MTg5YzQyZTUwMzhhMmE2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmNwcApAQCAtMzIsOCArMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9p
ZCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBtX2V4cG9zZWRSZWN0OwotICAg
IGVuY29kZXIgPDwgbV91bm9ic2N1cmVkUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fZXhwb3NlZENv
bnRlbnRSZWN0OworICAgIGVuY29kZXIgPDwgbV91bm9ic2N1cmVkQ29udGVudFJlY3Q7CiAgICAg
ZW5jb2RlciA8PCBtX3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7CiAgICAg
ZW5jb2RlciA8PCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OwogICAgIGVuY29kZXIgPDwgbV9s
YXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsKQEAgLTQ5LDkgKzQ5LDkgQEAgdm9pZCBWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
JiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9leHBvc2VkUmVj
dCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9leHBvc2VkQ29udGVudFJlY3Qp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
bV91bm9ic2N1cmVkUmVjdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV91bm9i
c2N1cmVkQ29udGVudFJlY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQubV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKaW5kZXggMWFiMjUwNzEyNjA2MjRiM2U5
ZGVmOTg4OWMxNTE3N2JmNzhmOTcxNC4uNmE1N2RlOWEyMTNiZTI3Nzc0NzFhY2FiZjI1ZmE0NGY0
YzNmMWIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8gewogcHVibGljOgogICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8oKSA9IGRlZmF1bHQ7CiAKLSAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJl
Y3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0
b21GaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3RhdGUsIGJv
b2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1Nocmlu
a1RvRml0LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3Vi
bGUgdmVydGljYWxWZWxvY2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgdWludDY0X3QgbGFz
dExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCi0gICAgICAgIDogbV9leHBvc2VkUmVjdChleHBvc2Vk
UmVjdCkKLSAgICAgICAgLCBtX3Vub2JzY3VyZWRSZWN0KHVub2JzY3VyZWRSZWN0KQorICAgIFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBv
c2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRl
bnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3Np
dGlvblJlY3QsIGRvdWJsZSBzY2FsZSwgYm9vbCBpblN0YWJsZVN0YXRlLCBib29sIGlzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgZG91
YmxlIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2Fs
VmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVU
cmFuc2FjdGlvbklkKQorICAgICAgICA6IG1fZXhwb3NlZENvbnRlbnRSZWN0KGV4cG9zZWRDb250
ZW50UmVjdCkKKyAgICAgICAgLCBtX3Vub2JzY3VyZWRDb250ZW50UmVjdCh1bm9ic2N1cmVkQ29u
dGVudFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzKHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMpCiAgICAgICAgICwgbV9j
dXN0b21GaXhlZFBvc2l0aW9uUmVjdChjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCkKICAgICAgICAg
LCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklk
KQpAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9zZWRS
ZWN0OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZFJlY3Q7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwb3NlZENvbnRl
bnRSZWN0OyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Vub2JzY3VyZWRDb250ZW50UmVjdDsgfQogICAgIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGlu
YXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGlu
YXRlczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OyB9CiAgICAg
ZG91YmxlIHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQpAQCAtNzYsOCArNzYsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwg
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpOwogCiBwcml2YXRlOgotICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBtX2V4cG9zZWRSZWN0OwotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3Vub2Jz
Y3VyZWRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2V4cG9zZWRDb250ZW50UmVjdDsK
KyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV91bm9ic2N1cmVkQ29udGVudFJlY3Q7CiAgICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczsK
ICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsKICAgICB1
aW50NjRfdCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEIHsgMCB9OwpAQCAtOTUsOCArOTUs
OCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8mIGEsIGNvbnN0IFZpc2libGVDb250ZQogewogICAgIC8vIE5vdGU6IHRoZSBjb21wYXJp
c29uIGRvZXNuJ3QgaW5jbHVkZSB0aW1lc3RhbXAgYW5kIHZlbG9jaXR5IHNpbmNlIHdlIGNhcmUg
YWJvdXQgZXF1YWxpdHkgYmFzZWQgb24gdGhlIG90aGVyIGRhdGEuCiAgICAgcmV0dXJuIGEuc2Nh
bGUoKSA9PSBiLnNjYWxlKCkKLSAgICAgICAgJiYgYS5leHBvc2VkUmVjdCgpID09IGIuZXhwb3Nl
ZFJlY3QoKQotICAgICAgICAmJiBhLnVub2JzY3VyZWRSZWN0KCkgPT0gYi51bm9ic2N1cmVkUmVj
dCgpCisgICAgICAgICYmIGEuZXhwb3NlZENvbnRlbnRSZWN0KCkgPT0gYi5leHBvc2VkQ29udGVu
dFJlY3QoKQorICAgICAgICAmJiBhLnVub2JzY3VyZWRDb250ZW50UmVjdCgpID09IGIudW5vYnNj
dXJlZENvbnRlbnRSZWN0KCkKICAgICAgICAgJiYgYS5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgp
ID09IGIuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKQogICAgICAgICAmJiBhLmhvcml6b250YWxW
ZWxvY2l0eSgpID09IGIuaG9yaXpvbnRhbFZlbG9jaXR5KCkKICAgICAgICAgJiYgYS52ZXJ0aWNh
bFZlbG9jaXR5KCkgPT0gYi52ZXJ0aWNhbFZlbG9jaXR5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA1N2NlOWE3OGE3MWU3ZjVmYjc3ZTgz
NDVmNmUxY2MzNWViMjY0MmVlLi5hZWMzZDg5YTAwNjQ5MTE2MjRiYmZlMzY3MWYyYzlkZjA1M2Ey
ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CkBAIC04NzEsNyArODcxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVmlld0V4cG9zZWRS
ZWN0KCkKICAgICAgICAgZXhwb3NlZFJlY3QgPSBDR1JlY3RVbmlvbihtX2NvbnRlbnRQcmVwYXJh
dGlvblJlY3QsIGV4cG9zZWRSZWN0KTsKIAogICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9w
YWdlLT5kcmF3aW5nQXJlYSgpKQotICAgICAgICBkcmF3aW5nQXJlYS0+c2V0RXhwb3NlZFJlY3Qo
bV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBXZWJDb3JlOjpGbG9hdFJlY3QoZXhwb3NlZFJlY3QpIDog
V2ViQ29yZTo6RmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7CisgICAgICAgIGRyYXdpbmdBcmVh
LT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBPcHRpb25hbDxXZWJD
b3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IE51bGxvcHQpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRDbGlwc1RvVmlzaWJsZVJlY3QoYm9vbCBjbGlwc1RvVmlzaWJsZVJlY3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggM2Q1
YjllMmUxZTg4NDA3Njk5MGMyYWJhMWVhNTAxZjA0YzMzZjZmZS4uYjBlNTE2NDQxOTZjOTI4MTU0
YjdiZjllMTY0ZjUyNWZkN2I5MDQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmNwcApAQCAtNDAsNyArNDAsNyBAQCBEcmF3aW5nQXJlYVByb3h5OjpE
cmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZSB0eXBlLCBXZWJQYWdlUHJveHkmIHdlYlBh
Z2VQcgogICAgICwgbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogICAgICwgbV9zaXplKHdl
YlBhZ2VQcm94eS52aWV3U2l6ZSgpKQogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAsIG1fZXhwb3Nl
ZFJlY3RDaGFuZ2VkVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRHJhd2luZ0FyZWFQcm94
eTo6ZXhwb3NlZFJlY3RDaGFuZ2VkVGltZXJGaXJlZCkKKyAgICAsIG1fdmlld0V4cG9zZWRSZWN0
Q2hhbmdlZFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkRyYXdpbmdBcmVhUHJveHk6OnZp
ZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKQogI2VuZGlmCiB7CiAgICAgbV93ZWJQYWdl
UHJveHkucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJhd2luZ0FyZWFQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS5wYWdlSUQoKSwgKnRo
aXMpOwpAQCAtNjMsMjcgKzYzLDI3IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eTo6c2V0U2l6ZShj
b25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBJbnRTaXplJiBsYXllclBvc2l0aW9uCiB9CiAKICNp
ZiBQTEFURk9STShNQUMpCi12b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldEV4cG9zZWRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgZXhwb3NlZFJlY3QpCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OnNldFZp
ZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVj
dCkKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9leHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0OworICAgIG1fdmlld0V4cG9zZWRS
ZWN0ID0gdmlld0V4cG9zZWRSZWN0OwogCi0gICAgaWYgKCFtX2V4cG9zZWRSZWN0Q2hhbmdlZFRp
bWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fZXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3RhcnRP
bmVTaG90KDApOworICAgIGlmICghbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3RhcnRPbmVTaG90
KDApOwogfQogCi12b2lkIERyYXdpbmdBcmVhUHJveHk6OmV4cG9zZWRSZWN0Q2hhbmdlZFRpbWVy
RmlyZWQoKQordm9pZCBEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGlt
ZXJGaXJlZCgpCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmIChtX2V4cG9zZWRSZWN0ID09IG1fbGFzdFNlbnRFeHBvc2VkUmVj
dCkKKyAgICBpZiAobV92aWV3RXhwb3NlZFJlY3QgPT0gbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVj
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpTZXRFeHBvc2VkUmVjdChtX2V4cG9zZWRSZWN0KSwgbV93
ZWJQYWdlUHJveHkucGFnZUlEKCkpOwotICAgIG1fbGFzdFNlbnRFeHBvc2VkUmVjdCA9IG1fZXhw
b3NlZFJlY3Q7CisgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRy
YXdpbmdBcmVhOjpTZXRWaWV3RXhwb3NlZFJlY3QobV92aWV3RXhwb3NlZFJlY3QpLCBtX3dlYlBh
Z2VQcm94eS5wYWdlSUQoKSk7CisgICAgbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IG1fdmll
d0V4cG9zZWRSZWN0OwogfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggOWE5ZTNiYTk5ZDE3ZjBhN2Nh
OGQ1OTM4NGM5Yzc0YzBkNDc0NjI5MC4uMDg3YWVlYjczMTA5Yzg2Y2I4ZDQ5ZWM1ZDhkNTAyNTNh
MDJmY2RhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC03NiwxMSArNzYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5z
aWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KIAogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0Jik7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9leHBvc2VkUmVjdDsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
dm9pZCBleHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCk7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KTsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmlld0V4cG9zZWRSZWN0OyB9CisgICAgdm9pZCB2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGlt
ZXJGaXJlZCgpOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0
b3IoKSB7IH0KQEAgLTEyOCw5ICsxMjYsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBp
bnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9
CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94
eT4gbV9leHBvc2VkUmVjdENoYW5nZWRUaW1lcjsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9l
eHBvc2VkUmVjdDsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9sYXN0U2VudEV4cG9zZWRSZWN0
OworICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHk+IG1fdmlld0V4cG9zZWRSZWN0
Q2hhbmdlZFRpbWVyOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gbV92aWV3RXhw
b3NlZFJlY3Q7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBtX2xhc3RTZW50Vmll
d0V4cG9zZWRSZWN0OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKICNlbmRpZgogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhNmRlNTMxZGJiOGViOTAzOTJk
NTE1ZjViZmE5ZDhmODFhZjI3YzI0Li41OWZjN2Q5YTZiYThjNmE4MDUyZTRmZDZmMjFiYTY3Mzc5
MWJhNGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00NDks
OCArNDQ5LDggQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGV4ZWN1dGVF
ZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2Fs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS5zY2FsZSgp
OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QoKSBj
b25zdCB7IHJldHVybiBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUuZXhwb3NlZFJlY3Qo
KTsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnVub2JzY3Vy
ZWRSZWN0KCk7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS5leHBv
c2VkQ29udGVudFJlY3QoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNj
dXJlZENvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlLnVub2JzY3VyZWRDb250ZW50UmVjdCgpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVZpc2li
bGVDb250ZW50UmVjdHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUsIGJv
b2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2
ZWx5LCBib29sIGFsbG93U2hyaW5rVG9GaXQsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBob3Jp
em9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFu
Z2VSYXRlKTsKICAgICB2b2lkIHJlc2VuZExhc3RWaXNpYmxlQ29udGVudFJlY3RzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGM1YWM1ODQxY2Q4ODViODQ4YmY3ZWFjYzkwZmNl
MmUxMmIyMWE0YmMuLjMxMTBhNjdjYmM2ZjRlMTkyMzBhY2E5OTNhZTIyMjg1ZjRhNGQ1MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC02MywxMCArNjMsOCBAQCBwcml2YXRlOgog
ICAgIC8vIE9uY2Ugd2UgaGF2ZSBvdGhlciBjYWxsYmFja3MsIGl0IG1heSBtYWtlIHNlbnNlIHRv
IGhhdmUgYSBiZWZvcmUtY29tbWl0L2FmdGVyLWNvbW1pdCBvcHRpb24uCiAgICAgdm9pZCBkaXNw
YXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNl
OjpFcnJvcik+KSBvdmVycmlkZTsKIAotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzY2FsZWRFeHBv
c2VkUmVjdCgpIGNvbnN0OwotCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0RXhwb3Nl
ZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRW
aWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogICAgIGZsb2F0IGluZGljYXRvclNjYWxlKFdlYkNvcmU6OkludFNpemUgY29udGVu
dHNTaXplKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBkMTA3YWFi
NWUwNzEyMzA0MjZmMGQ1MzBiODI5ZWMzOGQyMmRlOGEyLi43NGU1YjA2OWM3MmI5NmZjMTZiOTM5
MTNkMjQ5OWZlOTlhNzU4N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0x
NTcsMTggKzE1Nyw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlk
VXBkYXRlR2VvbWV0cnkoKQogICAgICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAotRmxv
YXRSZWN0IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNjYWxlZEV4cG9zZWRSZWN0
KCkgY29uc3QKLXsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIG1fd2ViUGFnZVByb3h5
LmV4cG9zZWRDb250ZW50UmVjdCgpOwotI2Vsc2UKLSAgICBGbG9hdFJlY3Qgc2NhbGVkRXhwb3Nl
ZFJlY3QgPSBleHBvc2VkUmVjdCgpOwotICAgIGZsb2F0IHNjYWxlID0gMSAvIG1fd2ViUGFnZVBy
b3h5LnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxl
LCBzY2FsZSk7Ci0gICAgcmV0dXJuIHNjYWxlZEV4cG9zZWRSZWN0OwotI2VuZGlmCi19Ci0KIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2VuZFVwZGF0ZUdlb21ldHJ5KCkK
IHsKICAgICBtX2xhc3RTZW50U2l6ZSA9IG1fc2l6ZTsKQEAgLTI1OSw5ICsyNDcsOSBAQCB2b2lk
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
RW5kKHVpbnQ2NF90IGxheWVySQogc3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvckluc2V0ID0g
MTA7CiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OnNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcikKK3ZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogewotICAgIERyYXdpbmdB
cmVhUHJveHk6OnNldEV4cG9zZWRSZWN0KHIpOworICAgIERyYXdpbmdBcmVhUHJveHk6OnNldFZp
ZXdFeHBvc2VkUmVjdCh2aWV3RXhwb3NlZFJlY3QpOwogICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9y
UG9zaXRpb24oKTsKIH0KICNlbmRpZgpAQCAtMjc0LDcgKzI2MiwxMCBAQCBGbG9hdFBvaW50IFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmluZGljYXRvckxvY2F0aW9uKCkgY29uc3QK
ICAgICAgICAgZmxvYXQgYWJzb2x1dGVJbnNldCA9IGluZGljYXRvckluc2V0IC8gbV93ZWJQYWdl
UHJveHkuZGlzcGxheWVkQ29udGVudFNjYWxlKCk7CiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24g
Kz0gRmxvYXRTaXplKGFic29sdXRlSW5zZXQsIGFic29sdXRlSW5zZXQpOwogI2Vsc2UKLSAgICAg
ICAgRmxvYXRQb2ludCB0aWxlZE1hcExvY2F0aW9uID0gZXhwb3NlZFJlY3QoKS5sb2NhdGlvbigp
OworICAgICAgICBGbG9hdFBvaW50IHRpbGVkTWFwTG9jYXRpb247CisgICAgICAgIGlmICh2aWV3
RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gPSB2aWV3RXhwb3Nl
ZFJlY3QoKS52YWx1ZSgpLmxvY2F0aW9uKCk7CisKICAgICAgICAgdGlsZWRNYXBMb2NhdGlvbiAr
PSBGbG9hdFNpemUoaW5kaWNhdG9ySW5zZXQsIGluZGljYXRvckluc2V0KTsKICAgICAgICAgZmxv
YXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgICAg
IHRpbGVkTWFwTG9jYXRpb24uc2NhbGUoc2NhbGUsIHNjYWxlKTsKQEAgLTMzOSw3ICszMzAsMTUg
QEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGlj
YXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICAgICBbbV9leHBvc2VkUmVjdEluZGljYXRvckxh
eWVyIHNldEJvcmRlcldpZHRoOmNvdW50ZXJTY2FsZWRCb3JkZXJdOwogCiAgICAgaWYgKG1fd2Vi
UGFnZVByb3h5LmRlbGVnYXRlc1Njcm9sbGluZygpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzY2Fs
ZWRFeHBvc2VkUmVjdCA9IHRoaXMtPnNjYWxlZEV4cG9zZWRSZWN0KCk7CisgICAgICAgIEZsb2F0
UmVjdCBzY2FsZWRFeHBvc2VkUmVjdDsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIHNjYWxl
ZEV4cG9zZWRSZWN0ID0gbV93ZWJQYWdlUHJveHkuZXhwb3NlZENvbnRlbnRSZWN0KCk7CisjZWxz
ZQorICAgICAgICBpZiAodmlld0V4cG9zZWRSZWN0KCkpCisgICAgICAgICAgICBzY2FsZWRFeHBv
c2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdCgpLnZhbHVlKCk7CisgICAgICAgIGZsb2F0IHNjYWxl
ID0gMSAvIG1fd2ViUGFnZVByb3h5LnBhZ2VTY2FsZUZhY3RvcigpOworICAgICAgICBzY2FsZWRF
eHBvc2VkUmVjdC5zY2FsZShzY2FsZSwgc2NhbGUpOworI2VuZGlmCiAgICAgICAgIFttX2V4cG9z
ZWRSZWN0SW5kaWNhdG9yTGF5ZXIgc2V0UG9zaXRpb246c2NhbGVkRXhwb3NlZFJlY3QubG9jYXRp
b24oKV07CiAgICAgICAgIFttX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgc2V0Qm91bmRzOkZs
b2F0UmVjdChGbG9hdFBvaW50KCksIHNjYWxlZEV4cG9zZWRSZWN0LnNpemUoKSldOwogICAgIH0g
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGVjNGEyYWU3OGEy
OGQ0ZDc3YzdhODkwODNmNzdmMTE2NDgxZjA1ODEuLjQwN2MzY2MxMGQ0OThhOTQ3YmRhYWQxZTdj
OWI0YWY1ZGZlYTUyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0x
MzQzLDcgKzEzNDMsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9D
b21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5z
ZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNjcm9sbGluZyk7CiAgICAgbV9mcmFt
ZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCgh
d2ViUGFnZS0+c2hvdWxkRXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5z
ZXRFeHBvc2VkUmVjdCh3ZWJQYWdlLT5kcmF3aW5nQXJlYSgpLT5leHBvc2VkUmVjdCgpKTsKKyAg
ICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRWaWV3RXhwb3NlZFJlY3Qod2ViUGFn
ZS0+ZHJhd2luZ0FyZWEoKS0+dmlld0V4cG9zZWRSZWN0KCkpOwogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldERlbGVnYXRlc1Nj
cm9sbGluZyh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmgKaW5kZXggOTRjNGNhNTQ2YjUyZWU3OWEwY2VkZDQ0Njg3ZGUxMjY2NGMzNjVl
OS4uOWQ4M2UwNjQ2NzQ2YjJhMjhmN2QwYTc3YmY5MTVjNGExZGRjM2RmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTg4LDggKzg4
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
ID0gMDsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UmVjdD4pID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIGFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgLypsYXllcklEKi8sIGNvbnN0IFN0
cmluZyYgLyprZXkqLywgZG91YmxlIC8qc3RhcnRUaW1lKi8pIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCAvKmxheWVySUQqLywgY29uc3Qg
U3RyaW5nJiAvKmtleSovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYWRkRmVuY2UoY29uc3QgV2Vi
Q29yZTo6TWFjaFNlbmRSaWdodCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IDkwOTc3MWQ2
MjhmZDA0M2I0OTUyNDEwZWFiMGY4OGI3NTEzMWQ1NjUuLjcyODliNjNjYzQyZjM2ZmEyZTQzMDRj
NmRmM2VlZmYwOGE2NDRhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAg
bWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgewogICAgIFVwZGF0ZUdlb21ldHJ5KFdlYkNvcmU6Oklu
dFNpemUgdmlld1NpemUsIFdlYkNvcmU6OkludFNpemUgbGF5ZXJQb3NpdGlvbiwgYm9vbCBmbHVz
aFN5bmNocm9ub3VzbHksIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgZmVuY2VQb3J0KQogICAgIFNl
dERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQogICAgIFNldENvbG9y
U3BhY2Uoc3RydWN0IFdlYktpdDo6Q29sb3JTcGFjZURhdGEgY29sb3JTcGFjZSkKLSAgICBTZXRF
eHBvc2VkUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QpCisgICAgU2V0Vmlld0V4
cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQog
CiAgICAgQWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9p
bnQgb3JpZ2luKQogICAgIENvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3Jl
OjpGbG9hdFBvaW50IG9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjODRkNGYzNGIxZmVmZmY3ZDdjYzkyYjAx
ZWQyOWM3YzZlNDYwY2ViLi44MzE5ZDhkZWY5NjU2NTcyNmFkNzdhN2U0YmVhNjU4NzE1NDBkZTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCkBAIC0yOTMyLDExICsyOTMyLDExIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlz
aWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNp
CiAgICAgICAgICAgICBtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNU
aW1lc3RhbXAgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHN0YXRpY19jYXN0PHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHM6OnJlcD4ob2xkZXN0VGltZXN0YW1wICogMTAwMCkpOwogICAgIH0K
IAotICAgIEZsb2F0UmVjdCBleHBvc2VkUmVjdCA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8uZXhwb3NlZFJlY3QoKTsKLSAgICBGbG9hdFJlY3QgYWRqdXN0ZWRFeHBvc2VkUmVjdCA9IGFk
anVzdEV4cG9zZWRSZWN0Rm9yQm91bmRlZFNjYWxlKGV4cG9zZWRSZWN0LCB2aXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLnNjYWxlKCksIGJvdW5kZWRTY2FsZSk7Ci0gICAgbV9kcmF3aW5nQXJl
YS0+c2V0RXhwb3NlZENvbnRlbnRSZWN0KGFkanVzdGVkRXhwb3NlZFJlY3QpOworICAgIEZsb2F0
UmVjdCBleHBvc2VkQ29udGVudFJlY3QgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmV4
cG9zZWRDb250ZW50UmVjdCgpOworICAgIEZsb2F0UmVjdCBhZGp1c3RlZEV4cG9zZWRDb250ZW50
UmVjdCA9IGFkanVzdEV4cG9zZWRSZWN0Rm9yQm91bmRlZFNjYWxlKGV4cG9zZWRDb250ZW50UmVj
dCwgdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2FsZSgpLCBib3VuZGVkU2NhbGUpOwor
ICAgIG1fZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRDb250ZW50UmVjdChhZGp1c3RlZEV4cG9zZWRD
b250ZW50UmVjdCk7CiAKLSAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQ
b2ludCh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnVub2JzY3VyZWRSZWN0KCkubG9jYXRp
b24oKSk7CisgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQodmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkQ29udGVudFJlY3QoKS5sb2NhdGlv
bigpKTsKIAogICAgIGZsb2F0IGZsb2F0Qm91bmRlZFNjYWxlID0gYm91bmRlZFNjYWxlOwogICAg
IGJvb2wgaGFzU2V0UGFnZVNjYWxlID0gZmFsc2U7CkBAIC0yOTYzLDcgKzI5NjMsNyBAQCB2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbyYgdmlzaQogICAgIGlmIChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRD
YW5JZ25vcmVTY2FsaW5nQ29uc3RyYWludHMobV9pZ25vcmVWaWV3cG9ydFNjYWxpbmdDb25zdHJh
aW50cyAmJiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmFsbG93U2hyaW5rVG9GaXQoKSkp
CiAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIAotICAgIGZyYW1lVmll
dy5zZXRVbm9ic2N1cmVkQ29udGVudFNpemUodmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby51
bm9ic2N1cmVkUmVjdCgpLnNpemUoKSk7CisgICAgZnJhbWVWaWV3LnNldFVub2JzY3VyZWRDb250
ZW50U2l6ZSh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLnVub2JzY3VyZWRDb250ZW50UmVj
dCgpLnNpemUoKSk7CiAKICAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5ID0gdmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKTsKICAgICBkb3VibGUgdmVy
dGljYWxWZWxvY2l0eSA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udmVydGljYWxWZWxv
Y2l0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDc0NDcxOGFh
YjkwMGQ1OWE5M2Y5NWMzY2QwMzcyMDQ2MDQ4ODFjNTkuLmRlM2NjMjg3NDljNTY2MGMzOTQ5NjM5
Yjg5YjAwZWYwNWRlOGU1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgK
QEAgLTg4LDggKzg4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJy
aWRlOwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QpIG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdDsgfQorICAgIHZv
aWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJy
aWRlOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsgfQogCiAg
ICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGNv
bnN0IFN0cmluZyYga2V5LCBkb3VibGUgc3RhcnRUaW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYg
a2V5KSBvdmVycmlkZTsKQEAgLTE0Niw4ICsxNDYsOCBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3Nl
ZFJlY3Q7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fc2Nyb2xsZWRFeHBvc2VkUmVjdDsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OworICAgIE9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsKIAog
ICAgIFdlYkNvcmU6OlRpbWVyIG1fbGF5ZXJGbHVzaFRpbWVyOwogICAgIGJvb2wgbV9pc0ZsdXNo
aW5nU3VzcGVuZGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXgg
YTdhNGYwMzM4NWM3N2Q4MGQ4MmRkZDk0OTVkYzYxMmY5OWZjMTJkNC4uMzcxZjYxNDM0OTNlMzg3
ZDRlNGYwOWE5N2ZlNjY5OTFkM2I0M2MzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLm1tCkBAIC01OCw4ICs1OCw2IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXCiAgICAg
OiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUsIHdlYlBhZ2UpCiAg
ICAgLCBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQoc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXll
clRyZWVDb250ZXh0Pih3ZWJQYWdlKSkKICAgICAsIG1fcm9vdExheWVyKEdyYXBoaWNzTGF5ZXI6
OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcykpCi0gICAgLCBtX2V4cG9zZWRS
ZWN0KEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkpCi0gICAgLCBtX3Njcm9sbGVkRXhwb3NlZFJl
Y3QoRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSkKICAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKCp0
aGlzLCAmUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKQogICAgICwgbV9p
c0ZsdXNoaW5nU3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9oYXNEZWZlcnJlZEZsdXNoKGZhbHNl
KQpAQCAtMjMxLDkgKzIyOSw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvCiAgICAgbV9yZW1v
dGVMYXllclRyZWVDb250ZXh0LT5hbmltYXRpb25EaWRFbmQobGF5ZXJJRCwga2V5KTsKIH0KIAot
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QoY29uc3QgRmxv
YXRSZWN0JiBleHBvc2VkUmVjdCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNl
dFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2Vk
UmVjdCkKIHsKLSAgICBtX2V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CisgICAgbV92aWV3RXhw
b3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7CiAgICAgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVj
dCgpOwogfQogCkBAIC0yNjYsMTYgKzI2NCwxNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjp1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KCkKICAgICBpZiAoIWZyYW1lVmlldykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zY3JvbGxlZEV4cG9zZWRSZWN0ID0gbV9leHBvc2Vk
UmVjdDsKKyAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0ID0gbV92aWV3RXhwb3NlZFJlY3Q7
CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIGlmICghbV9leHBvc2VkUmVjdC5pc0luZmluaXRl
KCkpIHsKKyAgICBpZiAobV92aWV3RXhwb3NlZFJlY3QpIHsKICAgICAgICAgU2Nyb2xsT2Zmc2V0
IHNjcm9sbE9mZnNldCA9IGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGZyYW1l
Vmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAgIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdC5t
b3ZlQnkoc2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52
YWx1ZSgpLm1vdmVCeShzY3JvbGxPZmZzZXQpOwogICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWVW
aWV3LT5zZXRFeHBvc2VkUmVjdChtX3Njcm9sbGVkRXhwb3NlZFJlY3QpOworICAgIGZyYW1lVmll
dy0+c2V0Vmlld0V4cG9zZWRSZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpOwogfQogCiBU
aWxlZEJhY2tpbmcqIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjptYWluRnJhbWVUaWxlZEJh
Y2tpbmcoKSBjb25zdApAQCAtMzU1LDkgKzM1MywxMCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjpmbHVzaExheWVycygpCiAgICAgbV93ZWJQYWdlLmxheW91dElmTmVlZGVkKCk7
CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXplKTsK
LSAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QobV9zY3JvbGxlZEV4cG9zZWRSZWN0KTsKKyAgICBp
ZiAobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJz
ZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7CiAKLSNpZiBUQVJHRVRfT1Nf
SVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKQorI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCiAgICAgUmVmUHRyPFdlYlBh
Z2U+IHJldGFpbmVkUGFnZSA9ICZtX3dlYlBhZ2U7CiAgICAgW0NBVHJhbnNhY3Rpb24gYWRkQ29t
bWl0SGFuZGxlcjpbcmV0YWluZWRQYWdlXSB7CiAgICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9
IHJldGFpbmVkUGFnZS0+Y29yZVBhZ2UoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5oCmluZGV4IGI5YTdmZWZkYzkwYTlmMGZhYjQ1NDI1ZTViZDZjZWI5YWIxNzYx
OTQuLjBjOTk1NzIxOTJjNTM0OWNjMzIxY2ViNTQyMThkNTdlMmZjZmRiNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTcyLDggKzcyLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KSBvdmVycmlkZTsKICAgICB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldEV4cG9zZWRSZWN0KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCBleHBvc2VkUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsZWRFeHBvc2Vk
UmVjdDsgfQorICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UmVjdD4pIG92ZXJyaWRlOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmll
d0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZFZpZXdFeHBv
c2VkUmVjdDsgfQogCiAgICAgYm9vbCBzdXBwb3J0c0FzeW5jU2Nyb2xsaW5nKCkgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCkBAIC0xMzMsOCArMTMzLDggQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV9pc1BhaW50aW5nU3VzcGVuZGVkOwogCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhw
b3NlZFJlY3Q7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fc2Nyb2xsZWRFeHBvc2VkUmVjdDsK
KyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OworICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsK
IAogICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplOwog
ICAgIGJvb2wgbV9pblVwZGF0ZUdlb21ldHJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEubW0KaW5kZXggZTdiNmEyMTRkMmEyYzRkNzUyMjI4NTM3MDBiNzU4NjkyYjY0
ZmIyYi4uZjg2ZWVmNDYxM2RmY2QyMjlkNWI4MTBjZTJjNWIwMjEwZWU2MjBiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC03OCw4ICs3OCw2IEBAIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YShXZWJQYWdlJiB3ZWJQYWdlLCBjCiAgICAgLCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4oZmFs
c2UpCiAgICAgLCBtX2xheWVyRmx1c2hTY2hlZHVsZXIodGhpcykKICAgICAsIG1faXNQYWludGlu
Z1N1c3BlbmRlZCghKHBhcmFtZXRlcnMudmlld1N0YXRlICYgVmlld1N0YXRlOjpJc1Zpc2libGUp
KQotICAgICwgbV9leHBvc2VkUmVjdChGbG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKQotICAgICwg
bV9zY3JvbGxlZEV4cG9zZWRSZWN0KEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkpCiAgICAgLCBt
X3RyYW5zaWVudFpvb21TY2FsZSgxKQogICAgICwgbV9zZW5kRGlkVXBkYXRlVmlld1N0YXRlVGlt
ZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmRpZFVwZGF0ZVZpZXdTdGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBtX3dhbnRzRGlkVXBkYXRlVmll
d1N0YXRlKGZhbHNlKQpAQCAtNDEzLDcgKzQxMSw4IEBAIGJvb2wgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAgICAgICAgfQogCiAgICAgICAgIEZsb2F0UmVj
dCB2aXNpYmxlUmVjdCA9IFttX2hvc3RpbmdMYXllciBmcmFtZV07Ci0gICAgICAgIHZpc2libGVS
ZWN0LmludGVyc2VjdChtX3Njcm9sbGVkRXhwb3NlZFJlY3QpOworICAgICAgICBpZiAobV9zY3Jv
bGxlZFZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCht
X3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOwogCiAgICAgICAgIC8vIEJlY2F1c2Ug
b3VyIHZpZXctcmVsYXRpdmUgb3ZlcmxheSByb290IGxheWVyIGlzIG5vdCBhdHRhY2hlZCB0byB0
aGUgbWFpbiBHcmFwaGljc0xheWVyIHRyZWUsIHdlIG5lZWQgdG8gZmx1c2ggaXQgbWFudWFsbHku
CiAgICAgICAgIGlmIChtX3ZpZXdPdmVybGF5Um9vdExheWVyKQpAQCAtNDk2LDkgKzQ5NSw5IEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlc3VtZVBhaW50aW5nKCkKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25O
YW1lOkAiTlNDQVZpZXdSZW5kZXJEaWRSZXN1bWVOb3RpZmljYXRpb24iIG9iamVjdDpuaWwgdXNl
ckluZm86W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdDptX2hvc3RpbmdMYXllci5n
ZXQoKSBmb3JLZXk6QCJsYXllciJdXTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkUmVjdCkKK3Zv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFZpZXdFeHBvc2VkUmVjdChPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKIHsKLSAgICBtX2V4cG9z
ZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CisgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3Nl
ZFJlY3Q7CiAgICAgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogfQogCkBAIC01MDgsMTYg
KzUwNywxNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVTY3Jv
bGxlZEV4cG9zZWRSZWN0KCkKICAgICBpZiAoIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9zY3JvbGxlZEV4cG9zZWRSZWN0ID0gbV9leHBvc2VkUmVjdDsKKyAgICBtX3Njcm9s
bGVkVmlld0V4cG9zZWRSZWN0ID0gbV92aWV3RXhwb3NlZFJlY3Q7CiAKICNpZiAhUExBVEZPUk0o
SU9TKQotICAgIGlmICghbV9leHBvc2VkUmVjdC5pc0luZmluaXRlKCkpIHsKKyAgICBpZiAobV92
aWV3RXhwb3NlZFJlY3QpIHsKICAgICAgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCA9IGZy
YW1lVmlldy0+c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRp
b24oKSk7Ci0gICAgICAgIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdC5tb3ZlQnkoc2Nyb2xsT2Zmc2V0
KTsKKyAgICAgICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpLm1vdmVCeShzY3Jv
bGxPZmZzZXQpOwogICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWVWaWV3LT5zZXRFeHBvc2VkUmVj
dChtX3Njcm9sbGVkRXhwb3NlZFJlY3QpOworICAgIGZyYW1lVmlldy0+c2V0Vmlld0V4cG9zZWRS
ZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwg
Y29uc3QgSW50U2l6ZSYgbGF5ZXJQb3NpdGlvbiwgYm9vbCBmbHVzaFN5bmNocm9ub3VzbHksIGNv
bnN0IFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkK
</data>
<flag name="review"
          id="300096"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>