<?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>220765</bug_id>
          
          <creation_ts>2021-01-20 05:59:58 -0800</creation_ts>
          <short_desc>Use ScrollSnapOffsetsInfo in ScrollSnapAnimatorState</short_desc>
          <delta_ts>2021-07-07 07:17:56 -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>Scrolling</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>145099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1720868</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-01-20 05:59:58 -0800</bug_when>
    <thetext>ScrollSnapAnimatorState should use ScrollSnapOffsetInfo to hold information about scroll snap points. This is also useful in order to continue to abstract away the fact that snap points are a collection of one-dimensional offsets. They will eventually be a set of two dimensional points.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720869</commentid>
    <comment_count>1</comment_count>
      <attachid>417963</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-01-20 06:20:07 -0800</bug_when>
    <thetext>Created attachment 417963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720935</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-20 11:12:23 -0800</bug_when>
    <thetext>Committed r271658: &lt;https://trac.webkit.org/changeset/271658&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417963.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720936</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-20 11:13:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/73412086&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417963</attachid>
            <date>2021-01-20 06:20:07 -0800</date>
            <delta_ts>2021-01-20 11:12:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220765-20210120152006.patch</filename>
            <type>text/plain</type>
            <size>23371</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE0OThkOGI5MmZmZGE0
Yjg2ZGVjMmE0ZjY0NDI3NDc2Yjg3MzAzZC4uYTI1ZGFiZTAwNzQyYWRmNzNlYmMwN2M5YmMyODMy
YTA4YWI1NDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTAxLTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgU2Nyb2xs
U25hcE9mZnNldHNJbmZvIGluIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA3NjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZSB0byB1c2UgU2Nyb2xsU25hcE9mZnNldHNJbmZvLgorCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6IE5vIGxvbmdlciB1c2Ug
Z2V0dGVycyBmb3IgdmVydGljYWwKKyAgICAgICAgYW5kIGhvcml6b250YWwgc25hcCBpbmZvcm1h
dGlvbiBhbmQgdXNlIHRoZSBTY3JvbGxTbmFwT2Zmc2V0c0luZm8gZ2V0dGVyIG9uIFNjcm9sbGFi
bGVBcmVhLgorICAgICAgICAoV2ViQ29yZTo6c2V0U3RhdGVTY3JvbGxpbmdOb2RlU25hcE9mZnNl
dHNBc0Zsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnNldFNjcm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFNuYXBQcm9wZXJ0aWVz
V2l0aEZyYW1lVmlldyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNl
dHNJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwT2Zmc2V0c0luZm86OmlzRW1w
dHkgY29uc3QpOiBBZGRlZCB0aGlzIGhlbHBlciBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxTbmFwT2Zmc2V0c0luZm86Om9mZnNldHNGb3JBeGlzIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwT2Zmc2V0c0luZm86Om9mZnNldFJhbmdlc0ZvckF4aXMg
Y29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c25hcE9mZnNldEluZm8gY29uc3QpOiBB
ZGRlZCB0aGlzIGdldHRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpuZWFy
ZXN0QWN0aXZlU25hcFBvaW50KTogTm8gbG9uZ2VyIHVzZSBkZWxldGVkIGdldHRlcnMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbFNuYXBPZmZzZXRzIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpob3Jpem9udGFs
U25hcE9mZnNldFJhbmdlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6dmVydGljYWxTbmFwT2Zmc2V0UmFuZ2VzIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjp2ZXJ0aWNhbFNuYXBPZmZzZXRzIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyOjp1cGRhdGVTY3JvbGxTbmFwU3RhdGUpOiBNb2RpZmllZCB0aGlz
IG1ldGhvZCB0byB1cGRhdGUKKyAgICAgICAgYWxsIHNjcm9sbCBzbmFwIGluZm9ybWF0aW9uIGF0
IG9uY2UuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjpzbmFwT2Zmc2V0
c0ZvckF4aXMgY29uc3QpOiBNb2RpZmllZCB0byB1c2UgbmV3IFNjcm9sbFNuYXBPZmZzZXRzSW5m
byBtZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6c25h
cE9mZnNldFJhbmdlc0ZvckF4aXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFNuYXBBbmltYXRvclN0YXRlOjpzZXRTbmFwT2Zmc2V0SW5mbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldFNuYXBPZmZzZXRzQW5kUG9z
aXRpb25SYW5nZXNGb3JBeGlzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGUubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZTo6c2V0dXBBbmltYXRpb25Gb3JTdGF0ZSk6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Omdlc3R1
cmVTaG91bGRCZWdpblNuYXApOiBVc2UgbmV3IFNjcm9sbFNuYXBPZmZzZXRzSW5mbyBnZXR0ZXIu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6YWxsb3dzVmVydGljYWxTdHJl
dGNoaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
Yzo6YWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNjcm9s
bFNuYXBPZmZzZXRzKTogRGl0dG8uCisKIDIwMjEtMDEtMTggIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1tdWx0aWNvbF0gT09NIHdpdGgg
MXB4IGhlaWdodCBjb2x1bW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDZhOWViYjNlMmI2
NGY4YzNlNjdmNjcyM2ZlZTQ1OTY5YTk1NDY3Y2IuLmVkNTZiYjY3MDQ3MWZiZTdiNmQyZmEwZTEy
ZDM4ZWM4NzdmYzg1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC05MiwyMCArOTIsMjIg
QEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpoYW5kbGVXaGVlbEV2ZW50UGhhc2Uo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgUGwKICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19TQ1JP
TExfU05BUCkKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRTdGF0ZVNjcm9sbGluZ05vZGVTbmFwT2Zm
c2V0c0FzRmxvYXQoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlLCBTY3JvbGxFdmVu
dEF4aXMgYXhpcywgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+KiBzbmFwT2Zmc2V0cywgY29uc3Qg
VmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+Piogc25hcE9mZnNldFJhbmdlcywg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0U3RhdGVTY3Jv
bGxpbmdOb2RlU25hcE9mZnNldHNBc0Zsb2F0KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYg
bm9kZSwgU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGNvbnN0IFNjcm9sbFNuYXBPZmZzZXRzSW5mbzxM
YXlvdXRVbml0Piogb2Zmc2V0SW5mbywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7CiAgICAg
Ly8gRklYTUU6IEluY29ycG9yYXRlIGN1cnJlbnQgcGFnZSBzY2FsZSBmYWN0b3IgaW4gc25hcHBp
bmcgdG8gZGV2aWNlIHBpeGVsLiBQZXJoYXBzIHdlIHNob3VsZCBqdXN0IGNvbnZlcnQgdG8gZmxv
YXQgaGVyZSBhbmQgbGV0IFVJIHByb2Nlc3MgZG8gdGhlIHBpeGVsIHNuYXBwaW5nPwogICAgIFZl
Y3RvcjxmbG9hdD4gc25hcE9mZnNldHNBc0Zsb2F0OwotICAgIGlmIChzbmFwT2Zmc2V0cykgewot
ICAgICAgICBzbmFwT2Zmc2V0c0FzRmxvYXQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzbmFwT2Zm
c2V0cy0+c2l6ZSgpKTsKLSAgICAgICAgZm9yIChhdXRvJiBvZmZzZXQgOiAqc25hcE9mZnNldHMp
CisgICAgaWYgKG9mZnNldEluZm8pIHsKKyAgICAgICAgY29uc3QgYXV0byYgb2Zmc2V0cyA9IG9m
ZnNldEluZm8tPm9mZnNldHNGb3JBeGlzKGF4aXMpOworICAgICAgICBzbmFwT2Zmc2V0c0FzRmxv
YXQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShvZmZzZXRzLnNpemUoKSk7CisgICAgICAgIGZvciAo
YXV0byYgb2Zmc2V0IDogb2Zmc2V0cykKICAgICAgICAgICAgIHNuYXBPZmZzZXRzQXNGbG9hdC51
bmNoZWNrZWRBcHBlbmQocm91bmRUb0RldmljZVBpeGVsKG9mZnNldCwgZGV2aWNlU2NhbGVGYWN0
b3IsIGZhbHNlKSk7CiAgICAgfQogCiAgICAgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPGZsb2F0
Pj4gc25hcE9mZnNldFJhbmdlc0FzRmxvYXQ7Ci0gICAgaWYgKHNuYXBPZmZzZXRSYW5nZXMpIHsK
LSAgICAgICAgc25hcE9mZnNldFJhbmdlc0FzRmxvYXQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShz
bmFwT2Zmc2V0UmFuZ2VzLT5zaXplKCkpOwotICAgICAgICBmb3IgKGF1dG8mIHJhbmdlIDogKnNu
YXBPZmZzZXRSYW5nZXMpCisgICAgaWYgKG9mZnNldEluZm8pIHsKKyAgICAgICAgY29uc3QgYXV0
byYgc25hcE9mZnNldFJhbmdlcyA9IG9mZnNldEluZm8tPm9mZnNldFJhbmdlc0ZvckF4aXMoYXhp
cyk7CisgICAgICAgIHNuYXBPZmZzZXRSYW5nZXNBc0Zsb2F0LnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkoc25hcE9mZnNldFJhbmdlcy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlIDog
c25hcE9mZnNldFJhbmdlcykKICAgICAgICAgICAgIHNuYXBPZmZzZXRSYW5nZXNBc0Zsb2F0LnVu
Y2hlY2tlZEFwcGVuZCh7IHJvdW5kVG9EZXZpY2VQaXhlbChyYW5nZS5zdGFydCwgZGV2aWNlU2Nh
bGVGYWN0b3IsIGZhbHNlKSwgcm91bmRUb0RldmljZVBpeGVsKHJhbmdlLmVuZCwgZGV2aWNlU2Nh
bGVGYWN0b3IsIGZhbHNlKSB9KTsKICAgICB9CiAgICAgaWYgKGF4aXMgPT0gU2Nyb2xsRXZlbnRB
eGlzOjpIb3Jpem9udGFsKSB7CkBAIC03MTIsOCArNzE0LDggQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3Jv
bGxpbmcKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgc2Nyb2xsYWJsZUFyZWEu
dXBkYXRlU25hcE9mZnNldHMoKTsKLSAgICBzZXRTdGF0ZVNjcm9sbGluZ05vZGVTbmFwT2Zmc2V0
c0FzRmxvYXQoc2Nyb2xsaW5nTm9kZSwgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBzY3Jv
bGxhYmxlQXJlYS5ob3Jpem9udGFsU25hcE9mZnNldHMoKSwgc2Nyb2xsYWJsZUFyZWEuaG9yaXpv
bnRhbFNuYXBPZmZzZXRSYW5nZXMoKSwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAg
ICBzZXRTdGF0ZVNjcm9sbGluZ05vZGVTbmFwT2Zmc2V0c0FzRmxvYXQoc2Nyb2xsaW5nTm9kZSwg
U2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTbmFwT2Zm
c2V0cygpLCBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNuYXBPZmZzZXRSYW5nZXMoKSwgbV9wYWdl
LT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBzZXRTdGF0ZVNjcm9sbGluZ05vZGVTbmFwT2Zm
c2V0c0FzRmxvYXQoc2Nyb2xsaW5nTm9kZSwgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBz
Y3JvbGxhYmxlQXJlYS5zbmFwT2Zmc2V0SW5mbygpLCBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9y
KCkpOworICAgIHNldFN0YXRlU2Nyb2xsaW5nTm9kZVNuYXBPZmZzZXRzQXNGbG9hdChzY3JvbGxp
bmdOb2RlLCBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCAgc2Nyb2xsYWJsZUFyZWEuc25hcE9m
ZnNldEluZm8oKSwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICBzY3JvbGxpbmdO
b2RlLnNldEN1cnJlbnRIb3Jpem9udGFsU25hcFBvaW50SW5kZXgoc2Nyb2xsYWJsZUFyZWEuY3Vy
cmVudEhvcml6b250YWxTbmFwUG9pbnRJbmRleCgpKTsKICAgICBzY3JvbGxpbmdOb2RlLnNldEN1
cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KHNjcm9sbGFibGVBcmVhLmN1cnJlbnRWZXJ0aWNh
bFNuYXBQb2ludEluZGV4KCkpOwogI2VuZGlmCkBAIC05MDcsOCArOTA5LDggQEAgYm9vbCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpIGMKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Ny
b2xsU25hcFByb3BlcnRpZXNXaXRoRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3
KQogewogICAgIGlmIChhdXRvIG5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZT4obV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklEKGZyYW1lVmll
dy5zY3JvbGxpbmdOb2RlSUQoKSkpKSB7Ci0gICAgICAgIHNldFN0YXRlU2Nyb2xsaW5nTm9kZVNu
YXBPZmZzZXRzQXNGbG9hdCgqbm9kZSwgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBmcmFt
ZVZpZXcuaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCksIGZyYW1lVmlldy5ob3Jpem9udGFsU25hcE9m
ZnNldFJhbmdlcygpLCBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICBzZXRT
dGF0ZVNjcm9sbGluZ05vZGVTbmFwT2Zmc2V0c0FzRmxvYXQoKm5vZGUsIFNjcm9sbEV2ZW50QXhp
czo6VmVydGljYWwsIGZyYW1lVmlldy52ZXJ0aWNhbFNuYXBPZmZzZXRzKCksIGZyYW1lVmlldy52
ZXJ0aWNhbFNuYXBPZmZzZXRSYW5nZXMoKSwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsK
KyAgICAgICAgc2V0U3RhdGVTY3JvbGxpbmdOb2RlU25hcE9mZnNldHNBc0Zsb2F0KCpub2RlLCBT
Y3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGZyYW1lVmlldy5zbmFwT2Zmc2V0SW5mbygpLCBt
X3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgICAgICBzZXRTdGF0ZVNjcm9sbGluZ05v
ZGVTbmFwT2Zmc2V0c0FzRmxvYXQoKm5vZGUsIFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIGZy
YW1lVmlldy5zbmFwT2Zmc2V0SW5mbygpLCBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOwog
ICAgICAgICBub2RlLT5zZXRDdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4KGZyYW1lVmll
dy5jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4KCkpOwogICAgICAgICBub2RlLT5zZXRD
dXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleChmcmFtZVZpZXcuY3VycmVudFZlcnRpY2FsU25h
cFBvaW50SW5kZXgoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaAppbmRleCBkNWJhNzYzZjljYTRmNzkzYWNm
MDI3MDRjZTlkNDlhMmE2NzNkZjhjLi40OGQ3OWJmYWIwOWYwYjMxOTBjMzMxYjg0ZTFmMWVhMzcw
ZmFlMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxT
bmFwT2Zmc2V0c0luZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxTbmFwT2Zmc2V0c0luZm8uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCiAKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlw
ZXMuaCIKICNpbmNsdWRlICJTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCIKICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Nyw2ICs1OCwyMSBAQCBz
dHJ1Y3QgU2Nyb2xsU25hcE9mZnNldHNJbmZvIHsKICAgICAvLyB3aGVyZSB0aGUgc25hcCBwb3J0
IGZpdHMgd2l0aGluIHRoZSBzbmFwIGFyZWEgYXJlIGNvbnNpZGVyZWQgdG8gYmUgdmFsaWQgc25h
cCBwb3NpdGlvbnMuCiAgICAgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPFQ+PiBob3Jpem9udGFs
U25hcE9mZnNldFJhbmdlczsKICAgICBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8VD4+IHZlcnRp
Y2FsU25hcE9mZnNldFJhbmdlczsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNuYXBPZmZzZXRzLmlzRW1wdHkoKSAmJiB2ZXJ0aWNh
bFNuYXBPZmZzZXRzLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICBWZWN0b3I8VD4gb2Zmc2V0c0Zv
ckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
YXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsID8gdmVydGljYWxTbmFwT2Zmc2V0cyA6
IGhvcml6b250YWxTbmFwT2Zmc2V0czsKKyAgICB9CisKKyAgICBWZWN0b3I8U2Nyb2xsT2Zmc2V0
UmFuZ2U8VD4+IG9mZnNldFJhbmdlc0ZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2Fs
ID8gdmVydGljYWxTbmFwT2Zmc2V0UmFuZ2VzIDogaG9yaXpvbnRhbFNuYXBPZmZzZXRSYW5nZXM7
CisgICAgfQogfTsKIAogY29uc3QgdW5zaWduZWQgaW52YWxpZFNuYXBPZmZzZXRJbmRleCA9IFVJ
TlRfTUFYOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4
IDVmMGUyZTZmMDIzOWZiNGZlNGFiMjliYjMxNGI4M2VhYTk5Y2NkZTIuLjdkN2IzZDhlMTJkODFh
OTAyNDAzODZjZDQ0NWJiZDZjODI0YzU3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKQEAgLTQ4MiwzNiArNDgyLDkgQEAgU2Nyb2xsU25hcE9mZnNldHNJ
bmZvPExheW91dFVuaXQ+JiBTY3JvbGxhYmxlQXJlYTo6ZW5zdXJlU25hcE9mZnNldHNJbmZvKCkK
ICAgICByZXR1cm4gKm1fc25hcE9mZnNldHNJbmZvOwogfQogCi1jb25zdCBWZWN0b3I8TGF5b3V0
VW5pdD4qIFNjcm9sbGFibGVBcmVhOjpob3Jpem9udGFsU25hcE9mZnNldHMoKSBjb25zdAorY29u
c3QgU2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVuaXQ+KiBTY3JvbGxhYmxlQXJlYTo6c25h
cE9mZnNldEluZm8oKSBjb25zdAogewotICAgIGlmICghbV9zbmFwT2Zmc2V0c0luZm8pCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuICZtX3NuYXBPZmZzZXRzSW5mby0+aG9y
aXpvbnRhbFNuYXBPZmZzZXRzOwotfQotCi1jb25zdCBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8
TGF5b3V0VW5pdD4+KiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbFNuYXBPZmZzZXRSYW5nZXMo
KSBjb25zdAotewotICAgIGlmICghbV9zbmFwT2Zmc2V0c0luZm8pCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotCi0gICAgcmV0dXJuICZtX3NuYXBPZmZzZXRzSW5mby0+aG9yaXpvbnRhbFNuYXBP
ZmZzZXRSYW5nZXM7Ci19Ci0KLWNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRV
bml0Pj4qIFNjcm9sbGFibGVBcmVhOjp2ZXJ0aWNhbFNuYXBPZmZzZXRSYW5nZXMoKSBjb25zdAot
ewotICAgIGlmICghbV9zbmFwT2Zmc2V0c0luZm8pCi0gICAgICAgIHJldHVybiBudWxscHRyOwot
Ci0gICAgcmV0dXJuICZtX3NuYXBPZmZzZXRzSW5mby0+dmVydGljYWxTbmFwT2Zmc2V0UmFuZ2Vz
OwotfQotCi1jb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4qIFNjcm9sbGFibGVBcmVhOjp2ZXJ0aWNh
bFNuYXBPZmZzZXRzKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc25hcE9mZnNldHNJbmZvKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiAmbV9zbmFwT2Zmc2V0c0luZm8tPnZl
cnRpY2FsU25hcE9mZnNldHM7CisgICAgcmV0dXJuIG1fc25hcE9mZnNldHNJbmZvLmdldCgpOwog
fQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRIb3Jpem9udGFsU25hcE9mZnNldHMoY29uc3Qg
VmVjdG9yPExheW91dFVuaXQ+JiBob3Jpem9udGFsU25hcE9mZnNldHMpCkBAIC01NzUsMjkgKzU0
OCwyMyBAQCBib29sIFNjcm9sbGFibGVBcmVhOjp1c2VzU2Nyb2xsU25hcCgpIGNvbnN0CiAKIElu
dFBvaW50IFNjcm9sbGFibGVBcmVhOjpuZWFyZXN0QWN0aXZlU25hcFBvaW50KGNvbnN0IEludFBv
aW50JiBjdXJyZW50UG9zaXRpb24pCiB7Ci0gICAgaWYgKCFob3Jpem9udGFsU25hcE9mZnNldHMo
KSAmJiAhdmVydGljYWxTbmFwT2Zmc2V0cygpKQorICAgIGlmICghbV9zbmFwT2Zmc2V0c0luZm8p
CiAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247CiAgICAgCiAgICAgaWYgKCFleGlzdGlu
Z1Njcm9sbEFuaW1hdG9yKCkpCiAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247Ci0gICAg
CisKICAgICBJbnRQb2ludCBjb3JyZWN0ZWRQb3NpdGlvbiA9IGN1cnJlbnRQb3NpdGlvbjsKLSAg
ICAKLSAgICBpZiAoaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkpIHsKLSAgICAgICAgY29uc3QgYXV0
byYgaG9yaXpvbnRhbCA9ICpob3Jpem9udGFsU25hcE9mZnNldHMoKTsKLSAgICAgICAgCi0gICAg
ICAgIHNpemVfdCBhY3RpdmVJbmRleCA9IGN1cnJlbnRIb3Jpem9udGFsU25hcFBvaW50SW5kZXgo
KTsKLSAgICAgICAgaWYgKGFjdGl2ZUluZGV4IDwgaG9yaXpvbnRhbC5zaXplKCkpCi0gICAgICAg
ICAgICBjb3JyZWN0ZWRQb3NpdGlvbi5zZXRYKGhvcml6b250YWxbYWN0aXZlSW5kZXhdLnRvSW50
KCkpOwotICAgIH0KLSAgICAKLSAgICBpZiAodmVydGljYWxTbmFwT2Zmc2V0cygpKSB7Ci0gICAg
ICAgIGNvbnN0IGF1dG8mIHZlcnRpY2FsID0gKnZlcnRpY2FsU25hcE9mZnNldHMoKTsKLSAgICAg
ICAgCi0gICAgICAgIHNpemVfdCBhY3RpdmVJbmRleCA9IGN1cnJlbnRWZXJ0aWNhbFNuYXBQb2lu
dEluZGV4KCk7Ci0gICAgICAgIGlmIChhY3RpdmVJbmRleCA8IHZlcnRpY2FsLnNpemUoKSkKLSAg
ICAgICAgICAgIGNvcnJlY3RlZFBvc2l0aW9uLnNldFkodmVydGljYWxbYWN0aXZlSW5kZXhdLnRv
SW50KCkpOwotICAgIH0KKworICAgIGNvbnN0IGF1dG8mIGhvcml6b250YWwgPSBtX3NuYXBPZmZz
ZXRzSW5mby0+aG9yaXpvbnRhbFNuYXBPZmZzZXRzOworICAgIHNpemVfdCBhY3RpdmVIb3Jpem9u
dGFsSW5kZXggPSBjdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4KCk7CisgICAgaWYgKGFj
dGl2ZUhvcml6b250YWxJbmRleCA8IGhvcml6b250YWwuc2l6ZSgpKQorICAgICAgICBjb3JyZWN0
ZWRQb3NpdGlvbi5zZXRYKGhvcml6b250YWxbYWN0aXZlSG9yaXpvbnRhbEluZGV4XS50b0ludCgp
KTsKKworICAgIGNvbnN0IGF1dG8mIHZlcnRpY2FsID0gbV9zbmFwT2Zmc2V0c0luZm8tPnZlcnRp
Y2FsU25hcE9mZnNldHM7CisgICAgc2l6ZV90IGFjdGl2ZVZlcnRpY2FsSW5kZXggPSBjdXJyZW50
VmVydGljYWxTbmFwUG9pbnRJbmRleCgpOworICAgIGlmIChhY3RpdmVWZXJ0aWNhbEluZGV4IDwg
dmVydGljYWwuc2l6ZSgpKQorICAgICAgICBjb3JyZWN0ZWRQb3NpdGlvbi5zZXRZKHZlcnRpY2Fs
W2FjdGl2ZVZlcnRpY2FsSW5kZXhdLnRvSW50KCkpOwogCiAgICAgcmV0dXJuIGNvcnJlY3RlZFBv
c2l0aW9uOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXgg
OWZjZDU0OWFiYjZlZGEyMDZlMjIwYzBiZDhkZDkxZmVmMjcyZjMwZS4uOGU3MDUwN2Q1ZmNlZDA5
NzljNTNhZmZkMDJmMGZhZWVlMGRkM2JmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCkBAIC04OSwxMCArODksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VzU2Ny
b2xsU25hcCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKLSAgICBXRUJD
T1JFX0VYUE9SVCBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4qIGhvcml6b250YWxTbmFwT2Zmc2V0
cygpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0Piog
dmVydGljYWxTbmFwT2Zmc2V0cygpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZl
Y3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4qIGhvcml6b250YWxTbmFwT2Zmc2V0
UmFuZ2VzKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgVmVjdG9yPFNjcm9sbE9m
ZnNldFJhbmdlPExheW91dFVuaXQ+PiogdmVydGljYWxTbmFwT2Zmc2V0UmFuZ2VzKCkgY29uc3Q7
CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVu
aXQ+KiBzbmFwT2Zmc2V0SW5mbygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFw
T2Zmc2V0cygpIHsgfTsKICAgICB2b2lkIHNldEhvcml6b250YWxTbmFwT2Zmc2V0cyhjb25zdCBW
ZWN0b3I8TGF5b3V0VW5pdD4mKTsKICAgICB2b2lkIHNldFZlcnRpY2FsU25hcE9mZnNldHMoY29u
c3QgVmVjdG9yPExheW91dFVuaXQ+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCBkMDk1ZTZiMTczYjlmOTIwYTBkNGQ5YTUy
NWIzMTEyZDM4NWNkZGJiLi5mZDk5ODZjMTEwZTQ5YWM0ODc2NjY1NDBjZTYxNTBmYzQxMTUwNjlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xs
ZXIubW0KQEAgLTgyMywyMSArODIzLDIwIEBAIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2Nyb2xs
U25hcFRpbWVyRmlyZWQoKQogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnVwZGF0ZVNjcm9sbFNu
YXBTdGF0ZShjb25zdCBTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiB7Ci0gICAgaWYg
KGF1dG8qIHNuYXBPZmZzZXRzID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNuYXBPZmZzZXRz
KCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHNuYXBPZmZzZXRSYW5nZXMgPSBzY3JvbGxhYmxlQXJl
YS5ob3Jpem9udGFsU25hcE9mZnNldFJhbmdlcygpKQotICAgICAgICAgICAgdXBkYXRlU2Nyb2xs
U25hcFBvaW50cyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsICpzbmFwT2Zmc2V0cywgKnNu
YXBPZmZzZXRSYW5nZXMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB1cGRhdGVTY3JvbGxT
bmFwUG9pbnRzKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgKnNuYXBPZmZzZXRzLCB7IH0p
OwotICAgIH0gZWxzZQotICAgICAgICB1cGRhdGVTY3JvbGxTbmFwUG9pbnRzKFNjcm9sbEV2ZW50
QXhpczo6SG9yaXpvbnRhbCwgeyB9LCB7IH0pOwotCi0gICAgaWYgKGF1dG8qIHNuYXBPZmZzZXRz
ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTbmFwT2Zmc2V0cygpKSB7Ci0gICAgICAgIGlmIChh
dXRvKiBzbmFwT2Zmc2V0UmFuZ2VzID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTbmFwT2Zmc2V0
UmFuZ2VzKCkpCi0gICAgICAgICAgICB1cGRhdGVTY3JvbGxTbmFwUG9pbnRzKFNjcm9sbEV2ZW50
QXhpczo6VmVydGljYWwsICpzbmFwT2Zmc2V0cywgKnNuYXBPZmZzZXRSYW5nZXMpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB1cGRhdGVTY3JvbGxTbmFwUG9pbnRzKFNjcm9sbEV2ZW50QXhp
czo6VmVydGljYWwsICpzbmFwT2Zmc2V0cywgeyB9KTsKLSAgICB9IGVsc2UKLSAgICAgICAgdXBk
YXRlU2Nyb2xsU25hcFBvaW50cyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCB7IH0sIHsgfSk7
CisgICAgY29uc3QgYXV0byogc25hcE9mZnNldEluZm8gPSBzY3JvbGxhYmxlQXJlYS5zbmFwT2Zm
c2V0SW5mbygpOworICAgIGlmICghc25hcE9mZnNldEluZm8gfHwgc25hcE9mZnNldEluZm8tPmlz
RW1wdHkoKSkgeworICAgICAgICBtX3Njcm9sbFNuYXBTdGF0ZSA9IG51bGxwdHI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBib29sIHNob3VsZENvbXB1dGVDdXJyZW50U25hcEluZGlj
ZXMgPSAhbV9zY3JvbGxTbmFwU3RhdGU7CisgICAgaWYgKCFtX3Njcm9sbFNuYXBTdGF0ZSkKKyAg
ICAgICAgbV9zY3JvbGxTbmFwU3RhdGUgPSBtYWtlVW5pcXVlPFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlPigpOworCisgICAgbV9zY3JvbGxTbmFwU3RhdGUtPnNldFNuYXBPZmZzZXRJbmZvKCpzbmFw
T2Zmc2V0SW5mbyk7CisKKyAgICBpZiAoc2hvdWxkQ29tcHV0ZUN1cnJlbnRTbmFwSW5kaWNlcykK
KyAgICAgICAgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXNGb3JPZmZzZXQocm91bmRlZEludFBv
aW50KG1fY2xpZW50LnNjcm9sbE9mZnNldCgpKSk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsU25hcCwgc3RyZWFtIDw8ICJTY3JvbGxDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIHVwZGF0
ZVNjcm9sbFNuYXBTdGF0ZSBmb3IgIiA8PCBzY3JvbGxhYmxlQXJlYSA8PCAiIG5ldyBzdGF0ZSAi
IDw8IFZhbHVlT3JOdWxsKG1fc2Nyb2xsU25hcFN0YXRlLmdldCgpKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
aAppbmRleCBhZGY2ZTlhMjAzNWRlMDFiYmQ2YjNjNDI5MGY4NDdlYmMxODI4MjI4Li42NDAwOTk5
NTFkZDc5MTljYTc1ZDEzZTVhMGU5OGVmZTI0YzIyYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmgKQEAgLTU0
LDIyICs1NCwyNyBAQCBjbGFzcyBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSB7CiBwdWJsaWM6CiAg
ICAgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiBzbmFwT2Zmc2V0c0ZvckF4aXMoU2Nyb2xsRXZl
bnRBeGlzIGF4aXMpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gYXhpcyA9PSBTY3JvbGxF
dmVudEF4aXM6Okhvcml6b250YWwgPyBtX3NuYXBPZmZzZXRzWCA6IG1fc25hcE9mZnNldHNZOwor
ICAgICAgICByZXR1cm4gYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwgPyBtX3Nu
YXBPZmZzZXRzSW5mby5ob3Jpem9udGFsU25hcE9mZnNldHMgOiBtX3NuYXBPZmZzZXRzSW5mby52
ZXJ0aWNhbFNuYXBPZmZzZXRzOwogICAgIH0KIAogICAgIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZz
ZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRSYW5nZXNGb3JBeGlzKFNjcm9sbEV2ZW50
QXhpcyBheGlzKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGF4aXMgPT0gU2Nyb2xsRXZl
bnRBeGlzOjpIb3Jpem9udGFsID8gbV9zbmFwT2Zmc2V0UmFuZ2VzWCA6IG1fc25hcE9mZnNldFJh
bmdlc1k7CisgICAgICAgIHJldHVybiBheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRh
bCA/IG1fc25hcE9mZnNldHNJbmZvLmhvcml6b250YWxTbmFwT2Zmc2V0UmFuZ2VzIDogbV9zbmFw
T2Zmc2V0c0luZm8udmVydGljYWxTbmFwT2Zmc2V0UmFuZ2VzOworICAgIH0KKworICAgIHZvaWQg
c2V0U25hcE9mZnNldEluZm8oY29uc3QgU2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVuaXQ+
JiBuZXdJbmZvKQorICAgIHsKKyAgICAgICAgbV9zbmFwT2Zmc2V0c0luZm8gPSBuZXdJbmZvOwog
ICAgIH0KIAogICAgIHZvaWQgc2V0U25hcE9mZnNldHNBbmRQb3NpdGlvblJhbmdlc0ZvckF4aXMo
U2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgc25hcE9mZnNl
dHMsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlvdXRVbml0Pj4mIHNuYXBPZmZz
ZXRSYW5nZXMpCiAgICAgewogICAgICAgICBpZiAoYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhv
cml6b250YWwpIHsKLSAgICAgICAgICAgIG1fc25hcE9mZnNldHNYID0gc25hcE9mZnNldHM7Ci0g
ICAgICAgICAgICBtX3NuYXBPZmZzZXRSYW5nZXNYID0gc25hcE9mZnNldFJhbmdlczsKKyAgICAg
ICAgICAgIG1fc25hcE9mZnNldHNJbmZvLmhvcml6b250YWxTbmFwT2Zmc2V0cyA9IHNuYXBPZmZz
ZXRzOworICAgICAgICAgICAgbV9zbmFwT2Zmc2V0c0luZm8uaG9yaXpvbnRhbFNuYXBPZmZzZXRS
YW5nZXMgPSBzbmFwT2Zmc2V0UmFuZ2VzOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
bV9zbmFwT2Zmc2V0c1kgPSBzbmFwT2Zmc2V0czsKLSAgICAgICAgICAgIG1fc25hcE9mZnNldFJh
bmdlc1kgPSBzbmFwT2Zmc2V0UmFuZ2VzOworICAgICAgICAgICAgbV9zbmFwT2Zmc2V0c0luZm8u
dmVydGljYWxTbmFwT2Zmc2V0cyA9IHNuYXBPZmZzZXRzOworICAgICAgICAgICAgbV9zbmFwT2Zm
c2V0c0luZm8udmVydGljYWxTbmFwT2Zmc2V0UmFuZ2VzID0gc25hcE9mZnNldFJhbmdlczsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMTAzLDExICsxMDgsOSBAQCBwcml2YXRlOgogCiAgICAgU2Ny
b2xsU25hcFN0YXRlIG1fY3VycmVudFN0YXRlIHsgU2Nyb2xsU25hcFN0YXRlOjpVc2VySW50ZXJh
Y3Rpb24gfTsKIAotICAgIFZlY3RvcjxMYXlvdXRVbml0PiBtX3NuYXBPZmZzZXRzWDsKLSAgICBW
ZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdD4+IG1fc25hcE9mZnNldFJhbmdlc1g7
CisgICAgU2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVuaXQ+IG1fc25hcE9mZnNldHNJbmZv
OworCiAgICAgdW5zaWduZWQgbV9hY3RpdmVTbmFwSW5kZXhYIHsgMCB9OwotICAgIFZlY3RvcjxM
YXlvdXRVbml0PiBtX3NuYXBPZmZzZXRzWTsKLSAgICBWZWN0b3I8U2Nyb2xsT2Zmc2V0UmFuZ2U8
TGF5b3V0VW5pdD4+IG1fc25hcE9mZnNldFJhbmdlc1k7CiAgICAgdW5zaWduZWQgbV9hY3RpdmVT
bmFwSW5kZXhZIHsgMCB9OwogCiAgICAgTW9ub3RvbmljVGltZSBtX3N0YXJ0VGltZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0
YXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9y
U3RhdGUubW0KaW5kZXggOTQ1MDYwMzY1OWZjYTE4YmQyZWI3ODIwMjNmYWMxM2QzYTYwMWU5NC4u
MjM1YjBjNDU1YThmNDNlMWZiNGM3YjYxYzVkMzc3N2I5OTliYTJmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
bW0KQEAgLTUxLDggKzUxLDggQEAgdm9pZCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6c2V0dXBB
bmltYXRpb25Gb3JTdGF0ZShTY3JvbGxTbmFwU3RhdGUgc3RhdGUsIGNvbnMKIAogICAgIG1fbW9t
ZW50dW1DYWxjdWxhdG9yID0gU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yOjpjcmVhdGUodmll
d3BvcnRTaXplLCBjb250ZW50U2l6ZSwgaW5pdGlhbE9mZnNldCwgaW5pdGlhbERlbHRhLCBpbml0
aWFsVmVsb2NpdHkpOwogICAgIGF1dG8gcHJlZGljdGVkU2Nyb2xsVGFyZ2V0ID0gbV9tb21lbnR1
bUNhbGN1bGF0b3ItPnByZWRpY3RlZERlc3RpbmF0aW9uT2Zmc2V0KCk7Ci0gICAgZmxvYXQgdGFy
Z2V0T2Zmc2V0WCA9IHRhcmdldE9mZnNldEZvclN0YXJ0T2Zmc2V0KG1fc25hcE9mZnNldHNYLCBt
X3NuYXBPZmZzZXRSYW5nZXNYLCBjb250ZW50U2l6ZS53aWR0aCgpIC0gdmlld3BvcnRTaXplLndp
ZHRoKCksIGluaXRpYWxPZmZzZXQueCgpLCBwcmVkaWN0ZWRTY3JvbGxUYXJnZXQud2lkdGgoKSwg
cGFnZVNjYWxlLCBpbml0aWFsRGVsdGEud2lkdGgoKSwgbV9hY3RpdmVTbmFwSW5kZXhYKTsKLSAg
ICBmbG9hdCB0YXJnZXRPZmZzZXRZID0gdGFyZ2V0T2Zmc2V0Rm9yU3RhcnRPZmZzZXQobV9zbmFw
T2Zmc2V0c1ksIG1fc25hcE9mZnNldFJhbmdlc1ksIGNvbnRlbnRTaXplLmhlaWdodCgpIC0gdmll
d3BvcnRTaXplLmhlaWdodCgpLCBpbml0aWFsT2Zmc2V0LnkoKSwgcHJlZGljdGVkU2Nyb2xsVGFy
Z2V0LmhlaWdodCgpLCBwYWdlU2NhbGUsIGluaXRpYWxEZWx0YS5oZWlnaHQoKSwgbV9hY3RpdmVT
bmFwSW5kZXhZKTsKKyAgICBmbG9hdCB0YXJnZXRPZmZzZXRYID0gdGFyZ2V0T2Zmc2V0Rm9yU3Rh
cnRPZmZzZXQobV9zbmFwT2Zmc2V0c0luZm8uaG9yaXpvbnRhbFNuYXBPZmZzZXRzLCBtX3NuYXBP
ZmZzZXRzSW5mby5ob3Jpem9udGFsU25hcE9mZnNldFJhbmdlcywgY29udGVudFNpemUud2lkdGgo
KSAtIHZpZXdwb3J0U2l6ZS53aWR0aCgpLCBpbml0aWFsT2Zmc2V0LngoKSwgcHJlZGljdGVkU2Ny
b2xsVGFyZ2V0LndpZHRoKCksIHBhZ2VTY2FsZSwgaW5pdGlhbERlbHRhLndpZHRoKCksIG1fYWN0
aXZlU25hcEluZGV4WCk7CisgICAgZmxvYXQgdGFyZ2V0T2Zmc2V0WSA9IHRhcmdldE9mZnNldEZv
clN0YXJ0T2Zmc2V0KG1fc25hcE9mZnNldHNJbmZvLnZlcnRpY2FsU25hcE9mZnNldHMsIG1fc25h
cE9mZnNldHNJbmZvLnZlcnRpY2FsU25hcE9mZnNldFJhbmdlcywgY29udGVudFNpemUuaGVpZ2h0
KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCksIGluaXRpYWxPZmZzZXQueSgpLCBwcmVkaWN0ZWRT
Y3JvbGxUYXJnZXQuaGVpZ2h0KCksIHBhZ2VTY2FsZSwgaW5pdGlhbERlbHRhLmhlaWdodCgpLCBt
X2FjdGl2ZVNuYXBJbmRleFkpOwogICAgIG1fbW9tZW50dW1DYWxjdWxhdG9yLT5zZXRSZXRhcmdl
dGVkU2Nyb2xsT2Zmc2V0KHsgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0T2Zmc2V0WSB9KTsKICAgICBt
X3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY3VycmVudFN0YXRlID0g
c3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KaW5kZXggNjE1MWRlZmMwZWFlYzNhMDU3MTUwMjBhZTY1MDAyM2JhY2YxNGIzYy4uMTI4
OTQzMjA1NDM2ZjA4NGM2ZDZjYjVjNDZjYTFkOWEzOTQxNjI0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTMxNiwxMSArMTMx
NiwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjppc1Bpbm5lZEZvclNjcm9sbERlbHRhKGNv
bnN0IEZsb2F0U2l6ZSYgZGVsdGEpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9T
TkFQKQotc3RhdGljIGJvb2wgZ2VzdHVyZVNob3VsZEJlZ2luU25hcChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0Piogc25hcE9mZnNl
dHMpCitzdGF0aWMgYm9vbCBnZXN0dXJlU2hvdWxkQmVnaW5TbmFwKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGNvbnN0IFNjcm9sbFNu
YXBPZmZzZXRzSW5mbzxMYXlvdXRVbml0Piogb2Zmc2V0SW5mbykKIHsKLSAgICBpZiAoIXNuYXBP
ZmZzZXRzKQorICAgIGlmICghb2Zmc2V0SW5mbykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IAorCisgICAgaWYgKG9mZnNldEluZm8tPm9mZnNldHNGb3JBeGlzKGF4aXMpLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSAhPSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6RW5kZWQgJiYgIXdoZWVsRXZlbnQuaXNFbmRPZk1vbWVu
dHVtU2Nyb2xsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTMzOCw3ICsxMzQxLDcg
QEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKICAgICAgICAgYm9vbCBldmVudFByZXZlbnRzU3Ry
ZXRjaGluZyA9IG1fc2Nyb2xsYWJsZUFyZWEuaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVB
bmNlc3RvcigpICYmIHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiBtX3Njcm9sbGFibGVB
cmVhLmlzUGlubmVkRm9yU2Nyb2xsRGVsdGFPbkF4aXMoLXdoZWVsRXZlbnQuZGVsdGFZKCksIFNj
cm9sbEV2ZW50QXhpczo6VmVydGljYWwpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAg
ICAgICAgIGlmICghZXZlbnRQcmV2ZW50c1N0cmV0Y2hpbmcpCi0gICAgICAgICAgICBldmVudFBy
ZXZlbnRzU3RyZXRjaGluZyA9IGdlc3R1cmVTaG91bGRCZWdpblNuYXAod2hlZWxFdmVudCwgbV9z
Y3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNuYXBPZmZzZXRzKCkpOworICAgICAgICAgICAgZXZlbnRQ
cmV2ZW50c1N0cmV0Y2hpbmcgPSBnZXN0dXJlU2hvdWxkQmVnaW5TbmFwKHdoZWVsRXZlbnQsIFNj
cm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG1fc2Nyb2xsYWJsZUFyZWEuc25hcE9mZnNldEluZm8o
KSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHNjcm9sbGJhcnNBbGxvd1N0cmV0Y2hpbmcgJiYg
IWV2ZW50UHJldmVudHNTdHJldGNoaW5nOwogICAgIH0KQEAgLTEzNjIsNyArMTM2NSw3IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3JNYWM6OmFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlCiAgICAgICAgIGJvb2wgZXZlbnRQcmV2ZW50c1N0cmV0Y2hp
bmcgPSBtX3Njcm9sbGFibGVBcmVhLmhhc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0
b3IoKSAmJiB3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5p
c1Bpbm5lZEZvclNjcm9sbERlbHRhT25BeGlzKC13aGVlbEV2ZW50LmRlbHRhWCgpLCBTY3JvbGxF
dmVudEF4aXM6Okhvcml6b250YWwpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAg
ICAgIGlmICghZXZlbnRQcmV2ZW50c1N0cmV0Y2hpbmcpCi0gICAgICAgICAgICBldmVudFByZXZl
bnRzU3RyZXRjaGluZyA9IGdlc3R1cmVTaG91bGRCZWdpblNuYXAod2hlZWxFdmVudCwgbV9zY3Jv
bGxhYmxlQXJlYS5ob3Jpem9udGFsU25hcE9mZnNldHMoKSk7CisgICAgICAgICAgICBldmVudFBy
ZXZlbnRzU3RyZXRjaGluZyA9IGdlc3R1cmVTaG91bGRCZWdpblNuYXAod2hlZWxFdmVudCwgU2Ny
b2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBtX3Njcm9sbGFibGVBcmVhLnNuYXBPZmZzZXRJbmZv
KCkpOwogI2VuZGlmCiAgICAgICAgIHJldHVybiBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nICYm
ICFldmVudFByZXZlbnRzU3RyZXRjaGluZzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggNGYzMWJkODM4MGYwMDY0NWEwZDU4M2Q4MTAwYTZiYzZiYjY5NzVlYS4u
ZmU3MjBlOTM1ZWU5ZjMyYWNjN2Q4ZDhlY2I1ZjUzMWFjYjFkOWYyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDY2OCwyMiArNDY2OCwxOSBAQCBFeGNlcHRpb25PcjxT
dHJpbmc+IEludGVybmFsczo6c2Nyb2xsU25hcE9mZnNldHMoRWxlbWVudCYgZWxlbWVudCkKICAg
ICBpZiAoIXNjcm9sbGFibGVBcmVhKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yIH07CiAKKyAgICBhdXRvKiBvZmZzZXRJbmZvID0gc2Nyb2xsYWJsZUFyZWEt
PnNuYXBPZmZzZXRJbmZvKCk7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Ci0gICAgaWYgKGF1
dG8qIG9mZnNldHMgPSBzY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkpIHsK
LSAgICAgICAgaWYgKG9mZnNldHMtPnNpemUoKSkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoImhvcml6b250YWwgPSAiKTsKLSAgICAgICAgICAgIGFwcGVuZE9mZnNldHMocmVz
dWx0LCAqb2Zmc2V0cyk7Ci0gICAgICAgIH0KKyAgICBpZiAob2Zmc2V0SW5mbyAmJiAhb2Zmc2V0
SW5mby0+aG9yaXpvbnRhbFNuYXBPZmZzZXRzLmlzRW1wdHkoKSkgeworICAgICAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiaG9yaXpvbnRhbCA9ICIpOworICAgICAgICBhcHBlbmRPZmZzZXRzKHJl
c3VsdCwgb2Zmc2V0SW5mby0+aG9yaXpvbnRhbFNuYXBPZmZzZXRzKTsKICAgICB9CiAKLSAgICBp
ZiAoYXV0byogb2Zmc2V0cyA9IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNuYXBPZmZzZXRzKCkp
IHsKLSAgICAgICAgaWYgKG9mZnNldHMtPnNpemUoKSkgewotICAgICAgICAgICAgaWYgKHJlc3Vs
dC5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsK
KyAgICBpZiAob2Zmc2V0SW5mbyAmJiAhb2Zmc2V0SW5mby0+dmVydGljYWxTbmFwT2Zmc2V0cy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSkKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwogCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0
ZXJhbCgidmVydGljYWwgPSAiKTsKLSAgICAgICAgICAgIGFwcGVuZE9mZnNldHMocmVzdWx0LCAq
b2Zmc2V0cyk7Ci0gICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInZlcnRp
Y2FsID0gIik7CisgICAgICAgIGFwcGVuZE9mZnNldHMocmVzdWx0LCBvZmZzZXRJbmZvLT52ZXJ0
aWNhbFNuYXBPZmZzZXRzKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>