<?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>225755</bug_id>
          
          <creation_ts>2021-05-13 04:48:45 -0700</creation_ts>
          <short_desc>[LFC] Move flex formatting geometry to its own class</short_desc>
          <delta_ts>2021-05-15 16:04:16 -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>Layout and Rendering</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>225731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759634</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:48:45 -0700</bug_when>
    <thetext>This is part of bug 225731 activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759664</commentid>
    <comment_count>1</comment_count>
      <attachid>428503</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 05:49:23 -0700</bug_when>
    <thetext>Created attachment 428503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760482</commentid>
    <comment_count>2</comment_count>
      <attachid>428746</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-15 15:33:51 -0700</bug_when>
    <thetext>Created attachment 428746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760490</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 16:03:09 -0700</bug_when>
    <thetext>Committed r277550 (237778@main): &lt;https://commits.webkit.org/237778@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428746.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760491</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 16:04:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78065103&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428503</attachid>
            <date>2021-05-13 05:49:23 -0700</date>
            <delta_ts>2021-05-15 15:33:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225755-20210513054922.patch</filename>
            <type>text/plain</type>
            <size>20415</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uODczZTM5YzU2ZmZkYWZlZmM5ZGFiOGY1OTFlNDZh
OTJiYTdhYjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGZsZXggZm9y
bWF0dGluZyBnZW9tZXRyeSB0byBpdHMgb3duIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeSBjb25zdCk6CisgICAg
ICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpHZW9tZXRyeSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDogUmVtb3ZlZC4K
KwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRNZWRpYVNyYyByZXdvcmsgdjIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggMzA3NmI2MDQzZTc1MmI5NDE0YWQ4NzU5MjI3ZDU5NGI3YjAwMDlkZi4uNzI1
MDlmYjc3ZDg0ODFhMzgzNDI3MjIxYmM1ZDVhNzJiNDVjMmU5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTE1MjgsNyArMTUyOCw3IEBAIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29t
cHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAK
IGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBl
ckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxl
eC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCi1sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Zs
ZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCitsYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5b3V0L2Zsb2F0cy9GbG9h
dEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMGZl
YjNhOGNlZTk4NjU0ZWUyNDU2MDcyOTk3YmU5MzU2YTNkMTViLi5jOGJkNjc3NmVkNTA0ZWUxZmJl
Mjk2Y2RlMDViNDQxZThmYWE5NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTY3LDYgKzIxNjcsNyBAQAogCQk2RkUxOTgx
NzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYw
OCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTZGRTYzNkU4MjY0Nzk2MjkwMEYwOTUxRSAvKiBJbmxpbmVG
b3JtYXR0aW5nUXVpcmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RkU2MzZFNzI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJr
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZG
RTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkU3Q0ZBMDIxNzdFRUYxMDA1QjE1NzMgLyog
SW5saW5lSXRlbS5oICovOyB9OworCQk2RkY5MTFGNzI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZv
cm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2VvbWV0
cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5b3V0TGluZUJyZWFrQm94LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkZBNEMwMDIzRjJGRUQ5MDA3
RTRFQkMgLyogTGF5b3V0TGluZUJyZWFrQm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZGREM0NDIyMTJFRkYxNzAwQTlDQTkxIC8qIEZsb2F0
QXZvaWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkZGREM0NDAyMTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcwOUEwMUZFMUUzRDBCREQwMDZC
MEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxl
RmV0Y2hGYWlsdXJlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC05OTczLDcgKzk5NzQsNyBAQAogCQk2RjY2MzhENDI0OUUyNjhCMDAxOTI1
RkMgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVMaW5l
Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmVCb3guY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RjZERjM2RTI2NDcyMkVBMDA5M0U4MzQgLyogQmxvY2tNYXJn
aW5Db2xsYXBzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja01hcmdp
bkNvbGxhcHNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGNzBERUREMjUxMTI2
RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTZGNzBERUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0
dGluZ0dlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nR2VvbWV0
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjczOTE4QzIxMDZDRUREMDA2
QUYyNjIgLyogTGF5b3V0VW5pdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VW5pdHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3OUYwQzAyNjQ4N0M0QzAwNjk4MkI2IC8qIEJs
b2NrRm9ybWF0dGluZ0dlb21ldHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGN0I4Q0VDMjM2MjZFNjYwMEM5RkYxNSAvKiBJbmxpbmVJdGVtLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElubGluZUl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAw
NDIsNiArMTAwNDMsNyBAQAogCQk2RkU4RTZGODIzN0JBNkIyMDA3NThEMjYgLyogSW52YWxpZGF0
aW9uU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxpZGF0aW9uU3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIyMjExMDM1MDA0QzUwODIgLyog
Q29udGVudENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlvdXRQaGFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RkY5
MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRjlGMUJFMjQ2RDk2NkMwMDQzNTA4MyAvKiBUYWJs
ZUxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUxheW91dC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRkE0QkZFMjNGMkZFQ0QwMDdFNEVCQyAvKiBMYXlvdXRM
aW5lQnJlYWtCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0TGluZUJyZWFrQm94LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGQTRDMDAyM0YyRkVEOTAwN0U0RUJD
IC8qIExheW91dExpbmVCcmVha0JveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMYXlvdXRMaW5lQnJlYWtCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIy
NjQ3LDcgKzIyNjQ5LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZGQjdEMkQ3MjUwRkQ3RTUw
MDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGQjdEMkQ5MjUw
RkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCAqLywKLQkJCQk2RjcwREVE
RDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICov
LAorCQkJCTZGRjkxMUY2MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5
LmggKi8sCisJCQkJNkY3MERFREQyNTExMjZGMzAwRjBGQzc4IC8qIEZsZXhGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwICovLAogCQkJCTZGQjdEMkQ4MjUwRkQ3RUYwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0
dGluZ1N0YXRlLmNwcCAqLywKIAkJCQk2RkI3RDJEQTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZv
cm1hdHRpbmdTdGF0ZS5oICovLAogCQkJKTsKQEAgLTM1ODY2LDYgKzM1ODY5LDcgQEAKIAkJCQlC
QzgyNDNFOTBEMENGRDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdFOTlBRjUzMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRp
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0I0MUJCNEM0RTgwMDEyODk4RiAvKiBX
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk2RkY5MTFGNzI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIyIC8qIFdpbmRvd1By
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUUxQkYwMDExNUZGNkZCMDA2RjUyQ0EgLyogV2lu
ZG93c0tleWJvYXJkQ29kZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMUJBQUE5MTM5NTBFMkMw
MEY3QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9G
bGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDMxNTdmZDY5OTA0Mjg2OTdlODVkMTcxZjZk
M2FjOGQ1ODdhY2FjZjguLjRjZjZiNjlkM2M4OTRkZjg1OGUwN2U0YmExMjkzOTQ2ZDRmYzJjYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxl
eC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAorI2lu
Y2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCIKICNpbmNsdWRlICJGbGV4Rm9ybWF0dGlu
Z1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5lUmVjdC5oIgogI2luY2x1ZGUgIkludmFsaWRhdGlv
blN0YXRlLmgiCkBAIC0xMTcsNiArMTE4LDExIEBAIHZvaWQgRmxleEZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlSW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckZsZXhJdGVtcygpCiAgICAgfQog
fQogCitGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5IEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0
cnkoKSBjb25zdAoreworICAgIHJldHVybiBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5KCp0aGlzKTsK
K30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmgKaW5k
ZXggODFhMGU0MDY5ZmZkMTAyOTY4OGNjNTE2Y2ZkOTU5MGNjYzkzNjUyYi4uM2VlZmM1ZTQ5Y2Zi
NjI4YzkxNjdhNTI1NGUwODM5ZmRmNTczODBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9y
bWF0dGluZ0NvbnRleHQuaApAQCAtMzQsNiArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIExheW91dCB7CiAKK2NsYXNzIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk7CiBjbGFz
cyBJbnZhbGlkYXRpb25TdGF0ZTsKIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgbGF5b3V0
IGxvZ2ljIGZvciBmbGV4IGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBodHRwczovL3d3dy53My5v
cmcvVFIvY3NzLWZsZXhib3gtMS8KQEAgLTQ3LDE3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBwb3Np
dGlvbmluZyBhbmQgc2l6aW5nIGZvciBmbGV4IGl0ZW1zLgotICAgIGNsYXNzIEdlb21ldHJ5IDog
cHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeSB7Ci0gICAgcHVibGljOgotICAgICAg
ICBHZW9tZXRyeShjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmKTsKLQotICAgICAgICBJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3QgQ29u
dGFpbmVyQm94Jik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8Rmxl
eEZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZvcm1hdHRp
bmdDb250ZXh0KCkpOyB9Ci0gICAgfTsKLSAgICBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5IGdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gR2VvbWV0cnkoKnRoaXMpOyB9CisgICAgRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeSBnZW9tZXRyeSgpIGNvbnN0OwogCiAgICAgdm9pZCBzaXplQW5k
UGxhY2VGbGV4SXRlbXMoY29uc3QgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50Jik7CiAgICAg
dm9pZCBjb21wdXRlSW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckZsZXhJdGVtcygpOwpAQCAt
NjYsMTEgKzU3LDYgQEAgcHJpdmF0ZToKICAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0
aW5nU3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxGbGV4Rm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0
aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CiB9OwogCi1pbmxpbmUgRmxleEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6R2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250
ZXh0JiBmbGV4Rm9ybWF0dGluZ0NvbnRleHQpCi0gICAgOiBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnkoZmxleEZvcm1hdHRpbmdDb250ZXh0KQotewotfQotCiB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0
dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzdjOGRkMDk4MDlkMWQwYjU4NGFiZmY3OGRkMTc5MWJm
ZjQ2ODk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nQ29u
dGV4dC5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNs
dWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRleHQu
aCIKLSNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5h
bWVzcGFjZSBMYXlvdXQgewotCi1Gb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25z
dHJhaW50cyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbnRyaW5zaWNXaWR0aENv
bnN0cmFpbnRzKGNvbnN0IENvbnRhaW5lckJveCYgZmxleEl0ZW0pCi17Ci0gICAgYXV0byBmaXhl
ZE1hcmdpbkJvcmRlckFuZFBhZGRpbmcgPSBbJl0oYXV0byYgbGF5b3V0Qm94KSB7Ci0gICAgICAg
IGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7Ci0gICAgICAgIHJldHVybiBmaXhlZFZh
bHVlKHN0eWxlLm1hcmdpblN0YXJ0KCkpLnZhbHVlT3IoMCkKLSAgICAgICAgICAgICsgTGF5b3V0
VW5pdCB7IHN0eWxlLmJvcmRlckxlZnRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1
ZShzdHlsZS5wYWRkaW5nTGVmdCgpKS52YWx1ZU9yKDApCi0gICAgICAgICAgICArIGZpeGVkVmFs
dWUoc3R5bGUucGFkZGluZ1JpZ2h0KCkpLnZhbHVlT3IoMCkKLSAgICAgICAgICAgICsgTGF5b3V0
VW5pdCB7IHN0eWxlLmJvcmRlclJpZ2h0V2lkdGgoKSB9Ci0gICAgICAgICAgICArIGZpeGVkVmFs
dWUoc3R5bGUubWFyZ2luRW5kKCkpLnZhbHVlT3IoMCk7Ci0gICAgfTsKLQotICAgIGF1dG8gY29t
cHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gWyZdKCkgLT4gSW50cmluc2ljV2lkdGhD
b25zdHJhaW50cyB7Ci0gICAgICAgIGF1dG8gbG9naWNhbFdpZHRoID0gZmxleEl0ZW0uc3R5bGUo
KS5sb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgLy8gTWluaW11bS9tYXhpbXVtIHdpZHRoIGNhbid0
IGJlIGRlcGVuZGluZyBvbiB0aGUgY29udGFpbmluZyBibG9jaydzIHdpZHRoLgotICAgICAgICBh
dXRvIG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0aCA9IGxvZ2ljYWxXaWR0aC5pc0Nh
bGN1bGF0ZWQoKSB8fCBsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgbG9naWNhbFdpZHRoLmlz
UmVsYXRpdmUoKTsKLSAgICAgICAgaWYgKG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0
aCkKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0KLSAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBm
aXhlZFZhbHVlKGxvZ2ljYWxXaWR0aCkpCi0gICAgICAgICAgICByZXR1cm4geyAqd2lkdGgsICp3
aWR0aCB9OwotCi0gICAgICAgIEFTU0VSVChmbGV4SXRlbS5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdD
b250ZXh0KCkpOwotICAgICAgICBhdXRvIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBMYXlv
dXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChmbGV4SXRlbSwgbGF5b3V0U3RhdGUo
KSktPmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpOwotICAgICAgICBpZiAobG9n
aWNhbFdpZHRoLmlzTWluQ29udGVudCgpKQotICAgICAgICAgICAgcmV0dXJuIHsgaW50cmluc2lj
V2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1pbmlt
dW0gfTsKLSAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc01heENvbnRlbnQoKSkKLSAgICAgICAg
ICAgIHJldHVybiB7IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWF4aW11bSwgaW50cmluc2lj
V2lkdGhDb25zdHJhaW50cy5tYXhpbXVtIH07Ci0gICAgICAgIHJldHVybiBpbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzOwotICAgIH07Ci0gICAgYXV0byBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
ID0gY29uc3RyYWluQnlNaW5NYXhXaWR0aChmbGV4SXRlbSwgY29tcHV0ZWRJbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzKCkpOwotICAgIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMuZXhwYW5kKGZp
eGVkTWFyZ2luQm9yZGVyQW5kUGFkZGluZyhmbGV4SXRlbSkpOwotICAgIHJldHVybiBpbnRyaW5z
aWNXaWR0aENvbnN0cmFpbnRzOwotfQotCi19Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5n
R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9m
bGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MWI1Y2ZjMjYxNTUy
ZGFmOTRjZDIyNjliYzU5OGU0NzIxODllOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRy
eS5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmgiCisKKyNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIK
KyNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK0ZsZXhGb3Jt
YXR0aW5nR2VvbWV0cnk6OkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRp
bmdDb250ZXh0JiBmbGV4Rm9ybWF0dGluZ0NvbnRleHQpCisgICAgOiBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnkoZmxleEZvcm1hdHRpbmdDb250ZXh0KQoreworfQorCitGb3JtYXR0aW5nQ29u
dGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojpp
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGNvbnN0IENvbnRhaW5lckJveCYgZmxleEl0ZW0pCit7
CisgICAgYXV0byBmaXhlZE1hcmdpbkJvcmRlckFuZFBhZGRpbmcgPSBbJl0oYXV0byYgbGF5b3V0
Qm94KSB7CisgICAgICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7CisgICAgICAg
IHJldHVybiBmaXhlZFZhbHVlKHN0eWxlLm1hcmdpblN0YXJ0KCkpLnZhbHVlT3IoMCkKKyAgICAg
ICAgICAgICsgTGF5b3V0VW5pdCB7IHN0eWxlLmJvcmRlckxlZnRXaWR0aCgpIH0KKyAgICAgICAg
ICAgICsgZml4ZWRWYWx1ZShzdHlsZS5wYWRkaW5nTGVmdCgpKS52YWx1ZU9yKDApCisgICAgICAg
ICAgICArIGZpeGVkVmFsdWUoc3R5bGUucGFkZGluZ1JpZ2h0KCkpLnZhbHVlT3IoMCkKKyAgICAg
ICAgICAgICsgTGF5b3V0VW5pdCB7IHN0eWxlLmJvcmRlclJpZ2h0V2lkdGgoKSB9CisgICAgICAg
ICAgICArIGZpeGVkVmFsdWUoc3R5bGUubWFyZ2luRW5kKCkpLnZhbHVlT3IoMCk7CisgICAgfTsK
KworICAgIGF1dG8gY29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gWyZdKCkgLT4g
Rm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeworICAgICAgICBh
dXRvIGxvZ2ljYWxXaWR0aCA9IGZsZXhJdGVtLnN0eWxlKCkubG9naWNhbFdpZHRoKCk7CisgICAg
ICAgIC8vIE1pbmltdW0vbWF4aW11bSB3aWR0aCBjYW4ndCBiZSBkZXBlbmRpbmcgb24gdGhlIGNv
bnRhaW5pbmcgYmxvY2sncyB3aWR0aC4KKyAgICAgICAgYXV0byBuZWVkc1Jlc29sdmVkQ29udGFp
bmluZ0Jsb2NrV2lkdGggPSBsb2dpY2FsV2lkdGguaXNDYWxjdWxhdGVkKCkgfHwgbG9naWNhbFdp
ZHRoLmlzUGVyY2VudCgpIHx8IGxvZ2ljYWxXaWR0aC5pc1JlbGF0aXZlKCk7CisgICAgICAgIGlm
IChuZWVkc1Jlc29sdmVkQ29udGFpbmluZ0Jsb2NrV2lkdGgpCisgICAgICAgICAgICByZXR1cm4g
eyB9OworCisgICAgICAgIGlmIChhdXRvIHdpZHRoID0gZml4ZWRWYWx1ZShsb2dpY2FsV2lkdGgp
KQorICAgICAgICAgICAgcmV0dXJuIHsgKndpZHRoLCAqd2lkdGggfTsKKworICAgICAgICBBU1NF
UlQoZmxleEl0ZW0uZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICAgICAgYXV0
byBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0
dGluZ0NvbnRleHQoZmxleEl0ZW0sIGxheW91dFN0YXRlKCkpLT5jb21wdXRlZEludHJpbnNpY1dp
ZHRoQ29uc3RyYWludHMoKTsKKyAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc01pbkNvbnRlbnQo
KSkKKyAgICAgICAgICAgIHJldHVybiB7IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWluaW11
bSwgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5taW5pbXVtIH07CisgICAgICAgIGlmIChsb2dp
Y2FsV2lkdGguaXNNYXhDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4geyBpbnRyaW5zaWNX
aWR0aENvbnN0cmFpbnRzLm1heGltdW0sIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWF4aW11
bSB9OworICAgICAgICByZXR1cm4gaW50cmluc2ljV2lkdGhDb25zdHJhaW50czsKKyAgICB9Owor
ICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IGNvbnN0cmFpbkJ5TWluTWF4V2lk
dGgoZmxleEl0ZW0sIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpKTsKKyAgICBp
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLmV4cGFuZChmaXhlZE1hcmdpbkJvcmRlckFuZFBhZGRp
bmcoZmxleEl0ZW0pKTsKKyAgICByZXR1cm4gaW50cmluc2ljV2lkdGhDb25zdHJhaW50czsKK30K
KworfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRy
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE3ZmU1ZDg2ZGE4NTg4ZjIyNWMyMGYwMTk4YjEyYzJhY2IyZDRlYTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQorCisjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZvcm1h
dHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRz
IHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgZm9yIGZsZXggaXRlbXMuCitjbGFzcyBGbGV4Rm9ybWF0
dGluZ0dlb21ldHJ5IDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeSB7CitwdWJs
aWM6CisgICAgRmxleEZvcm1hdHRpbmdHZW9tZXRyeShjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQmKTsKKworICAgIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3QgQ29udGFpbmVyQm94Jik7CisKK3ByaXZh
dGU6CisgICAgY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgp
IGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEZsZXhGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5Ojpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQorfTsKKworfQorfQor
CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428746</attachid>
            <date>2021-05-15 15:33:51 -0700</date>
            <delta_ts>2021-05-15 16:03:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225755-20210515153350.patch</filename>
            <type>text/plain</type>
            <size>20350</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0MzA3YTU1NTI3MjJh
