<?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>194501</bug_id>
          
          <creation_ts>2019-02-11 08:23:16 -0800</creation_ts>
          <short_desc>Support simulated mouse events on iOS based on a PlatformTouchEvent</short_desc>
          <delta_ts>2019-02-13 05:34:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1504872</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-02-11 08:23:16 -0800</bug_when>
    <thetext>We&apos;d like to experiment with dispatching mouse events on iOS as touches happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504873</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-02-11 08:23:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/46910790&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504875</commentid>
    <comment_count>2</comment_count>
      <attachid>361681</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-02-11 08:32:15 -0800</bug_when>
    <thetext>Created attachment 361681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504876</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-02-11 08:32:38 -0800</bug_when>
    <thetext>I will be adding tests in an upcoming patch, wanted to get EWS some time to try this out first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504877</commentid>
    <comment_count>4</comment_count>
      <attachid>361682</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-02-11 08:53:58 -0800</bug_when>
    <thetext>Created attachment 361682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504903</commentid>
    <comment_count>5</comment_count>
      <attachid>361682</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-02-11 10:07:48 -0800</bug_when>
    <thetext>Comment on attachment 361682
Patch

no tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505706</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-02-13 05:34:53 -0800</bug_when>
    <thetext>Committed r241432: &lt;https://trac.webkit.org/changeset/241432&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361681</attachid>
            <date>2019-02-11 08:32:15 -0800</date>
            <delta_ts>2019-02-11 08:53:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194501-20190211173213.patch</filename>
            <type>text/plain</type>
            <size>25679</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJlZTJlODYxNjk0YzBi
NjI0NTMwMDljMDhjZjk2ODA1MmMzNTQyMy4uOWVkZWI0NDNjMWQ3OTgxMGQ0YTY2NGUyOGM4ZDM1
MTljYmZhNTcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTAyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBzaW11bGF0
ZWQgbW91c2UgZXZlbnRzIG9uIGlPUyBiYXNlZCBvbiBhIFBsYXRmb3JtVG91Y2hFdmVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTAxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjkxMDc5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdHdvIG5ldyBpbnRlcm5hbCBy
dW50aW1lIGZsYWdzIHRvIGNvbnRyb2wgd2hldGhlciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIHNo
b3VsZCBiZSBkaXBhdGNoZWQgYWxvbmcgd2l0aCB0b3VjaCBldmVudHMgYW5kIHdoZXRoZXIKKyAg
ICAgICAgc2ltdWxhdGVkIG1vdXNlbW92ZSBldmVudHMgZGlzcGF0Y2hlZCBzaG91bGQgYXV0b21h
dGljYWxseSB0cmlnZ2VyIHRoZSBiZWhhdmlvciBwcmV2ZW50RGVmYXVsdCgpIHdvdWxkIGFsc28g
dHJpZ2dlci4gVG8gZmFjaWxpdGF0ZSB0aGF0LCB3ZSBhbGxvdworICAgICAgICBmb3IgYSBNb3Vz
ZUV2ZW50IHRvIGJlIGNyZWF0ZWQsIG11Y2ggbGlrZSBhIFBvaW50ZXJFdmVudCwgYmFzZWQgb24g
YSBQbGF0Zm9ybVRvdWNoRXZlbnQuIFRoZW4sIHdlIHNldCBhIGZsYWcgb24gRXZlbnQgd2l0aGlu
IEV2ZW50VGFyZ2V0Ojppbm5lckludm9rZUV2ZW50TGlzdGVuZXJzKCkKKyAgICAgICAgdG8gc2Vl
IHdoZXRoZXIgYW55IHBhZ2UgY29kZSBoYXMgYmVlbiBldmFsdWF0ZWQgYXMgYSByZXN1bHQgb2Yg
YSBtb3VzZW1vdmUgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZC4gRmluYWxseSwgd2UgYWxzbyB0cmFj
ayBtb3VzZSBldmVudHMgd2hlbiBpbnZhbGlkYXRpbmcKKyAgICAgICAgdG91Y2ggcmVnaW9ucyBw
cm92aWRlZCB0aGUgcmVxdWlyZWQgaW50ZXJuYWwgcnVudGltZSBmbGFnIGlzIG9uLgorCisgICAg
ICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXZl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjpoYXNFbmNvdW50ZXJlZExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjpzZXRIYXNFbmNvdW50ZXJlZExpc3RlbmVy
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRO
YW1lczo6aXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnROYW1lczo6dG91Y2hSZWxhdGVkRXZlbnROYW1lcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudE5hbWVzOjpleHRlbmRlZFRvdWNoUmVsYXRlZEV2ZW50TmFtZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnROYW1lczo6aXNUb3VjaEV2ZW50VHlwZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudE5hbWVzOjp0b3VjaEFuZFBvaW50ZXJFdmVu
dE5hbWVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmlubmVySW52b2tlRXZlbnRMaXN0ZW5lcnMp
OgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnRyeUFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5UmVt
b3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKiBkb20vaW9zL01vdXNlRXZlbnRJT1MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Om1vdXNlRXZlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNl
RXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL2lvcy9Qb2ludGVyRXZlbnRJT1MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9pbnRlckV2ZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b2ludGVyRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpldmVudFR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6bW91c2VF
dmVudHNTaW11bGF0aW9uRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRNb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Om1vdXNlbW92ZUV2ZW50SGFuZGxp
bmdQcmV2ZW50c0RlZmF1bHRFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNldE1vdXNlbW92ZUV2ZW50SGFuZGxpbmdQcmV2ZW50c0RlZmF1
bHRFbmFibGVkKToKKwogMjAxOS0wMi0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdIFRoZSB1c2VkIGNvbnRhaW5pbmcgYmxvY2sgd2lkdGggdmFsdWUg
aXMgb3B0aW9uYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWU1Zjk4M2I3ZGUyNTc3MDExYzNkODIzMDdjZGZjMDIx
Y2M5MWUwYi4uYTZhMjA2NzI2YmYyY2IxM2RhN2JmNjkwOWEzN2NiMDMxZTMzZTM0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wMi0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBvbiBp
T1MgYmFzZWQgb24gYSBQbGF0Zm9ybVRvdWNoRXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDUwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0d28gbmV3IGludGVybmFsIHJ1bnRpbWUgZmxh
Z3MgdG8gY29udHJvbCB3aGV0aGVyIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgc2hvdWxkIGJlIGRp
cGF0Y2hlZCBhbG9uZyB3aXRoIHRvdWNoIGV2ZW50cyBhbmQgd2hldGhlcgorICAgICAgICBzaW11
bGF0ZWQgbW91c2Vtb3ZlIGV2ZW50cyBkaXNwYXRjaGVkIHNob3VsZCBhdXRvbWF0aWNhbGx5IHRy
aWdnZXIgdGhlIGJlaGF2aW9yIHByZXZlbnREZWZhdWx0KCkgd291bGQgYWxzbyB0cmlnZ2VyLgor
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisKIDIwMTktMDItMDggIEtl
aXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOWEzMTJkMzhlN2U1Y2QwMzc4MWZj
ZTZkMTg3OGEzYjU2M2JiZjVkZi4uZTM0NjhmNDE1MjJhZDJhN2JlMDJjMWIyNDNmNDkzODUwOWFi
MGE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC03MCw2ICs3MCw3IEBAIGNyeXB0by9t
YWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KIAogZG9tL0RhdGFUcmFuc2Zlck1hYy5t
bQogCitkb20vaW9zL01vdXNlRXZlbnRJT1MuY3BwCiBkb20vaW9zL1BvaW50ZXJFdmVudElPUy5j
cHAKIGRvbS9pb3MvVG91Y2hFdmVudHMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZThiODgzNDNhYWVjZmUyNjgyZDE5
OWM4OTNkMTczNWNlZGI4NTk1Li5mYzgwYjM0MTBhZWJlZTM2YzgzYzdhNTcyNTcyMzNlMTk5MWE0
ZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05NDMxLDYgKzk0MzEsNyBAQAogCQk3MUM1QkIxQjFGQjYxMUVBMDAwN0EyQUUg
LyogQW5pbWF0YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQW5pbWF0YWJsZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAv
KiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzFDQzdBMUYxNTJBMEJGRTAwOUVFQUY5IC8qIFNWR0FuaW1hdGVkRW51
bWVyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxQ0Uy
QzUxMjIwOURDN0YwMEM0OTRCRCAvKiBNb3VzZUV2ZW50SU9TLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlRXZlbnRJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MUQwMkQ5MDFEQjU1QzRFMDBERDVDRjUgLyogbWFpbi5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IG1haW4uanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcxRDAyRDkyMURCNTVDNEUwMERENUNGNSAvKiBtZWRpYS1jb250cm9s
bGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gIm1lZGlhLWNv
bnRyb2xsZXIuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUQyNTU0RjFEQjkw
MDAyMDAwNEQ3NkIgLyogc2tpcC1iYWNrLXN1cHBvcnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSAic2tpcC1iYWNrLXN1cHBvcnQuanMiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjYwNTcsNiArMjYwNTgsNyBAQAogCQlDRTI2MTZBNDE4N0U2NUMx
MDA3OTU1RjMgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk3MUNFMkM1MTIyMDlEQzdGMDBDNDk0QkQgLyogTW91c2VFdmVudElPUy5jcHAgKi8s
CiAJCQkJMzE1NTc0Q0MyMThGNjZEMDAwRDg4RjY2IC8qIFBvaW50ZXJFdmVudElPUy5jcHAgKi8s
CiAJCQkJQTFERTcxMkIxODYxMkFDMTAwNzM0MTkyIC8qIFRvdWNoRXZlbnRzLmNwcCAqLywKIAkJ
CSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmNwcAppbmRleCA5MGJhYTk3MThjMGYxMzJjMGZiZWQwYzg4OGU5MzEy
N2I0MGNiNjE3Li5jMGRiMjkxODY0ZDk2MTQ5ZWZmNTBhNDNlYmQyZjg3ZjYwNTRkMGU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgQUxXQVlTX0lOTElORSBFdmVudDo6RXZl
bnQoTW9ub3RvbmljVGltZSBjcmVhdGVUaW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEkK
ICAgICAsIG1faXNEZWZhdWx0RXZlbnRIYW5kbGVySWdub3JlZCB7IGZhbHNlIH0KICAgICAsIG1f
aXNUcnVzdGVkIHsgaXNUcnVzdGVkID09IElzVHJ1c3RlZDo6WWVzIH0KICAgICAsIG1faXNFeGVj
dXRpbmdQYXNzaXZlRXZlbnRMaXN0ZW5lciB7IGZhbHNlIH0KKyAgICAsIG1faGFzRW5jb3VudGVy
ZWRMaXN0ZW5lciB7IGZhbHNlIH0KICAgICAsIG1fZXZlbnRQaGFzZSB7IE5PTkUgfQogICAgICwg
bV90eXBlIHsgdHlwZSB9CiAgICAgLCBtX2NyZWF0ZVRpbWUgeyBjcmVhdGVUaW1lIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50LmgKaW5kZXggMTEzNjA4NThiZjVkNDY3MDcwN2IzMDFmNzliNjEzY2Q5ODhkZDQ5Mi4uYTZj
OTM4MmMxMzA4ZDYwZjcxYjI2ODNiOTBjZTQ1ZjQ4MDg4YmNkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAg
LTEyOCw2ICsxMjgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEluUGFzc2l2ZUxpc3RlbmVy
KGJvb2wgdmFsdWUpIHsgbV9pc0V4ZWN1dGluZ1Bhc3NpdmVFdmVudExpc3RlbmVyID0gdmFsdWU7
IH0KIAorICAgIGJvb2wgaGFzRW5jb3VudGVyZWRMaXN0ZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzRW5jb3VudGVyZWRMaXN0ZW5lcjsgfQorICAgIHZvaWQgc2V0SGFzRW5jb3VudGVyZWRMaXN0
ZW5lcigpIHsgbV9oYXNFbmNvdW50ZXJlZExpc3RlbmVyID0gdHJ1ZTsgfQorCiAgICAgYm9vbCBj
YW5jZWxCdWJibGUoKSBjb25zdCB7IHJldHVybiBwcm9wYWdhdGlvblN0b3BwZWQoKTsgfQogICAg
IHZvaWQgc2V0Q2FuY2VsQnViYmxlKGJvb2wpOwogCkBAIC0xNjYsNiArMTY5LDcgQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBtX2lzRGVmYXVsdEV2ZW50SGFuZGxlcklnbm9yZWQgOiAxOwogICAg
IHVuc2lnbmVkIG1faXNUcnVzdGVkIDogMTsKICAgICB1bnNpZ25lZCBtX2lzRXhlY3V0aW5nUGFz
c2l2ZUV2ZW50TGlzdGVuZXIgOiAxOworICAgIHVuc2lnbmVkIG1faGFzRW5jb3VudGVyZWRMaXN0
ZW5lciA6IDE7CiAKICAgICB1bnNpZ25lZCBtX2V2ZW50UGhhc2UgOiAyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAppbmRleCA0NjNlZDQzNjRjNjg4NzYzNWYzYzM3M2ZiYmRmYTU1ZGUwZjM2ODQx
Li4wNjgwMTRkMDIyMWRjZTI0NWYyNjg3Mjk3MGMyN2ExMzlhNjQ4MWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKQEAgLTI2LDYgKzI2LDEwIEBACiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogI2lmICFkZWZpbmVkKEFERElUSU9OQUxfRE9NX0VWRU5UX05BTUVT
X0ZPUl9FQUNIKQpAQCAtMzU1LDEzICszNTksMTQgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3Vs
ZCBjaG9vc2Ugb25lIHRlcm0gYW5kIHN0aWNrIHRvIGl0LgogICAgIGJvb2wgaXNXaGVlbEV2ZW50
VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29uc3Q7CiAgICAgYm9vbCBpc0dl
c3R1cmVFdmVudFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwotICAg
IGJvb2wgaXNUb3VjaEV2ZW50VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29u
c3Q7CisgICAgYm9vbCBpc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSkgY29uc3Q7CiAgICAgYm9vbCBpc1RvdWNoU2Nyb2xsQmxvY2tpbmdFdmVudFR5
cGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwogI2lmIEVOQUJMRShHQU1F
UEFEKQogICAgIGJvb2wgaXNHYW1lcGFkRXZlbnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlKSBjb25zdDsKICNlbmRpZgogCi0gICAgc3RkOjphcnJheTxzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4sIDk+IHRvdWNoQW5kUG9pbnRlckV2ZW50TmFtZXMo
KSBjb25zdDsKKyAgICBzdGQ6OmFycmF5PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRv
bWljU3RyaW5nPiwgOT4gdG91Y2hSZWxhdGVkRXZlbnROYW1lcygpIGNvbnN0OworICAgIHN0ZDo6
YXJyYXk8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+LCAxMj4gZXh0
ZW5kZWRUb3VjaFJlbGF0ZWRFdmVudE5hbWVzKCkgY29uc3Q7CiAgICAgc3RkOjphcnJheTxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4sIDM+IGdlc3R1cmVFdmVudE5h
bWVzKCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC0zODksOCArMzk0LDE0IEBAIGlubGluZSBib29s
IEV2ZW50TmFtZXM6OmlzVG91Y2hTY3JvbGxCbG9ja2luZ0V2ZW50VHlwZShjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50CiAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSB0b3VjaG1vdmVFdmVudDsKIH0K
IAotaW5saW5lIGJvb2wgRXZlbnROYW1lczo6aXNUb3VjaEV2ZW50VHlwZShjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSkgY29uc3QKK2lubGluZSBib29sIEV2ZW50TmFtZXM6OmlzVG91Y2hS
ZWxhdGVkRXZlbnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdAogewor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkubW91c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZCgpKSB7CisgICAg
ICAgIGlmIChldmVudFR5cGUgPT0gbW91c2Vkb3duRXZlbnQgfHwgZXZlbnRUeXBlID09IG1vdXNl
bW92ZUV2ZW50IHx8IGV2ZW50VHlwZSA9PSBtb3VzZXVwRXZlbnQpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gZXZlbnRUeXBlID09IHRvdWNoc3Rh
cnRFdmVudAogICAgICAgICB8fCBldmVudFR5cGUgPT0gdG91Y2htb3ZlRXZlbnQKICAgICAgICAg
fHwgZXZlbnRUeXBlID09IHRvdWNoZW5kRXZlbnQKQEAgLTQwOCwxMSArNDE5LDE2IEBAIGlubGlu
ZSBib29sIEV2ZW50TmFtZXM6OmlzV2hlZWxFdmVudFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUpIGNvbnN0CiAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSBtb3VzZXdoZWVsRXZlbnQ7
CiB9CiAKLWlubGluZSBzdGQ6OmFycmF5PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRv
bWljU3RyaW5nPiwgOT4gRXZlbnROYW1lczo6dG91Y2hBbmRQb2ludGVyRXZlbnROYW1lcygpIGNv
bnN0CitpbmxpbmUgc3RkOjphcnJheTxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IEF0b21p
Y1N0cmluZz4sIDk+IEV2ZW50TmFtZXM6OnRvdWNoUmVsYXRlZEV2ZW50TmFtZXMoKSBjb25zdAog
ewogICAgIHJldHVybiB7IHsgdG91Y2hzdGFydEV2ZW50LCB0b3VjaG1vdmVFdmVudCwgdG91Y2hl
bmRFdmVudCwgdG91Y2hjYW5jZWxFdmVudCwgdG91Y2hmb3JjZWNoYW5nZUV2ZW50LCBwb2ludGVy
ZG93bkV2ZW50LCBwb2ludGVybW92ZUV2ZW50LCBwb2ludGVydXBFdmVudCwgcG9pbnRlcmNhbmNl
bEV2ZW50IH0gfTsKIH0KIAoraW5saW5lIHN0ZDo6YXJyYXk8c3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjxjb25zdCBBdG9taWNTdHJpbmc+LCAxMj4gRXZlbnROYW1lczo6ZXh0ZW5kZWRUb3VjaFJlbGF0
ZWRFdmVudE5hbWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB7IHRvdWNoc3RhcnRFdmVudCwg
dG91Y2htb3ZlRXZlbnQsIHRvdWNoZW5kRXZlbnQsIHRvdWNoY2FuY2VsRXZlbnQsIHRvdWNoZm9y
Y2VjaGFuZ2VFdmVudCwgcG9pbnRlcmRvd25FdmVudCwgcG9pbnRlcm1vdmVFdmVudCwgcG9pbnRl
cnVwRXZlbnQsIHBvaW50ZXJjYW5jZWxFdmVudCwgbW91c2Vkb3duRXZlbnQsIG1vdXNlbW92ZUV2
ZW50LCBtb3VzZXVwRXZlbnQgfSB9OworfQorICAgIAogaW5saW5lIHN0ZDo6YXJyYXk8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+LCAzPiBFdmVudE5hbWVzOjpnZXN0
dXJlRXZlbnROYW1lcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgeyBnZXN0dXJlc3RhcnRFdmVu
dCwgZ2VzdHVyZWNoYW5nZUV2ZW50LCBnZXN0dXJlZW5kRXZlbnQgfSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5jcHAKaW5kZXggN2FlNTM0NDlmZDAwZWU2NzllNzc0MjdkN2Y2NjM1MGM4NzJl
N2Y5Mi4uYWNjZGI2MGFhZTM1NDNhN2YwNjA1NGU2MzQwMmZiNDU0M2JlZDBmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRE9NV3Jh
cHBlcldvcmxkLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxCb2R5
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTI5OSw2ICszMDAsMTQgQEAgdm9pZCBFdmVu
dFRhcmdldDo6aW5uZXJJbnZva2VFdmVudExpc3RlbmVycyhFdmVudCYgZXZlbnQsIEV2ZW50TGlz
dGVuZXJWZWN0b3IgbGkKICAgICAgICAgcmVnaXN0ZXJlZExpc3RlbmVyLT5jYWxsYmFjaygpLmhh
bmRsZUV2ZW50KGNvbnRleHQsIGV2ZW50KTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRIYW5kbGVFdmVudChjb250ZXh0KTsKIAorICAgICAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5tb3VzZW1vdmVFdmVudEhhbmRsaW5nUHJldmVu
dHNEZWZhdWx0RW5hYmxlZCgpICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vt
b3ZlRXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChpczxFbGVtZW50PihldmVudC5jdXJyZW50VGFy
Z2V0KCkpKSB7CisgICAgICAgICAgICAgICAgYXV0byogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KGV2ZW50LmN1cnJlbnRUYXJnZXQoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFpczxIVE1M
Qm9keUVsZW1lbnQ+KGVsZW1lbnQpICYmICFpczxIVE1MSHRtbEVsZW1lbnQ+KGVsZW1lbnQpKQor
ICAgICAgICAgICAgICAgICAgICBldmVudC5zZXRIYXNFbmNvdW50ZXJlZExpc3RlbmVyKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBpZiAocmVnaXN0ZXJlZExpc3RlbmVy
LT5pc1Bhc3NpdmUoKSkKICAgICAgICAgICAgIGV2ZW50LnNldEluUGFzc2l2ZUxpc3RlbmVyKGZh
bHNlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBkN2IzZjEyOTEzMWRhNjYz
NDYxYTQ0OWRmNTc1YWQ2M2Q5YTUwNTE3Li4wOWI3Yjc0MDY4ZjVmYmU4NGI5N2I5M2NlOTNiYWRh
OTgzYzUzY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKQEAgLTI2LDYgKzI2LDEwIEBACiAj
aW5jbHVkZSAiTW91c2VFdmVudEluaXQuaCIKICNpbmNsdWRlICJNb3VzZVJlbGF0ZWRFdmVudC5o
IgogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNp
bmNsdWRlICJQbGF0Zm9ybVRvdWNoRXZlbnRJT1MuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERhdGFUcmFuc2ZlcjsKQEAgLTQ4LDYgKzUyLDEwIEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBNb3VzZUV2ZW50SW5pdCYpOwogCisjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+
IGNyZWF0ZShjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmLCB1bnNpZ25lZCB0b3VjaEluZGV4LCBS
ZWY8V2luZG93UHJveHk+JiYpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIH5Nb3VzZUV2ZW50KCk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluaXRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRv
d1Byb3h5PiYmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDAxOWNhZmYzZTBmYTY4ZWEzMmE4YTQ1ZDBl
MWVlMGRiMGNlN2M5MDMuLjA3OGJjZTBiMjJjNzAyMjcyZTJlMzNlNjE3OTkwNTI1NTAwNDE0NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTIwNzksOCArMjA3OSwxNyBAQCB2b2lkIE5vZGU6Om1vdmVO
b2RlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1
bWVudCkKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIG51bVRvdWNoRXZlbnRMaXN0ZW5l
cnMgPSAwOwotICAgICAgICBmb3IgKGF1dG8mIG5hbWUgOiBldmVudE5hbWVzKCkudG91Y2hBbmRQ
b2ludGVyRXZlbnROYW1lcygpKQotICAgICAgICAgICAgbnVtVG91Y2hFdmVudExpc3RlbmVycyAr
PSBldmVudExpc3RlbmVycyhuYW1lKS5zaXplKCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubW91
c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIG5h
bWUgOiBldmVudE5hbWVzKCkuZXh0ZW5kZWRUb3VjaFJlbGF0ZWRFdmVudE5hbWVzKCkpCisgICAg
ICAgICAgICAgICAgbnVtVG91Y2hFdmVudExpc3RlbmVycyArPSBldmVudExpc3RlbmVycyhuYW1l
KS5zaXplKCk7CisgICAgICAgIH0gZWxzZSB7CisjZW5kaWYKKyAgICAgICAgICAgIGZvciAoYXV0
byYgbmFtZSA6IGV2ZW50TmFtZXMoKS50b3VjaFJlbGF0ZWRFdmVudE5hbWVzKCkpCisgICAgICAg
ICAgICAgICAgbnVtVG91Y2hFdmVudExpc3RlbmVycyArPSBldmVudExpc3RlbmVycyhuYW1lKS5z
aXplKCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICAgICAgfQorI2VuZGlmCiAKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVRvdWNoRXZlbnRMaXN0ZW5lcnM7ICsr
aSkgewogICAgICAgICAgICAgb2xkRG9jdW1lbnQuZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIo
KnRoaXMpOwpAQCAtMjEyNSw3ICsyMTM0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHRyeUFkZEV2
ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmUKICAg
ICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGV2ZW50VHlw
ZSk7CiAgICAgaWYgKGV2ZW50TmFtZXMoKS5pc1doZWVsRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAg
ICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIoKnRh
cmdldE5vZGUpOwotICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoRXZlbnRUeXBlKGV2
ZW50VHlwZSkpCisgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hSZWxhdGVkRXZlbnRU
eXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZGlkQWRkVG91
Y2hFdmVudEhhbmRsZXIoKnRhcmdldE5vZGUpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
QEAgLTIxNDAsNyArMjE0OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlBZGRFdmVudExpc3Rl
bmVyKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlCiAgICAgICAgIHRh
cmdldE5vZGUtPmRvY3VtZW50KCkuZG9tV2luZG93KCktPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRU
eXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9ucyk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQotICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQor
ICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUoZXZlbnRUeXBlKSkK
ICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5hZGRUb3VjaEV2ZW50TGlzdGVuZXIoKnRh
cmdldE5vZGUpOwogI2VuZGlmCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIx
NjcsNyArMjE3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVFdmVudExpc3RlbmVy
KE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAvLyBsaXN0ZW5lcnMg
Zm9yIGVhY2ggdHlwZSwgbm90IGp1c3QgYSBib29sIC0gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMzg2MQogICAgIGlmIChldmVudE5hbWVzKCkuaXNXaGVlbEV2
ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRpZFJl
bW92ZVdoZWVsRXZlbnRIYW5kbGVyKCp0YXJnZXROb2RlKTsKLSAgICBlbHNlIGlmIChldmVudE5h
bWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQorICAgIGVsc2UgaWYgKGV2ZW50TmFt
ZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICB0YXJnZXRO
b2RlLT5kb2N1bWVudCgpLmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCp0YXJnZXROb2RlKTsK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTgxLDcgKzIxOTAsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgdHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBBdG9taWNTdHJpbmcmCiAgICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZG9tV2luZG93
KCktPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7CiAK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaEV2
ZW50VHlwZShldmVudFR5cGUpKQorICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRF
dmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5yZW1v
dmVUb3VjaEV2ZW50TGlzdGVuZXIoKnRhcmdldE5vZGUpOwogI2VuZGlmCiAjZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTI0NzcsNyArMjQ4Niw3IEBAIHZvaWQgTm9kZTo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQoKS5mcmFtZSgpKQogICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5kZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoc3RhcnROb2RlLCBkb3duY2FzdDxXaGVlbEV2
ZW50PihldmVudCkpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgfSBlbHNlIGlmIChpczxUb3VjaEV2ZW50PihldmVudCkgJiYgZXZlbnROYW1l
cygpLmlzVG91Y2hFdmVudFR5cGUoZXZlbnRUeXBlKSkgeworICAgIH0gZWxzZSBpZiAoaXM8VG91
Y2hFdmVudD4oZXZlbnQpICYmIGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShl
dmVudFR5cGUpKSB7CiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5k
ZXJlcigpOwogICAgICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFpczxSZW5kZXJCb3g+KCpyZW5k
ZXJlcikgfHwgIWRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5jYW5CZVNjcm9sbGVkQW5k
SGFzU2Nyb2xsYWJsZUFyZWEoKSkpCiAgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5w
YXJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9pb3MvTW91c2VFdmVudElP
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vaW9zL01vdXNlRXZlbnRJT1MuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2NjQ4N2RlOTBjZDNhYmI3NzI1MWE3MmNkZDE4MjUzZDU4NjMzMzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vaW9zL01vdXNlRXZlbnRJT1MuY3BwCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1vdXNl
RXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisKKyNpbXBvcnQgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGF0aWMgQXRvbWljU3RyaW5nIG1vdXNlRXZlbnRUeXBlKFBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hQaGFzZVR5cGUgcGhhc2UpCit7CisgICAgaWYgKHBoYXNlID09IFBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hQaGFzZUJlZ2FuKQorICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLm1vdXNlZG93
bkV2ZW50OworICAgIGlmIChwaGFzZSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VN
b3ZlZCB8fCBwaGFzZSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VTdGF0aW9uYXJ5
KQorICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50OworICAgIGlmIChw
aGFzZSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VFbmRlZCkKKyAgICAgICAgcmV0
dXJuIGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQ7CisgICAgcmV0dXJuIG51bGxBdG9tKCk7Cit9
CisKK1JlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgUGxhdGZvcm1Ub3Vj
aEV2ZW50JiBldmVudCwgdW5zaWduZWQgaW5kZXgsIFJlZjxXaW5kb3dQcm94eT4mJiB2aWV3KQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQobW91c2VFdmVudFR5cGUoZXZl
bnQudG91Y2hQaGFzZUF0SW5kZXgoaW5kZXgpKSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJs
ZTo6WWVzLCBJc0NvbXBvc2VkOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLCBldmVudC50b3VjaExvY2F0aW9uQXRJbmRl
eChpbmRleCksIGV2ZW50LnRvdWNoTG9jYXRpb25BdEluZGV4KGluZGV4KSwgeyB9LCBldmVudC5t
b2RpZmllcnMoKSwgMCwgMCwgbnVsbHB0ciwgMCwgMCwgbnVsbHB0ciwgSXNTaW11bGF0ZWQ6Ok5v
LCBJc1RydXN0ZWQ6OlllcykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL2lvcy9Qb2ludGVyRXZlbnRJT1MuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL2lvcy9Qb2ludGVyRXZlbnRJT1MuY3BwCmluZGV4IDQ1MDI0MDBmOGFkNDk2
ZTg3NmMxNGI0ZmQyYTk4YWZlMGJmZWEwMDguLmIxOTFkMTk5ODhkZWY1MTY4NDRlOTM4NWUyNWQ0
NDFkYzg1OGJhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9pb3MvUG9pbnRlckV2
ZW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vaW9zL1BvaW50ZXJFdmVudElPUy5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgQXRv
bWljU3RyaW5nIGV2ZW50VHlwZShQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VUeXBlIHBo
YXNlKQorc3RhdGljIEF0b21pY1N0cmluZyBwb2ludGVyRXZlbnRUeXBlKFBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQaGFzZVR5cGUgcGhhc2UpCiB7CiAgICAgc3dpdGNoIChwaGFzZSkgewogICAg
IGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBoYXNlQmVnYW46CkBAIC02MCw3ICs2MCw3
IEBAIHN0YXRpYyBQb2ludGVyRXZlbnQ6OklzQ2FuY2VsYWJsZSBwaGFzZUlzQ2FuY2VsYWJsZShQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhCiBSZWY8UG9pbnRlckV2ZW50PiBQb2ludGVyRXZl
bnQ6OmNyZWF0ZShjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50LCB1bnNpZ25lZCBpbmRl
eCwgYm9vbCBpc1ByaW1hcnksIFJlZjxXaW5kb3dQcm94eT4mJiB2aWV3KQogewogICAgIGF1dG8g
cGhhc2UgPSBldmVudC50b3VjaFBoYXNlQXRJbmRleChpbmRleCk7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUG9pbnRlckV2ZW50KGV2ZW50VHlwZShwaGFzZSksIGV2ZW50LCBwaGFzZUlzQ2Fu
Y2VsYWJsZShwaGFzZSksIGluZGV4LCBpc1ByaW1hcnksIFdURk1vdmUodmlldykpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQb2ludGVyRXZlbnQocG9pbnRlckV2ZW50VHlwZShwaGFzZSks
IGV2ZW50LCBwaGFzZUlzQ2FuY2VsYWJsZShwaGFzZSksIGluZGV4LCBpc1ByaW1hcnksIFdURk1v
dmUodmlldykpKTsKIH0KIAogUG9pbnRlckV2ZW50OjpQb2ludGVyRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50LCBJc0NhbmNlbGFi
bGUgaXNDYW5jZWxhYmxlLCB1bnNpZ25lZCBpbmRleCwgYm9vbCBpc1ByaW1hcnksIFJlZjxXaW5k
b3dQcm94eT4mJiB2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA5NzkzMzZk
MGE1OGUwOGFkYWMxZjhiODMyMzAxMDRjMGY3NDU0YWUuLmE3ZGIwN2JiYjVjMmFkYTJjOGVhOGRh
ZWNiOTQyODgwZTYxNmIzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE4MTEs
NyArMTgxMSw3IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lCiAgICAgICAgIGRvY3VtZW50LT5h
ZGRMaXN0ZW5lclR5cGVJZk5lZWRlZChldmVudFR5cGUpOwogICAgICAgICBpZiAoZXZlbnROYW1l
cygpLmlzV2hlZWxFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgICAgIGRvY3VtZW50LT5k
aWRBZGRXaGVlbEV2ZW50SGFuZGxlcigqZG9jdW1lbnQpOwotICAgICAgICBlbHNlIGlmIChldmVu
dE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQorICAgICAgICBlbHNlIGlmIChl
dmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAg
ICAgIGRvY3VtZW50LT5kaWRBZGRUb3VjaEV2ZW50SGFuZGxlcigqZG9jdW1lbnQpOwogICAgICAg
ICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCkKICAgICAg
ICAgICAgIGRpZEFkZFN0b3JhZ2VFdmVudExpc3RlbmVyKCp0aGlzKTsKQEAgLTE4MjYsNyArMTgy
Niw3IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lCiAgICAgICAgIGluY3JlbWVudFNjcm9sbEV2
ZW50TGlzdGVuZXJzQ291bnQoKTsKICNlbmRpZgogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoRXZlbnRUeXBlKGV2ZW50VHlwZSkp
CisgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKGV2ZW50
VHlwZSkpCiAgICAgICAgICsrbV90b3VjaEFuZEdlc3R1cmVFdmVudExpc3RlbmVyQ291bnQ7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQpAQCAtMTkyMCw3ICsxOTIwLDcg
QEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoZXZlbnROYW1lcygpLmlzV2hlZWxFdmVu
dFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgICAgIGRvY3VtZW50LT5kaWRSZW1vdmVXaGVlbEV2
ZW50SGFuZGxlcigqZG9jdW1lbnQpOwotICAgICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNU
b3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQorICAgICAgICBlbHNlIGlmIChldmVudE5hbWVzKCku
aXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgICAgIGRvY3VtZW50
LT5kaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcigqZG9jdW1lbnQpOwogICAgIH0KIApAQCAtMTk0
OSw3ICsxOTQ5LDcgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgZGVjcmVtZW50
U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCi0gICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hFdmVudFR5cGUoZXZl
bnRUeXBlKSkgeworICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50
VHlwZShldmVudFR5cGUpKSB7CiAgICAgICAgIEFTU0VSVChtX3RvdWNoQW5kR2VzdHVyZUV2ZW50
TGlzdGVuZXJDb3VudCA+IDApOwogICAgICAgICAtLW1fdG91Y2hBbmRHZXN0dXJlRXZlbnRMaXN0
ZW5lckNvdW50OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKaW5kZXggMGY3ZTdhNTAwNDUwYTY1MDZkZjNlMjhkM2NhOTM0ZmMwY2MwNzYzYS4u
NzE3NmQyZmY2YmU3NzZiOThmOWMyNTRlY2FjODYxZmIwYzAyNjM3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTM0NCw2ICszNDQsMTQgQEAg
cHVibGljOgogICAgIGJvb2wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QWRDbGlja0F0
dHJpYnV0aW9uRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgYm9v
bCBtb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZUV2
ZW50c1NpbXVsYXRpb25FbmFibGVkOyB9CisgICAgdm9pZCBzZXRNb3VzZUV2ZW50c1NpbXVsYXRp
b25FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fbW91c2VFdmVudHNTaW11bGF0aW9uRW5hYmxl
ZCA9IGlzRW5hYmxlZDsgfQorCisgICAgYm9vbCBtb3VzZW1vdmVFdmVudEhhbmRsaW5nUHJldmVu
dHNEZWZhdWx0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2Vtb3ZlRXZlbnRIYW5kbGlu
Z1ByZXZlbnRzRGVmYXVsdEVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldE1vdXNlbW92ZUV2ZW50SGFu
ZGxpbmdQcmV2ZW50c0RlZmF1bHRFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fbW91c2Vtb3Zl
RXZlbnRIYW5kbGluZ1ByZXZlbnRzRGVmYXVsdEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyNlbmRp
ZgorICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
JiBzaGFyZWRGZWF0dXJlcygpOwogCiBwcml2YXRlOgpAQCAtNTIxLDYgKzUyOSwxMSBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBtX2FkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9Owog
CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBib29sIG1fbW91c2VFdmVudHNTaW11bGF0
aW9uRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX21vdXNlbW92ZUV2ZW50SGFuZGxpbmdQ
cmV2ZW50c0RlZmF1bHRFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgZnJpZW5kIGNs
YXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBjY2U0YWNlODM1NjMy
NWU3YTBhMDBlNTIzZjllNGM5OTJmOTE1MmZmLi4xNzdlMzRiMzljZjI3ZTRhMzVkOTUwOGQ2YWZi
NTc0NTkxZjJhNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
QEAgLTE1MzQsNiArMTUzNCwyNCBAQCBBZENsaWNrQXR0cmlidXRpb25FbmFibGVkOgogICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjYXRlZ29yeTogaW50ZXJuYWwK
IAorTW91c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiTW91c2UgZXZlbnRzIHNpbXVsYXRp
b24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBtb3VzZSBldmVudHMgZGlz
cGF0Y2ggYWxvbmcgd2l0aCB0b3VjaCBldmVudHMgb24gaU9TIgorICB3ZWJjb3JlQmluZGluZzog
UnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjYXRlZ29yeTogaW50ZXJuYWwKKyAgY29uZGl0aW9u
OiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorCitNb3VzZW1vdmVFdmVudEhhbmRsaW5nUHJldmVudHNE
ZWZhdWx0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1
bWFuUmVhZGFibGVOYW1lOiAiUHJldmVudCBkZWZhdWx0IGZvciBtb3VzZW1vdmUgZXZlbnRzIgor
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBbGxvd3MgaGFuZGxpbmcgb2YgbW91c2Vtb3Zl
IGV2ZW50cyB0byBpbXBsaWNpdGx5IGNhbGwgcHJldmVudERlZmF1bHQoKSBvbiBpT1MiCisgIHdl
YmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGNhdGVnb3J5OiBpbnRlcm5h
bAorICBjb25kaXRpb246IEVOQUJMRShUT1VDSF9FVkVOVFMpCisKICMgRGVwcmVjYXRlZAogCiBJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361682</attachid>
            <date>2019-02-11 08:53:58 -0800</date>
            <delta_ts>2019-02-11 10:07:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194501-20190211175356.patch</filename>
            <type>text/plain</type>
            <size>25810</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJlZTJlODYxNjk0YzBi