NTVhMGY0ZTJlMmU3ZTE5NDU0MDU3ZmI4NS4uYmUyYjczMWFkYzQ3ZTRmOTQzMWI4MmU0ZTViM2Q3
NWM2NzBiMmU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGZsZXggZm9y
bWF0dGluZyBnZW9tZXRyeSB0byBpdHMgb3duIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NTUKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeSBjb25zdCk6CisgICAg
ICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpHZW9tZXRyeSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDogUmVtb3ZlZC4K
KwogMjAyMS0wNS0xNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ10gTW92ZSBibG9jayBmb3JtYXR0aW5nIGdlb21ldHJ5IHRvIGl0cyBvd24gY2xhc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKaW5kZXggNzgyNjdiOTkzMTU0NzgxM2E4ZjFjZjEyZDFlMTQ5ZWZjMzU5NTk1Zi4u
ZmNkYmM1ZjQ0OTA5NzhlMzk3OTEzZjJkYmUyMGI4MTA2YzIxNmYwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
QEAgLTE1MjcsNyArMTUyNyw3IEBAIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJl
Y29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3Jh
cHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCi1sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCitsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKIGxheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5b3V0L2Zsb2F0cy9G
bG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
NWIwNWUzZTMzM2I3OWNiZjRlNjVjZTA3YjRlYmRmODk5Yzg2YWU5Li5mMWEyNmFhNWRmMjgxYTI1
MzgxNmNjOTRjMTM1YTEzMjQzYzUyMzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTY4LDYgKzIxNjgsNyBAQAogCQk2RkUx
OTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTE5ODE1MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGRTYzNkU4MjY0Nzk2MjkwMEYwOTUxRSAvKiBJbmxp
bmVGb3JtYXR0aW5nUXVpcmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RkU2MzZFNzI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1
aXJrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkU3Q0ZBMDIxNzdFRUYxMDA1QjE1NzMg
LyogSW5saW5lSXRlbS5oICovOyB9OworCQk2RkY5MTFGNzI2NDg3RkM4MDAyMDIxREYgLyogRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2Vv
bWV0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5b3V0TGluZUJyZWFrQm94LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkZBNEMwMDIzRjJGRUQ5
MDA3RTRFQkMgLyogTGF5b3V0TGluZUJyZWFrQm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZGREM0NDIyMTJFRkYxNzAwQTlDQTkxIC8qIEZs
b2F0QXZvaWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkZGREM0NDAyMTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcwOUEwMUZFMUUzRDBCREQw
MDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC05OTc2LDcgKzk5NzcsNyBAQAogCQk2RjY2MzhENDI0OUUyNjhCMDAx
OTI1RkMgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNjlBNzk5MjRENkZBQjgwMEU2Qjg1RCAvKiBJbmxpbmVM
aW5lQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmVCb3guY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RjZERjM2RTI2NDcyMkVBMDA5M0U4MzQgLyogQmxvY2tN
YXJnaW5Db2xsYXBzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja01h
cmdpbkNvbGxhcHNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGNzBERUREMjUx
MTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGNzBERUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9y
bWF0dGluZ0dlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjczOTE4QzIxMDZDRURE
MDA2QUYyNjIgLyogTGF5b3V0VW5pdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VW5pdHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3QjhDRUMyMzYyNkU2NjAwQzlGRjE1IC8q
IElubGluZUl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lSXRlbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlv
dXRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTAwNDMsNiArMTAwNDQsNyBAQAogCQk2RkU4RTZGODIzN0JBNkIyMDA3
NThEMjYgLyogSW52YWxpZGF0aW9uU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxp
ZGF0aW9uU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIy
MjExMDM1MDA0QzUwODIgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlv
dXRQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRjlGMUJFMjQ2RDk2
NkMwMDQzNTA4MyAvKiBUYWJsZUxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUxh
eW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRkE0QkZFMjNGMkZFQ0Qw
MDdFNEVCQyAvKiBMYXlvdXRMaW5lQnJlYWtCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5
b3V0TGluZUJyZWFrQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGQTRD
MDAyM0YyRkVEOTAwN0U0RUJDIC8qIExheW91dExpbmVCcmVha0JveC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRMaW5lQnJlYWtCb3guaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyNjYxLDcgKzIyNjYzLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTZGQjdEMkQ3MjUwRkQ3RTUwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwICov
LAogCQkJCTZGQjdEMkQ5MjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQu
aCAqLywKLQkJCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwICovLAorCQkJCTZGNzBERUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4
Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcCAqLywKKwkJCQk2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYg
LyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICovLAogCQkJCTZGQjdEMkQ4MjUwRkQ3RUYwMDAy
MDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKIAkJCQk2RkI3RDJEQTI1MEZEN0ZD
MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oICovLAogCQkJKTsKQEAgLTMyNDkxLDYg
KzMyNDk0LDcgQEAKIAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGMDRGMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRh
YmxlTGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEg
LyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkY5MTFGNzI2
NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkZCN0QyREUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTZGRkRDNDQyMjEyRUZGMTcwMEE5Q0E5MSAvKiBGbG9hdEF2b2lk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9h
dENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1h
dHRpbmdDb250ZXh0LmNwcAppbmRleCAzMTU3ZmQ2OTkwNDI4Njk3ZTg1ZDE3MWY2ZDNhYzhkNTg3
YWNhY2Y4Li40Y2Y2YjY5ZDNjODk0ZGY4NThlMDdlNGJhMTI5Mzk0NmQ0ZmMyY2MzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlICJG
bGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmgiCiAjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5o
IgogI2luY2x1ZGUgIklubGluZVJlY3QuaCIKICNpbmNsdWRlICJJbnZhbGlkYXRpb25TdGF0ZS5o
IgpAQCAtMTE3LDYgKzExOCwxMSBAQCB2b2lkIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUludHJpbnNpY1dpZHRoQ29uc3RyYWludHNGb3JGbGV4SXRlbXMoKQogICAgIH0KIH0KIAorRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gRmxleEZvcm1hdHRpbmdHZW9tZXRyeSgqdGhpcyk7Cit9CisKIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDgxYTBl
NDA2OWZmZDEwMjk2ODhjYzUxNmNmZDk1OTBjY2M5MzY1MmIuLjNlZWZjNWU0OWNmYjYyOGM5MTY3
YTUyNTRlMDgzOWZkZjU3MzgwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdD
b250ZXh0LmgKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFj
ZSBMYXlvdXQgewogCitjbGFzcyBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5OwogY2xhc3MgSW52YWxp
ZGF0aW9uU3RhdGU7CiAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIGxheW91dCBsb2dpYyBm
b3IgZmxleCBmb3JtYXR0aW5nIGNvbnRleHRzLgogLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nz
cy1mbGV4Ym94LTEvCkBAIC00NywxNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKLSAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgcG9zaXRpb25pbmcg
YW5kIHNpemluZyBmb3IgZmxleCBpdGVtcy4KLSAgICBjbGFzcyBHZW9tZXRyeSA6IHB1YmxpYyBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgewotICAgIHB1YmxpYzoKLSAgICAgICAgR2VvbWV0
cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0Jik7Ci0KLSAgICAgICAgSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGNvbnN0IENvbnRhaW5lckJv
eCYpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0
JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEZsZXhGb3JtYXR0
aW5nQ29udGV4dD4oRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpmb3JtYXR0aW5nQ29udGV4
dCgpKTsgfQotICAgIH07Ci0gICAgRmxleEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeSBnZW9t
ZXRyeSgpIGNvbnN0IHsgcmV0dXJuIEdlb21ldHJ5KCp0aGlzKTsgfQorICAgIEZsZXhGb3JtYXR0
aW5nR2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2l6ZUFuZFBsYWNlRmxl
eEl0ZW1zKGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCYpOwogICAgIHZvaWQgY29t
cHV0ZUludHJpbnNpY1dpZHRoQ29uc3RyYWludHNGb3JGbGV4SXRlbXMoKTsKQEAgLTY2LDExICs1
Nyw2IEBAIHByaXZhdGU6CiAgICAgRmxleEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRl
KCkgeyByZXR1cm4gZG93bmNhc3Q8RmxleEZvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRl
eHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQogfTsKIAotaW5saW5lIEZsZXhGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgZmxl
eEZvcm1hdHRpbmdDb250ZXh0KQotICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5KGZs
ZXhGb3JtYXR0aW5nQ29udGV4dCkKLXsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZGM3YzhkZDA5ODA5ZDFkMGI1ODRhYmZmNzhkZDE3OTFiZmY0Njg5OC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIK
LQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiRmxl
eEZvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCi0jaW5j
bHVkZSAiTGF5b3V0Q29udGV4dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2Ug
TGF5b3V0IHsKLQotRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMg
RmxleEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50
cyhjb25zdCBDb250YWluZXJCb3gmIGZsZXhJdGVtKQotewotICAgIGF1dG8gZml4ZWRNYXJnaW5C
b3JkZXJBbmRQYWRkaW5nID0gWyZdKGF1dG8mIGxheW91dEJveCkgewotICAgICAgICBhdXRvJiBz
dHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotICAgICAgICByZXR1cm4gZml4ZWRWYWx1ZShzdHls
ZS5tYXJnaW5TdGFydCgpKS52YWx1ZU9yKDApCi0gICAgICAgICAgICArIExheW91dFVuaXQgeyBz
dHlsZS5ib3JkZXJMZWZ0V2lkdGgoKSB9Ci0gICAgICAgICAgICArIGZpeGVkVmFsdWUoc3R5bGUu
cGFkZGluZ0xlZnQoKSkudmFsdWVPcigwKQotICAgICAgICAgICAgKyBmaXhlZFZhbHVlKHN0eWxl
LnBhZGRpbmdSaWdodCgpKS52YWx1ZU9yKDApCi0gICAgICAgICAgICArIExheW91dFVuaXQgeyBz
dHlsZS5ib3JkZXJSaWdodFdpZHRoKCkgfQotICAgICAgICAgICAgKyBmaXhlZFZhbHVlKHN0eWxl
Lm1hcmdpbkVuZCgpKS52YWx1ZU9yKDApOwotICAgIH07Ci0KLSAgICBhdXRvIGNvbXB1dGVkSW50
cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IFsmXSgpIC0+IEludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgewotICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGZsZXhJdGVtLnN0eWxlKCkubG9naWNh
bFdpZHRoKCk7Ci0gICAgICAgIC8vIE1pbmltdW0vbWF4aW11bSB3aWR0aCBjYW4ndCBiZSBkZXBl
bmRpbmcgb24gdGhlIGNvbnRhaW5pbmcgYmxvY2sncyB3aWR0aC4KLSAgICAgICAgYXV0byBuZWVk
c1Jlc29sdmVkQ29udGFpbmluZ0Jsb2NrV2lkdGggPSBsb2dpY2FsV2lkdGguaXNDYWxjdWxhdGVk
KCkgfHwgbG9naWNhbFdpZHRoLmlzUGVyY2VudCgpIHx8IGxvZ2ljYWxXaWR0aC5pc1JlbGF0aXZl
KCk7Ci0gICAgICAgIGlmIChuZWVkc1Jlc29sdmVkQ29udGFpbmluZ0Jsb2NrV2lkdGgpCi0gICAg
ICAgICAgICByZXR1cm4geyB9OwotCi0gICAgICAgIGlmIChhdXRvIHdpZHRoID0gZml4ZWRWYWx1
ZShsb2dpY2FsV2lkdGgpKQotICAgICAgICAgICAgcmV0dXJuIHsgKndpZHRoLCAqd2lkdGggfTsK
LQotICAgICAgICBBU1NFUlQoZmxleEl0ZW0uZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
KTsKLSAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gTGF5b3V0Q29udGV4
dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoZmxleEl0ZW0sIGxheW91dFN0YXRlKCkpLT5jb21w
dXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKTsKLSAgICAgICAgaWYgKGxvZ2ljYWxXaWR0
aC5pc01pbkNvbnRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiB7IGludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMubWluaW11bSwgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5taW5pbXVtIH07Ci0g
ICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNNYXhDb250ZW50KCkpCi0gICAgICAgICAgICByZXR1
cm4geyBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0sIGludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMubWF4aW11bSB9OwotICAgICAgICByZXR1cm4gaW50cmluc2ljV2lkdGhDb25zdHJh
aW50czsKLSAgICB9OwotICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IGNvbnN0
cmFpbkJ5TWluTWF4V2lkdGgoZmxleEl0ZW0sIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJh
aW50cygpKTsKLSAgICBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLmV4cGFuZChmaXhlZE1hcmdp
bkJvcmRlckFuZFBhZGRpbmcoZmxleEl0ZW0pKTsKLSAgICByZXR1cm4gaW50cmluc2ljV2lkdGhD
b25zdHJhaW50czsKLX0KLQotfQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21ldHJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4
Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzFiNWNmYzI2MTU1MmRhZjk0Y2Qy
MjY5YmM1OThlNDcyMTg5ZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBA
IC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVk
ZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitGbGV4Rm9ybWF0dGluZ0dl
b21ldHJ5OjpGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5KGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4
dCYgZmxleEZvcm1hdHRpbmdDb250ZXh0KQorICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5KGZsZXhGb3JtYXR0aW5nQ29udGV4dCkKK3sKK30KKworRm9ybWF0dGluZ0NvbnRleHQ6Oklu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aW50cmluc2lj
V2lkdGhDb25zdHJhaW50cyhjb25zdCBDb250YWluZXJCb3gmIGZsZXhJdGVtKQoreworICAgIGF1
dG8gZml4ZWRNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nID0gWyZdKGF1dG8mIGxheW91dEJveCkgewor
ICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOworICAgICAgICByZXR1cm4g
Zml4ZWRWYWx1ZShzdHlsZS5tYXJnaW5TdGFydCgpKS52YWx1ZU9yKDApCisgICAgICAgICAgICAr
IExheW91dFVuaXQgeyBzdHlsZS5ib3JkZXJMZWZ0V2lkdGgoKSB9CisgICAgICAgICAgICArIGZp
eGVkVmFsdWUoc3R5bGUucGFkZGluZ0xlZnQoKSkudmFsdWVPcigwKQorICAgICAgICAgICAgKyBm
aXhlZFZhbHVlKHN0eWxlLnBhZGRpbmdSaWdodCgpKS52YWx1ZU9yKDApCisgICAgICAgICAgICAr
IExheW91dFVuaXQgeyBzdHlsZS5ib3JkZXJSaWdodFdpZHRoKCkgfQorICAgICAgICAgICAgKyBm
aXhlZFZhbHVlKHN0eWxlLm1hcmdpbkVuZCgpKS52YWx1ZU9yKDApOworICAgIH07CisKKyAgICBh
dXRvIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IFsmXSgpIC0+IEZvcm1hdHRp
bmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsKKyAgICAgICAgYXV0byBsb2dp
Y2FsV2lkdGggPSBmbGV4SXRlbS5zdHlsZSgpLmxvZ2ljYWxXaWR0aCgpOworICAgICAgICAvLyBN
aW5pbXVtL21heGltdW0gd2lkdGggY2FuJ3QgYmUgZGVwZW5kaW5nIG9uIHRoZSBjb250YWluaW5n
IGJsb2NrJ3Mgd2lkdGguCisgICAgICAgIGF1dG8gbmVlZHNSZXNvbHZlZENvbnRhaW5pbmdCbG9j
a1dpZHRoID0gbG9naWNhbFdpZHRoLmlzQ2FsY3VsYXRlZCgpIHx8IGxvZ2ljYWxXaWR0aC5pc1Bl
cmNlbnQoKSB8fCBsb2dpY2FsV2lkdGguaXNSZWxhdGl2ZSgpOworICAgICAgICBpZiAobmVlZHNS
ZXNvbHZlZENvbnRhaW5pbmdCbG9ja1dpZHRoKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgICAgICBpZiAoYXV0byB3aWR0aCA9IGZpeGVkVmFsdWUobG9naWNhbFdpZHRoKSkKKyAgICAg
ICAgICAgIHJldHVybiB7ICp3aWR0aCwgKndpZHRoIH07CisKKyAgICAgICAgQVNTRVJUKGZsZXhJ
dGVtLmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgICAgIGF1dG8gaW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250
ZXh0KGZsZXhJdGVtLCBsYXlvdXRTdGF0ZSgpKS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0
cmFpbnRzKCk7CisgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNNaW5Db250ZW50KCkpCisgICAg
ICAgICAgICByZXR1cm4geyBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1pbmltdW0sIGludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMubWluaW11bSB9OworICAgICAgICBpZiAobG9naWNhbFdpZHRo
LmlzTWF4Q29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIHsgaW50cmluc2ljV2lkdGhDb25z
dHJhaW50cy5tYXhpbXVtLCBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0gfTsKKyAg
ICAgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7CisgICAgfTsKKyAgICBhdXRv
IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBjb25zdHJhaW5CeU1pbk1heFdpZHRoKGZsZXhJ
dGVtLCBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSk7CisgICAgaW50cmluc2lj
V2lkdGhDb25zdHJhaW50cy5leHBhbmQoZml4ZWRNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKGZsZXhJ
dGVtKSk7CisgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7Cit9CisKK30KK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hN2ZlNWQ4NmRhODU4OGYyMjVjMjBmMDE5OGIxMmMyYWNiMmQ0ZWEzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4
L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKwor
I2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJGb3JtYXR0aW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworbmFtZXNwYWNlIExheW91dCB7CisKKy8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBwb3NpdGlv
bmluZyBhbmQgc2l6aW5nIGZvciBmbGV4IGl0ZW1zLgorY2xhc3MgRmxleEZvcm1hdHRpbmdHZW9t
ZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgeworcHVibGljOgorICAg
IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0Jik7CisK
KyAgICBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBpbnRyaW5z
aWNXaWR0aENvbnN0cmFpbnRzKGNvbnN0IENvbnRhaW5lckJveCYpOworCitwcml2YXRlOgorICAg
IGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7
IHJldHVybiBkb3duY2FzdDxGbGV4Rm9ybWF0dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KK307CisKK30KK30KKworI2VuZGlm
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>