NjI0NTMwMDljMDhjZjk2ODA1MmMzNTQyMy4uOWVkZWI0NDNjMWQ3OTgxMGQ0YTY2NGUyOGM4ZDM1
MTljYmZhNTcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTAyLTExICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBzaW11bGF0
ZWQgbW91c2UgZXZlbnRzIG9uIGlPUyBiYXNlZCBvbiBhIFBsYXRmb3JtVG91Y2hFdmVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTAxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NjkxMDc5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdHdvIG5ldyBpbnRlcm5hbCBy
dW50aW1lIGZsYWdzIHRvIGNvbnRyb2wgd2hldGhlciBzaW11bGF0ZWQgbW91c2UgZXZlbnRzIHNo
b3VsZCBiZSBkaXBhdGNoZWQgYWxvbmcgd2l0aCB0b3VjaCBldmVudHMgYW5kIHdoZXRoZXIKKyAg
ICAgICAgc2ltdWxhdGVkIG1vdXNlbW92ZSBldmVudHMgZGlzcGF0Y2hlZCBzaG91bGQgYXV0b21h
dGljYWxseSB0cmlnZ2VyIHRoZSBiZWhhdmlvciBwcmV2ZW50RGVmYXVsdCgpIHdvdWxkIGFsc28g
dHJpZ2dlci4gVG8gZmFjaWxpdGF0ZSB0aGF0LCB3ZSBhbGxvdworICAgICAgICBmb3IgYSBNb3Vz
ZUV2ZW50IHRvIGJlIGNyZWF0ZWQsIG11Y2ggbGlrZSBhIFBvaW50ZXJFdmVudCwgYmFzZWQgb24g
YSBQbGF0Zm9ybVRvdWNoRXZlbnQuIFRoZW4sIHdlIHNldCBhIGZsYWcgb24gRXZlbnQgd2l0aGlu
IEV2ZW50VGFyZ2V0Ojppbm5lckludm9rZUV2ZW50TGlzdGVuZXJzKCkKKyAgICAgICAgdG8gc2Vl
IHdoZXRoZXIgYW55IHBhZ2UgY29kZSBoYXMgYmVlbiBldmFsdWF0ZWQgYXMgYSByZXN1bHQgb2Yg
YSBtb3VzZW1vdmUgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZC4gRmluYWxseSwgd2UgYWxzbyB0cmFj
ayBtb3VzZSBldmVudHMgd2hlbiBpbnZhbGlkYXRpbmcKKyAgICAgICAgdG91Y2ggcmVnaW9ucyBw
cm92aWRlZCB0aGUgcmVxdWlyZWQgaW50ZXJuYWwgcnVudGltZSBmbGFnIGlzIG9uLgorCisgICAg
ICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXZl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjpoYXNFbmNvdW50ZXJlZExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjpzZXRIYXNFbmNvdW50ZXJlZExpc3RlbmVy
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRO
YW1lczo6aXNUb3VjaFJlbGF0ZWRFdmVudFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnROYW1lczo6dG91Y2hSZWxhdGVkRXZlbnROYW1lcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudE5hbWVzOjpleHRlbmRlZFRvdWNoUmVsYXRlZEV2ZW50TmFtZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnROYW1lczo6aXNUb3VjaEV2ZW50VHlwZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudE5hbWVzOjp0b3VjaEFuZFBvaW50ZXJFdmVu
dE5hbWVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmlubmVySW52b2tlRXZlbnRMaXN0ZW5lcnMp
OgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnRyeUFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5UmVt
b3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKiBkb20vaW9zL01vdXNlRXZlbnRJT1MuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Om1vdXNlRXZlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNl
RXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL2lvcy9Qb2ludGVyRXZlbnRJT1MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9pbnRlckV2ZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b2ludGVyRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpldmVudFR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6bW91c2VF
dmVudHNTaW11bGF0aW9uRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRNb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Om1vdXNlbW92ZUV2ZW50SGFuZGxp
bmdQcmV2ZW50c0RlZmF1bHRFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNldE1vdXNlbW92ZUV2ZW50SGFuZGxpbmdQcmV2ZW50c0RlZmF1
bHRFbmFibGVkKToKKwogMjAxOS0wMi0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdIFRoZSB1c2VkIGNvbnRhaW5pbmcgYmxvY2sgd2lkdGggdmFsdWUg
aXMgb3B0aW9uYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWU1Zjk4M2I3ZGUyNTc3MDExYzNkODIzMDdjZGZjMDIx
Y2M5MWUwYi4uYTZhMjA2NzI2YmYyY2IxM2RhN2JmNjkwOWEzN2NiMDMxZTMzZTM0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wMi0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgc2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBvbiBp
T1MgYmFzZWQgb24gYSBQbGF0Zm9ybVRvdWNoRXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDUwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0d28gbmV3IGludGVybmFsIHJ1bnRpbWUgZmxh
Z3MgdG8gY29udHJvbCB3aGV0aGVyIHNpbXVsYXRlZCBtb3VzZSBldmVudHMgc2hvdWxkIGJlIGRp
cGF0Y2hlZCBhbG9uZyB3aXRoIHRvdWNoIGV2ZW50cyBhbmQgd2hldGhlcgorICAgICAgICBzaW11
bGF0ZWQgbW91c2Vtb3ZlIGV2ZW50cyBkaXNwYXRjaGVkIHNob3VsZCBhdXRvbWF0aWNhbGx5IHRy
aWdnZXIgdGhlIGJlaGF2aW9yIHByZXZlbnREZWZhdWx0KCkgd291bGQgYWxzbyB0cmlnZ2VyLgor
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisKIDIwMTktMDItMDggIEtl
aXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVp
bGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOWEzMTJkMzhlN2U1Y2QwMzc4MWZj
ZTZkMTg3OGEzYjU2M2JiZjVkZi4uZTM0NjhmNDE1MjJhZDJhN2JlMDJjMWIyNDNmNDkzODUwOWFi
MGE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC03MCw2ICs3MCw3IEBAIGNyeXB0by9t
YWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KIAogZG9tL0RhdGFUcmFuc2Zlck1hYy5t
bQogCitkb20vaW9zL01vdXNlRXZlbnRJT1MuY3BwCiBkb20vaW9zL1BvaW50ZXJFdmVudElPUy5j
cHAKIGRvbS9pb3MvVG91Y2hFdmVudHMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZThiODgzNDNhYWVjZmUyNjgyZDE5
OWM4OTNkMTczNWNlZGI4NTk1Li5mYzgwYjM0MTBhZWJlZTM2YzgzYzdhNTcyNTcyMzNlMTk5MWE0
ZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05NDMxLDYgKzk0MzEsNyBAQAogCQk3MUM1QkIxQjFGQjYxMUVBMDAwN0EyQUUg
LyogQW5pbWF0YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQW5pbWF0YWJsZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAv
KiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzFDQzdBMUYxNTJBMEJGRTAwOUVFQUY5IC8qIFNWR0FuaW1hdGVkRW51
bWVyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxQ0Uy
QzUxMjIwOURDN0YwMEM0OTRCRCAvKiBNb3VzZUV2ZW50SU9TLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlRXZlbnRJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MUQwMkQ5MDFEQjU1QzRFMDBERDVDRjUgLyogbWFpbi5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IG1haW4uanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcxRDAyRDkyMURCNTVDNEUwMERENUNGNSAvKiBtZWRpYS1jb250cm9s
bGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gIm1lZGlhLWNv
bnRyb2xsZXIuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUQyNTU0RjFEQjkw
MDAyMDAwNEQ3NkIgLyogc2tpcC1iYWNrLXN1cHBvcnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSAic2tpcC1iYWNrLXN1cHBvcnQuanMiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjYwNTcsNiArMjYwNTgsNyBAQAogCQlDRTI2MTZBNDE4N0U2NUMx
MDA3OTU1RjMgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk3MUNFMkM1MTIyMDlEQzdGMDBDNDk0QkQgLyogTW91c2VFdmVudElPUy5jcHAgKi8s
CiAJCQkJMzE1NTc0Q0MyMThGNjZEMDAwRDg4RjY2IC8qIFBvaW50ZXJFdmVudElPUy5jcHAgKi8s
CiAJCQkJQTFERTcxMkIxODYxMkFDMTAwNzM0MTkyIC8qIFRvdWNoRXZlbnRzLmNwcCAqLywKIAkJ
CSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmNwcAppbmRleCA5MGJhYTk3MThjMGYxMzJjMGZiZWQwYzg4OGU5MzEy
N2I0MGNiNjE3Li5jMGRiMjkxODY0ZDk2MTQ5ZWZmNTBhNDNlYmQyZjg3ZjYwNTRkMGU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgQUxXQVlTX0lOTElORSBFdmVudDo6RXZl
bnQoTW9ub3RvbmljVGltZSBjcmVhdGVUaW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEkK
ICAgICAsIG1faXNEZWZhdWx0RXZlbnRIYW5kbGVySWdub3JlZCB7IGZhbHNlIH0KICAgICAsIG1f
aXNUcnVzdGVkIHsgaXNUcnVzdGVkID09IElzVHJ1c3RlZDo6WWVzIH0KICAgICAsIG1faXNFeGVj
dXRpbmdQYXNzaXZlRXZlbnRMaXN0ZW5lciB7IGZhbHNlIH0KKyAgICAsIG1faGFzRW5jb3VudGVy
ZWRMaXN0ZW5lciB7IGZhbHNlIH0KICAgICAsIG1fZXZlbnRQaGFzZSB7IE5PTkUgfQogICAgICwg
bV90eXBlIHsgdHlwZSB9CiAgICAgLCBtX2NyZWF0ZVRpbWUgeyBjcmVhdGVUaW1lIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50LmgKaW5kZXggMTEzNjA4NThiZjVkNDY3MDcwN2IzMDFmNzliNjEzY2Q5ODhkZDQ5Mi4uYTZj
OTM4MmMxMzA4ZDYwZjcxYjI2ODNiOTBjZTQ1ZjQ4MDg4YmNkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAg
LTEyOCw2ICsxMjgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEluUGFzc2l2ZUxpc3RlbmVy
KGJvb2wgdmFsdWUpIHsgbV9pc0V4ZWN1dGluZ1Bhc3NpdmVFdmVudExpc3RlbmVyID0gdmFsdWU7
IH0KIAorICAgIGJvb2wgaGFzRW5jb3VudGVyZWRMaXN0ZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzRW5jb3VudGVyZWRMaXN0ZW5lcjsgfQorICAgIHZvaWQgc2V0SGFzRW5jb3VudGVyZWRMaXN0
ZW5lcigpIHsgbV9oYXNFbmNvdW50ZXJlZExpc3RlbmVyID0gdHJ1ZTsgfQorCiAgICAgYm9vbCBj
YW5jZWxCdWJibGUoKSBjb25zdCB7IHJldHVybiBwcm9wYWdhdGlvblN0b3BwZWQoKTsgfQogICAg
IHZvaWQgc2V0Q2FuY2VsQnViYmxlKGJvb2wpOwogCkBAIC0xNjYsNiArMTY5LDcgQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBtX2lzRGVmYXVsdEV2ZW50SGFuZGxlcklnbm9yZWQgOiAxOwogICAg
IHVuc2lnbmVkIG1faXNUcnVzdGVkIDogMTsKICAgICB1bnNpZ25lZCBtX2lzRXhlY3V0aW5nUGFz
c2l2ZUV2ZW50TGlzdGVuZXIgOiAxOworICAgIHVuc2lnbmVkIG1faGFzRW5jb3VudGVyZWRMaXN0
ZW5lciA6IDE7CiAKICAgICB1bnNpZ25lZCBtX2V2ZW50UGhhc2UgOiAyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAppbmRleCA0NjNlZDQzNjRjNjg4NzYzNWYzYzM3M2ZiYmRmYTU1ZGUwZjM2ODQx
Li4wNjgwMTRkMDIyMWRjZTI0NWYyNjg3Mjk3MGMyN2ExMzlhNjQ4MWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKQEAgLTI2LDYgKzI2LDEwIEBACiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogI2lmICFkZWZpbmVkKEFERElUSU9OQUxfRE9NX0VWRU5UX05BTUVT
X0ZPUl9FQUNIKQpAQCAtMzU1LDEzICszNTksMTQgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3Vs
ZCBjaG9vc2Ugb25lIHRlcm0gYW5kIHN0aWNrIHRvIGl0LgogICAgIGJvb2wgaXNXaGVlbEV2ZW50
VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29uc3Q7CiAgICAgYm9vbCBpc0dl
c3R1cmVFdmVudFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwotICAg
IGJvb2wgaXNUb3VjaEV2ZW50VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29u
c3Q7CisgICAgYm9vbCBpc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSkgY29uc3Q7CiAgICAgYm9vbCBpc1RvdWNoU2Nyb2xsQmxvY2tpbmdFdmVudFR5
cGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwogI2lmIEVOQUJMRShHQU1F
UEFEKQogICAgIGJvb2wgaXNHYW1lcGFkRXZlbnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlKSBjb25zdDsKICNlbmRpZgogCi0gICAgc3RkOjphcnJheTxzdGQ6OnJlZmVyZW5jZV93
cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4sIDk+IHRvdWNoQW5kUG9pbnRlckV2ZW50TmFtZXMo
KSBjb25zdDsKKyAgICBzdGQ6OmFycmF5PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRv
bWljU3RyaW5nPiwgOT4gdG91Y2hSZWxhdGVkRXZlbnROYW1lcygpIGNvbnN0OworICAgIHN0ZDo6
YXJyYXk8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+LCAxMj4gZXh0
ZW5kZWRUb3VjaFJlbGF0ZWRFdmVudE5hbWVzKCkgY29uc3Q7CiAgICAgc3RkOjphcnJheTxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IEF0b21pY1N0cmluZz4sIDM+IGdlc3R1cmVFdmVudE5h
bWVzKCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC0zODksOCArMzk0LDE0IEBAIGlubGluZSBib29s
IEV2ZW50TmFtZXM6OmlzVG91Y2hTY3JvbGxCbG9ja2luZ0V2ZW50VHlwZShjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50CiAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSB0b3VjaG1vdmVFdmVudDsKIH0K
IAotaW5saW5lIGJvb2wgRXZlbnROYW1lczo6aXNUb3VjaEV2ZW50VHlwZShjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSkgY29uc3QKK2lubGluZSBib29sIEV2ZW50TmFtZXM6OmlzVG91Y2hS
ZWxhdGVkRXZlbnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdAogewor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkubW91c2VFdmVudHNTaW11bGF0aW9uRW5hYmxlZCgpKSB7CisgICAg
ICAgIGlmIChldmVudFR5cGUgPT0gbW91c2Vkb3duRXZlbnQgfHwgZXZlbnRUeXBlID09IG1vdXNl
bW92ZUV2ZW50IHx8IGV2ZW50VHlwZSA9PSBtb3VzZXVwRXZlbnQpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gZXZlbnRUeXBlID09IHRvdWNoc3Rh
cnRFdmVudAogICAgICAgICB8fCBldmVudFR5cGUgPT0gdG91Y2htb3ZlRXZlbnQKICAgICAgICAg
fHwgZXZlbnRUeXBlID09IHRvdWNoZW5kRXZlbnQKQEAgLTQwOCwxMSArNDE5LDE2IEBAIGlubGlu
ZSBib29sIEV2ZW50TmFtZXM6OmlzV2hlZWxFdmVudFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUpIGNvbnN0CiAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSBtb3VzZXdoZWVsRXZlbnQ7
CiB9CiAKLWlubGluZSBzdGQ6OmFycmF5PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQXRv
bWljU3RyaW5nPiwgOT4gRXZlbnROYW1lczo6dG91Y2hBbmRQb2ludGVyRXZlbnROYW1lcygpIGNv
bnN0CitpbmxpbmUgc3RkOjphcnJheTxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IEF0b21p
Y1N0cmluZz4sIDk+IEV2ZW50TmFtZXM6OnRvdWNoUmVsYXRlZEV2ZW50TmFtZXMoKSBjb25zdAog
ewogICAgIHJldHVybiB7IHsgdG91Y2hzdGFydEV2ZW50LCB0b3VjaG1vdmVFdmVudCwgdG91Y2hl
bmRFdmVudCwgdG91Y2hjYW5jZWxFdmVudCwgdG91Y2hmb3JjZWNoYW5nZUV2ZW50LCBwb2ludGVy
ZG93bkV2ZW50LCBwb2ludGVybW92ZUV2ZW50LCBwb2ludGVydXBFdmVudCwgcG9pbnRlcmNhbmNl
bEV2ZW50IH0gfTsKIH0KIAoraW5saW5lIHN0ZDo6YXJyYXk8c3RkOjpyZWZlcmVuY2Vfd3JhcHBl
cjxjb25zdCBBdG9taWNTdHJpbmc+LCAxMj4gRXZlbnROYW1lczo6ZXh0ZW5kZWRUb3VjaFJlbGF0
ZWRFdmVudE5hbWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB7IHRvdWNoc3RhcnRFdmVudCwg
dG91Y2htb3ZlRXZlbnQsIHRvdWNoZW5kRXZlbnQsIHRvdWNoY2FuY2VsRXZlbnQsIHRvdWNoZm9y
Y2VjaGFuZ2VFdmVudCwgcG9pbnRlcmRvd25FdmVudCwgcG9pbnRlcm1vdmVFdmVudCwgcG9pbnRl
cnVwRXZlbnQsIHBvaW50ZXJjYW5jZWxFdmVudCwgbW91c2Vkb3duRXZlbnQsIG1vdXNlbW92ZUV2
ZW50LCBtb3VzZXVwRXZlbnQgfSB9OworfQorICAgIAogaW5saW5lIHN0ZDo6YXJyYXk8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBBdG9taWNTdHJpbmc+LCAzPiBFdmVudE5hbWVzOjpnZXN0
dXJlRXZlbnROYW1lcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgeyBnZXN0dXJlc3RhcnRFdmVu
dCwgZ2VzdHVyZWNoYW5nZUV2ZW50LCBnZXN0dXJlZW5kRXZlbnQgfSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5jcHAKaW5kZXggN2FlNTM0NDlmZDAwZWU2NzllNzc0MjdkN2Y2NjM1MGM4NzJl
N2Y5Mi4uMmRiMmVmZGY1YWYxYzEwNWM2OTg4OGM2ZWI2ODZmYmFkZjYxM2NkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0zNSw4ICszNSwxMCBAQAogI2luY2x1ZGUgIkRPTVdy
YXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MQm9k
eUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC0yOTksNiArMzAxLDE2IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmlubmVySW52
b2tlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50LCBFdmVudExpc3RlbmVyVmVjdG9yIGxpCiAg
ICAgICAgIHJlZ2lzdGVyZWRMaXN0ZW5lci0+Y2FsbGJhY2soKS5oYW5kbGVFdmVudChjb250ZXh0
LCBldmVudCk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSGFuZGxlRXZl
bnQoY29udGV4dCk7CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgICAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5tb3VzZW1vdmVFdmVudEhhbmRs
aW5nUHJldmVudHNEZWZhdWx0RW5hYmxlZCgpICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChpczxFbGVtZW50PihldmVudC5j
dXJyZW50VGFyZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgYXV0byogZWxlbWVudCA9IGRvd25j
YXN0PEVsZW1lbnQ+KGV2ZW50LmN1cnJlbnRUYXJnZXQoKSk7CisgICAgICAgICAgICAgICAgaWYg
KCFpczxIVE1MQm9keUVsZW1lbnQ+KGVsZW1lbnQpICYmICFpczxIVE1MSHRtbEVsZW1lbnQ+KGVs
ZW1lbnQpKQorICAgICAgICAgICAgICAgICAgICBldmVudC5zZXRIYXNFbmNvdW50ZXJlZExpc3Rl
bmVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgorCiAgICAgICAgIGlmIChy
ZWdpc3RlcmVkTGlzdGVuZXItPmlzUGFzc2l2ZSgpKQogICAgICAgICAgICAgZXZlbnQuc2V0SW5Q
YXNzaXZlTGlzdGVuZXIoZmFsc2UpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4
IGQ3YjNmMTI5MTMxZGE2NjM0NjFhNDQ5ZGY1NzVhZDYzZDlhNTA1MTcuLjA5YjdiNzQwNjhmNWZi
ZTg0Yjk3YjkzY2U5M2JhZGE5ODNjNTNjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAt
MjYsNiArMjYsMTAgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIk1v
dXNlUmVsYXRlZEV2ZW50LmgiCiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiBQTEFURk9S
TShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlBsYXRmb3JtVG91Y2hFdmVudElPUy5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0YVRyYW5zZmVyOwpAQCAtNDgsNiAr
NTIsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IE1vdXNlRXZlbnRJbml0Jik7CiAKKyNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYsIHVuc2ln
bmVkIHRvdWNoSW5kZXgsIFJlZjxXaW5kb3dQcm94eT4mJik7CisjZW5kaWYKKwogICAgIHZpcnR1
YWwgfk1vdXNlRXZlbnQoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdE1vdXNlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMDE5Y2FmZjNl
MGZhNjhlYTMyYThhNDVkMGUxZWUwZGIwY2U3YzkwMy4uMDc4YmNlMGIyMmM3MDIyNzJlMmUzM2U2
MTc5OTA1MjU1MDA0MTQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjA3OSw4ICsyMDc5LDE3IEBA
IHZvaWQgTm9kZTo6bW92ZU5vZGVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwg
RG9jdW1lbnQmIG5ld0RvY3VtZW50KQogICAgICAgICB9CiAKICAgICAgICAgdW5zaWduZWQgbnVt
VG91Y2hFdmVudExpc3RlbmVycyA9IDA7Ci0gICAgICAgIGZvciAoYXV0byYgbmFtZSA6IGV2ZW50
TmFtZXMoKS50b3VjaEFuZFBvaW50ZXJFdmVudE5hbWVzKCkpCi0gICAgICAgICAgICBudW1Ub3Vj
aEV2ZW50TGlzdGVuZXJzICs9IGV2ZW50TGlzdGVuZXJzKG5hbWUpLnNpemUoKTsKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5tb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkKCkpIHsKKyAgICAgICAg
ICAgIGZvciAoYXV0byYgbmFtZSA6IGV2ZW50TmFtZXMoKS5leHRlbmRlZFRvdWNoUmVsYXRlZEV2
ZW50TmFtZXMoKSkKKyAgICAgICAgICAgICAgICBudW1Ub3VjaEV2ZW50TGlzdGVuZXJzICs9IGV2
ZW50TGlzdGVuZXJzKG5hbWUpLnNpemUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyNlbmRpZgorICAg
ICAgICAgICAgZm9yIChhdXRvJiBuYW1lIDogZXZlbnROYW1lcygpLnRvdWNoUmVsYXRlZEV2ZW50
TmFtZXMoKSkKKyAgICAgICAgICAgICAgICBudW1Ub3VjaEV2ZW50TGlzdGVuZXJzICs9IGV2ZW50
TGlzdGVuZXJzKG5hbWUpLnNpemUoKTsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgICAg
ICB9CisjZW5kaWYKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtVG91Y2hF
dmVudExpc3RlbmVyczsgKytpKSB7CiAgICAgICAgICAgICBvbGREb2N1bWVudC5kaWRSZW1vdmVU
b3VjaEV2ZW50SGFuZGxlcigqdGhpcyk7CkBAIC0yMTI1LDcgKzIxMzQsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZQogICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuYWRkTGlzdGVuZXJUeXBl
SWZOZWVkZWQoZXZlbnRUeXBlKTsKICAgICBpZiAoZXZlbnROYW1lcygpLmlzV2hlZWxFdmVudFR5
cGUoZXZlbnRUeXBlKSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5kaWRBZGRXaGVl
bEV2ZW50SGFuZGxlcigqdGFyZ2V0Tm9kZSk7Ci0gICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlz
VG91Y2hFdmVudFR5cGUoZXZlbnRUeXBlKSkKKyAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNU
b3VjaFJlbGF0ZWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9j
dW1lbnQoKS5kaWRBZGRUb3VjaEV2ZW50SGFuZGxlcigqdGFyZ2V0Tm9kZSk7CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMjE0MCw3ICsyMTQ5LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmUKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5kb21XaW5kb3coKS0+YWRkRXZl
bnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoRXZlbnRU
eXBlKGV2ZW50VHlwZSkpCisgICAgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50
VHlwZShldmVudFR5cGUpKQogICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmFkZFRvdWNo
RXZlbnRMaXN0ZW5lcigqdGFyZ2V0Tm9kZSk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtMjE2Nyw3ICsyMTc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHRyeVJl
bW92ZUV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJgog
ICAgIC8vIGxpc3RlbmVycyBmb3IgZWFjaCB0eXBlLCBub3QganVzdCBhIGJvb2wgLSBzZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzODYxCiAgICAgaWYgKGV2ZW50
TmFtZXMoKS5pc1doZWVsRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIHRhcmdldE5vZGUt
PmRvY3VtZW50KCkuZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKnRhcmdldE5vZGUpOwotICAg
IGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoRXZlbnRUeXBlKGV2ZW50VHlwZSkpCisgICAg
ZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hSZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSkp
CiAgICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRs
ZXIoKnRhcmdldE5vZGUpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxODEsNyAr
MjE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVFdmVudExpc3RlbmVyKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAgICAgdGFyZ2V0Tm9kZS0+ZG9j
dW1lbnQoKS5kb21XaW5kb3coKS0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3Rl
bmVyLCBvcHRpb25zKTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYgKGV2ZW50
TmFtZXMoKS5pc1RvdWNoRXZlbnRUeXBlKGV2ZW50VHlwZSkpCisgICAgaWYgKGV2ZW50TmFtZXMo
KS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICB0YXJnZXROb2Rl
LT5kb2N1bWVudCgpLnJlbW92ZVRvdWNoRXZlbnRMaXN0ZW5lcigqdGFyZ2V0Tm9kZSk7CiAjZW5k
aWYKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjQ3Nyw3ICsyNDg2LDcgQEAg
dm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAgICAgICAg
IGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAgICAgICAgICAg
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihzdGFydE5vZGUs
IGRvd25jYXN0PFdoZWVsRXZlbnQ+KGV2ZW50KSk7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB9IGVsc2UgaWYgKGlzPFRvdWNoRXZlbnQ+KGV2
ZW50KSAmJiBldmVudE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKSB7CisgICAg
fSBlbHNlIGlmIChpczxUb3VjaEV2ZW50PihldmVudCkgJiYgZXZlbnROYW1lcygpLmlzVG91Y2hS
ZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSkpIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgICAgIHdoaWxlIChyZW5kZXJlciAmJiAoIWlz
PFJlbmRlckJveD4oKnJlbmRlcmVyKSB8fCAhZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIp
LmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkKICAgICAgICAgICAgIHJlbmRl
cmVyID0gcmVuZGVyZXItPnBhcmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L2lvcy9Nb3VzZUV2ZW50SU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9pb3MvTW91c2VFdmVu
dElPUy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY2NDg3ZGU5MGNkM2FiYjc3MjUxYTcyY2RkMTgyNTNkNTg2
MzMzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9pb3MvTW91c2VFdmVu
dElPUy5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiTW91c2VFdmVudC5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiRXZlbnROYW1lcy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0YXRpYyBBdG9taWNTdHJpbmcgbW91c2VFdmVudFR5cGUoUGxhdGZv
cm1Ub3VjaFBvaW50OjpUb3VjaFBoYXNlVHlwZSBwaGFzZSkKK3sKKyAgICBpZiAocGhhc2UgPT0g
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBoYXNlQmVnYW4pCisgICAgICAgIHJldHVybiBldmVu
dE5hbWVzKCkubW91c2Vkb3duRXZlbnQ7CisgICAgaWYgKHBoYXNlID09IFBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQaGFzZU1vdmVkIHx8IHBoYXNlID09IFBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hQaGFzZVN0YXRpb25hcnkpCisgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQ7CisgICAgaWYgKHBoYXNlID09IFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQaGFzZUVu
ZGVkKQorICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudDsKKyAgICByZXR1
cm4gbnVsbEF0b20oKTsKK30KKworUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShj
b25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50LCB1bnNpZ25lZCBpbmRleCwgUmVmPFdpbmRv
d1Byb3h5PiYmIHZpZXcpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW91c2VFdmVudCht
b3VzZUV2ZW50VHlwZShldmVudC50b3VjaFBoYXNlQXRJbmRleChpbmRleCkpLCBDYW5CdWJibGU6
OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsIElzQ29tcG9zZWQ6OlllcywgZXZlbnQudGltZXN0YW1w
KCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIFdURk1vdmUodmlldyksIDAsIGV2ZW50LnRv
dWNoTG9jYXRpb25BdEluZGV4KGluZGV4KSwgZXZlbnQudG91Y2hMb2NhdGlvbkF0SW5kZXgoaW5k
ZXgpLCB7IH0sIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxscHRy
LCBJc1NpbXVsYXRlZDo6Tm8sIElzVHJ1c3RlZDo6WWVzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vaW9zL1BvaW50ZXJFdmVu
dElPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vaW9zL1BvaW50ZXJFdmVudElPUy5jcHAKaW5k
ZXggNDUwMjQwMGY4YWQ0OTZlODc2YzE0YjRmZDJhOThhZmUwYmZlYTAwOC4uYjE5MWQxOTk4OGRl
ZjUxNjg0NGU5Mzg1ZTI1ZDQ0MWRjODU4YmE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL2lvcy9Qb2ludGVyRXZlbnRJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9pb3Mv
UG9pbnRlckV2ZW50SU9TLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBBdG9taWNTdHJpbmcgZXZlbnRUeXBlKFBsYXRmb3JtVG91Y2hQb2ludDo6
VG91Y2hQaGFzZVR5cGUgcGhhc2UpCitzdGF0aWMgQXRvbWljU3RyaW5nIHBvaW50ZXJFdmVudFR5
cGUoUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBoYXNlVHlwZSBwaGFzZSkKIHsKICAgICBzd2l0
Y2ggKHBoYXNlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VCZWdh
bjoKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIFBvaW50ZXJFdmVudDo6SXNDYW5jZWxhYmxlIHBo
YXNlSXNDYW5jZWxhYmxlKFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQaGEKIFJlZjxQb2ludGVy
RXZlbnQ+IFBvaW50ZXJFdmVudDo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZl
bnQsIHVuc2lnbmVkIGluZGV4LCBib29sIGlzUHJpbWFyeSwgUmVmPFdpbmRvd1Byb3h5PiYmIHZp
ZXcpCiB7CiAgICAgYXV0byBwaGFzZSA9IGV2ZW50LnRvdWNoUGhhc2VBdEluZGV4KGluZGV4KTsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb2ludGVyRXZlbnQoZXZlbnRUeXBlKHBoYXNlKSwg
ZXZlbnQsIHBoYXNlSXNDYW5jZWxhYmxlKHBoYXNlKSwgaW5kZXgsIGlzUHJpbWFyeSwgV1RGTW92
ZSh2aWV3KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBvaW50ZXJFdmVudChwb2ludGVy
RXZlbnRUeXBlKHBoYXNlKSwgZXZlbnQsIHBoYXNlSXNDYW5jZWxhYmxlKHBoYXNlKSwgaW5kZXgs
IGlzUHJpbWFyeSwgV1RGTW92ZSh2aWV3KSkpOwogfQogCiBQb2ludGVyRXZlbnQ6OlBvaW50ZXJF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYg
ZXZlbnQsIElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUsIHVuc2lnbmVkIGluZGV4LCBib29sIGlz
UHJpbWFyeSwgUmVmPFdpbmRvd1Byb3h5PiYmIHZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggMDk3OTMzNmQwYTU4ZTA4YWRhYzFmOGI4MzIzMDEwNGMwZjc0NTRhZS4uYTdkYjA3
YmJiNWMyYWRhMmM4ZWE4ZGFlY2I5NDI4ODBlNjE2YjNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtMTgxMSw3ICsxODExLDcgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAg
ICAgICAgZG9jdW1lbnQtPmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGV2ZW50VHlwZSk7CiAgICAg
ICAgIGlmIChldmVudE5hbWVzKCkuaXNXaGVlbEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAg
ICAgICAgZG9jdW1lbnQtPmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCpkb2N1bWVudCk7Ci0gICAg
ICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoRXZlbnRUeXBlKGV2ZW50VHlwZSkpCisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShldmVu
dFR5cGUpKQogICAgICAgICAgICAgZG9jdW1lbnQtPmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCpk
b2N1bWVudCk7CiAgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc3Rv
cmFnZUV2ZW50KQogICAgICAgICAgICAgZGlkQWRkU3RvcmFnZUV2ZW50TGlzdGVuZXIoKnRoaXMp
OwpAQCAtMTgyNiw3ICsxODI2LDcgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAgICAgICAg
aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCi0gICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hFdmVu
dFR5cGUoZXZlbnRUeXBlKSkKKyAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaFJlbGF0
ZWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgKyttX3RvdWNoQW5kR2VzdHVyZUV2ZW50
TGlzdGVuZXJDb3VudDsKICNlbmRpZgogI2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCkBA
IC0xOTIwLDcgKzE5MjAsNyBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChldmVudE5h
bWVzKCkuaXNXaGVlbEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICAgICAgZG9jdW1lbnQt
PmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCpkb2N1bWVudCk7Ci0gICAgICAgIGVsc2UgaWYg
KGV2ZW50TmFtZXMoKS5pc1RvdWNoRXZlbnRUeXBlKGV2ZW50VHlwZSkpCisgICAgICAgIGVsc2Ug
aWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNoUmVsYXRlZEV2ZW50VHlwZShldmVudFR5cGUpKQogICAg
ICAgICAgICAgZG9jdW1lbnQtPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCpkb2N1bWVudCk7
CiAgICAgfQogCkBAIC0xOTQ5LDcgKzE5NDksNyBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgog
ICAgICAgICBkZWNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNU
b3VjaEV2ZW50VHlwZShldmVudFR5cGUpKSB7CisgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlz
VG91Y2hSZWxhdGVkRXZlbnRUeXBlKGV2ZW50VHlwZSkpIHsKICAgICAgICAgQVNTRVJUKG1fdG91
Y2hBbmRHZXN0dXJlRXZlbnRMaXN0ZW5lckNvdW50ID4gMCk7CiAgICAgICAgIC0tbV90b3VjaEFu
ZEdlc3R1cmVFdmVudExpc3RlbmVyQ291bnQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAwZjdlN2E1MDA0NTBhNjUwNmRmM2UyOGQz
Y2E5MzRmYzBjYzA3NjNhLi43MTc2ZDJmZjZiZTc3NmI5OGY5YzI1NGVjYWM4NjFmYjBjMDI2Mzdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAt
MzQ0LDYgKzM0NCwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9hZENsaWNrQXR0cmlidXRpb25FbmFibGVkOyB9CiAgICAg
dm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKKyAgICBib29sIG1vdXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX21vdXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldE1v
dXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9tb3VzZUV2ZW50
c1NpbXVsYXRpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CisKKyAgICBib29sIG1vdXNlbW92ZUV2
ZW50SGFuZGxpbmdQcmV2ZW50c0RlZmF1bHRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb3Vz
ZW1vdmVFdmVudEhhbmRsaW5nUHJldmVudHNEZWZhdWx0RW5hYmxlZDsgfQorICAgIHZvaWQgc2V0
TW91c2Vtb3ZlRXZlbnRIYW5kbGluZ1ByZXZlbnRzRGVmYXVsdEVuYWJsZWQoYm9vbCBpc0VuYWJs
ZWQpIHsgbV9tb3VzZW1vdmVFdmVudEhhbmRsaW5nUHJldmVudHNEZWZhdWx0RW5hYmxlZCA9IGlz
RW5hYmxlZDsgfQorI2VuZGlmCisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMmIHNoYXJlZEZlYXR1cmVzKCk7CiAKIHByaXZhdGU6CkBAIC01MjEs
NiArNTI5LDExIEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fYWRDbGlja0F0dHJpYnV0aW9uRW5h
YmxlZCB7IGZhbHNlIH07CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGJvb2wgbV9t
b3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbW91c2Vt
b3ZlRXZlbnRIYW5kbGluZ1ByZXZlbnRzRGVmYXVsdEVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlm
CisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1lRW5hYmxlZEZl
YXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IGNjZTRhY2U4MzU2MzI1ZTdhMGEwMGU1MjNmOWU0Yzk5MmY5MTUyZmYuLjE3N2UzNGIzOWNm
MjdlNGEzNWQ5NTA4ZDZhZmI1NzQ1OTFmMmE2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbApAQCAtMTUzNCw2ICsxNTM0LDI0IEBAIEFkQ2xpY2tBdHRyaWJ1dGlv
bkVuYWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNh
dGVnb3J5OiBpbnRlcm5hbAogCitNb3VzZUV2ZW50c1NpbXVsYXRpb25FbmFibGVkOgorICB0eXBl
OiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNb3Vz
ZSBldmVudHMgc2ltdWxhdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxl
IG1vdXNlIGV2ZW50cyBkaXNwYXRjaCBhbG9uZyB3aXRoIHRvdWNoIGV2ZW50cyBvbiBpT1MiCisg
IHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGNhdGVnb3J5OiBpbnRl
cm5hbAorICBjb25kaXRpb246IEVOQUJMRShUT1VDSF9FVkVOVFMpCisKK01vdXNlbW92ZUV2ZW50
SGFuZGxpbmdQcmV2ZW50c0RlZmF1bHRFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRW
YWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQcmV2ZW50IGRlZmF1bHQgZm9yIG1v
dXNlbW92ZSBldmVudHMiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93cyBoYW5k
bGluZyBvZiBtb3VzZW1vdmUgZXZlbnRzIHRvIGltcGxpY2l0bHkgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIGlPUyIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKKyAg
Y2F0ZWdvcnk6IGludGVybmFsCisgIGNvbmRpdGlvbjogRU5BQkxFKFRPVUNIX0VWRU5UUykKKwog
IyBEZXByZWNhdGVkCiAKIElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6Cg==
</data>
<flag name="review"
          id="378331"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>