<?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>49697</bug_id>
          
          <creation_ts>2010-11-17 16:27:22 -0800</creation_ts>
          <short_desc>Move length and slice out of ArrayBufferView interface</short_desc>
          <delta_ts>2010-11-18 16:13:25 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310601</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-17 16:27:22 -0800</bug_when>
    <thetext>Since we&apos;re going to add DataView, we need to move length and slice out of ArrayBufferView interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310632</commentid>
    <comment_count>1</comment_count>
      <attachid>74182</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-17 17:15:58 -0800</bug_when>
    <thetext>Created attachment 74182
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311076</commentid>
    <comment_count>2</comment_count>
      <attachid>74182</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-18 13:30:41 -0800</bug_when>
    <thetext>Comment on attachment 74182
Proposed Patch

This looks good. Thanks for picking it up. I&apos;m assuming you ran the layout tests under fast/canvas/webgl (which include the Typed Array unit tests) on both Safari and Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311154</commentid>
    <comment_count>3</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-18 16:13:25 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/72343.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74182</attachid>
            <date>2010-11-17 17:15:58 -0800</date>
            <delta_ts>2010-11-18 13:30:41 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>49697</filename>
            <type>text/plain</type>
            <size>34709</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDNmY2IwNi4uZGRmYTlhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMC0xMS0xNyAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBsZW5ndGggYW5kIHNsaWNlIG91dCBvZiBBcnJheUJ1ZmZlclZpZXcg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00OTY5NworCisgICAgICAgIE5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlLiBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIEFycmF5QnVmZmVyIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0N1c3RvbS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJW
aWV3Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZl
clZpZXcuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdDMyQXJyYXk6OnNsaWNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXku
aDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50MTZBcnJheTo6
c2xpY2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbnQzMkFy
cmF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludDMyQXJyYXk6OnNsaWNlKToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9JbnQzMkFycmF5Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50MzJB
cnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50OEFycmF5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludDhBcnJheTo6c2xpY2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDhB
cnJheS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDhBcnJheS5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVkQXJy
YXlCYXNlOjpsZW5ndGgpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlVpbnQxNkFycmF5OjpzbGljZSk6CisgICAgICAgICogaHRtbC9j
YW52YXMvVWludDE2QXJyYXkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50MTZBcnJheS5p
ZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvVWludDMyQXJyYXkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VWludDMyQXJyYXk6OnNsaWNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50MzJB
cnJheS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVpbnQ4QXJy
YXk6OnNsaWNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5Lmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dDo6cmVhZFBpeGVscyk6CisKIDIwMTAtMTEtMTcgIERpbWl0cmkgR2xhemtvdiAgPGRn
bGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNGRmZWZjMC4uNjE1ZjQwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTczNiw3ICs3MzYsNiBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oJywKLSAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDMyQXJyYXlDdXN0b20uY3Bw
JywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IDNkMDYyNmEuLjc0ZjJjYWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzcxNCw3ICszNzE0LDYgQEAgSEVBREVSUyAr
PSBcCiAgICAgIXY4IHsKICAgICAgICAgU09VUkNFUyArPSBcCiAgICAgICAgICAgICAgICAgYmlu
ZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgXAotICAgICAgICAgICAgICAgIGJpbmRp
bmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmlu
ZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5n
cy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdz
L2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4YWMyZDdlLi5jM2E4NjI2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTg1LDcgKzk4NSw2IEBACiAJCTQ2RjlENURG
MEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlENURDMEIwRDYwMTcwMDI4RUUzNiAv
KiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1MSAv
KiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlk
Z2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5
MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9OwotCQk0
OTIyNzNBMzEwODNCM0IxMDBFRTVDODQgLyogSlNBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkyMjczQTIxMDgz
QjNCMTAwRUU1Qzg0IC8qIEpTQXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCAqLzsgfTsKIAkJNDky
ODYzOTkxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlUmF3SGVhZGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5
MkQ2IC8qIFJlc291cmNlUmF3SGVhZGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNH
cmFkaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTQ4NEZCMzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovOyB9Owog
CQk0OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAyQ0YyM0MwMDE4
N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICovOyB9OwpAQCAtNzA3OCw3ICs3MDc3LDYgQEAKIAkJ
NDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9
IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3
RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2Vi
S2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xFV2ViS2l0
QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5MjI3M0EyMTA4M0IzQjEw
MEVFNUM4NCAvKiBKU0FycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0FycmF5QnVmZmVyVmlld0N1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJj
ZVJhd0hlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VS
YXdIZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkIzMTAyQ0Yy
M0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5jcHA7IHBhdGggPSBjYW52YXMvQ2FudmFzR3Jh
ZGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCNDEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQ2FudmFzR3JhZGllbnQuaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNHcmFkaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwNDYsNyArMTcwNDQsNiBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQzI3NUNCMjExQzVFODVDMDBDOTIw
NkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgKi8sCi0JCQkJNDkyMjczQTIxMDgzQjNCMTAw
RUU1Qzg0IC8qIEpTQXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCAqLywKIAkJCQk4NjI0M0QwMDEx
QkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCAqLywKIAkJCQlCQzJF
RDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0
QjEwNTE5NzE5MDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
ICovLApAQCAtMjI1NDEsNyArMjI1MzgsNiBAQAogCQkJCTQ5RUVDRjAwMTA1MDcwQzQwMDA5OUZB
QiAvKiBKU0FycmF5QnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjc1Q0IzMTFDNUU4
NUMwMEM5MjA2QyAvKiBKU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5RUVDRjFCMTA1MDcyRjMwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk0OTIyNzNBMzEwODNCM0IxMDBFRTVDODQgLyogSlNBcnJheUJ1ZmZlclZp
ZXdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxREEwOUQxQzEyMzAwMEJFMzI1
IC8qIEpTQXR0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzJFRDZCQzBDNkJEMkYwMDA5MjBC
RkYgLyogSlNBdHRyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0RUVGRkM4MEQzNDU1
MEMwMDQ2OUE1OCAvKiBKU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2JkZGQyLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
OTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRSgz
RF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKLSNpbmNsdWRlICJKU0ludDhBcnJheS5oIgotI2luY2x1
ZGUgIkpTVWludDhBcnJheS5oIgotI2luY2x1ZGUgIkpTSW50MTZBcnJheS5oIgotI2luY2x1ZGUg
IkpTVWludDE2QXJyYXkuaCIKLSNpbmNsdWRlICJKU0ludDMyQXJyYXkuaCIKLSNpbmNsdWRlICJK
U1VpbnQzMkFycmF5LmgiCi0jaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXkuaCIKLQotI2luY2x1ZGUg
IkFycmF5QnVmZmVyVmlldy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBcnJheUJ1ZmZlclZpZXcqIG9iamVjdCkKLXsK
LSAgICBpZiAoIW9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAg
IAotICAgIGlmIChvYmplY3QpIHsKLSAgICAgICAgaWYgKG9iamVjdC0+aXNGbG9hdEFycmF5KCkp
Ci0gICAgICAgICAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0Zsb2F0MzJBcnJheT4o
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxGbG9hdDMyQXJyYXkqPihvYmplY3QpKTsK
LSAgICAgICAgaWYgKG9iamVjdC0+aXNVbnNpZ25lZEJ5dGVBcnJheSgpKQotICAgICAgICAgICAg
cmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8SlNVaW50OEFycmF5PihleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PFVpbnQ4QXJyYXkqPihvYmplY3QpKTsKLSAgICAgICAgaWYgKG9iamVj
dC0+aXNCeXRlQXJyYXkoKSkKLSAgICAgICAgICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVy
PEpTSW50OEFycmF5PihleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEludDhBcnJheSo+
KG9iamVjdCkpOwotICAgICAgICBpZiAob2JqZWN0LT5pc0ludEFycmF5KCkpCi0gICAgICAgICAg
ICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0ludDMyQXJyYXk+KGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8SW50MzJBcnJheSo+KG9iamVjdCkpOwotICAgICAgICBpZiAob2Jq
ZWN0LT5pc1Vuc2lnbmVkSW50QXJyYXkoKSkKLSAgICAgICAgICAgIHJldHVybiBnZXRET01PYmpl
Y3RXcmFwcGVyPEpTVWludDMyQXJyYXk+KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
VWludDMyQXJyYXkqPihvYmplY3QpKTsKLSAgICAgICAgaWYgKG9iamVjdC0+aXNTaG9ydEFycmF5
KCkpCi0gICAgICAgICAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0ludDE2QXJyYXk+
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8SW50MTZBcnJheSo+KG9iamVjdCkpOwot
ICAgICAgICBpZiAob2JqZWN0LT5pc1Vuc2lnbmVkU2hvcnRBcnJheSgpKQotICAgICAgICAgICAg
cmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8SlNVaW50MTZBcnJheT4oZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxVaW50MTZBcnJheSo+KG9iamVjdCkpOwotICAgIH0KLSAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLX0KLQotSlNWYWx1ZSBKU0FycmF5QnVmZmVyVmlldzo6c2xpY2Uo
RXhlY1N0YXRlKiBleGVjKQotewotICAgIEFycmF5QnVmZmVyVmlldyogYXJyYXkgPSByZWludGVy
cHJldF9jYXN0PEFycmF5QnVmZmVyVmlldyo+KGltcGwoKSk7Ci0KLSAgICBpbnQgc3RhcnQsIGVu
ZDsKLSAgICBzd2l0Y2ggKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSkgewotICAgIGNhc2UgMDoKLSAg
ICAgICAgc3RhcnQgPSAwOwotICAgICAgICBlbmQgPSBhcnJheS0+bGVuZ3RoKCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgMToKLSAgICAgICAgc3RhcnQgPSBleGVjLT5hcmd1bWVudCgwKS50
b0ludDMyKGV4ZWMpOwotICAgICAgICBlbmQgPSBhcnJheS0+bGVuZ3RoKCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHN0YXJ0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9J
bnQzMihleGVjKTsKLSAgICAgICAgZW5kID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVj
KTsKLSAgICB9Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGFycmF5LT5z
bGljZShzdGFydCwgZW5kKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjcxYzYxLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoM0Rf
Q0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKLSNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgot
Ci0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhQcm94eS5oIgotI2luY2x1ZGUg
IlY4SW50OEFycmF5LmgiCi0jaW5jbHVkZSAiVjhGbG9hdDMyQXJyYXkuaCIKLSNpbmNsdWRlICJW
OEludDMyQXJyYXkuaCIKLSNpbmNsdWRlICJWOEludDE2QXJyYXkuaCIKLSNpbmNsdWRlICJWOFVp
bnQ4QXJyYXkuaCIKLSNpbmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCi0jaW5jbHVkZSAiVjhVaW50
MTZBcnJheS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVl
PiB0b1Y4KEFycmF5QnVmZmVyVmlldyogaW1wbCkKLXsKLSAgICBpZiAoIWltcGwpCi0gICAgICAg
IHJldHVybiB2ODo6TnVsbCgpOwotICAgIGlmIChpbXBsLT5pc0J5dGVBcnJheSgpKQotICAgICAg
ICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxJbnQ4QXJyYXkqPihpbXBsKSk7Ci0gICAgaWYgKGlt
cGwtPmlzRmxvYXRBcnJheSgpKQotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxGbG9h
dDMyQXJyYXkqPihpbXBsKSk7Ci0gICAgaWYgKGltcGwtPmlzSW50QXJyYXkoKSkKLSAgICAgICAg
cmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8SW50MzJBcnJheSo+KGltcGwpKTsKLSAgICBpZiAoaW1w
bC0+aXNTaG9ydEFycmF5KCkpCi0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PEludDE2
QXJyYXkqPihpbXBsKSk7Ci0gICAgaWYgKGltcGwtPmlzVW5zaWduZWRCeXRlQXJyYXkoKSkKLSAg
ICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8VWludDhBcnJheSo+KGltcGwpKTsKLSAgICBp
ZiAoaW1wbC0+aXNVbnNpZ25lZEludEFycmF5KCkpCi0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRp
Y19jYXN0PFVpbnQzMkFycmF5Kj4oaW1wbCkpOwotICAgIGlmIChpbXBsLT5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKQotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxVaW50MTZBcnJheSo+
KGltcGwpKTsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEFycmF5QnVmZmVyVmlldzo6c2xpY2VDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLkFycmF5QnVmZmVyVmll
dy5zbGljZSIpOwotICAgIC8vIEZvcm1zOgotICAgIC8vICogc2xpY2UobG9uZyBzdGFydCwgbG9u
ZyBlbmQpOwotCi0gICAgQXJyYXlCdWZmZXJWaWV3KiBpbXAgPSBWOEFycmF5QnVmZmVyVmlldzo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgaW50IHN0YXJ0LCBlbmQ7Ci0gICAgc3dpdGNo
IChhcmdzLkxlbmd0aCgpKSB7Ci0gICAgY2FzZSAwOgotICAgICAgICBzdGFydCA9IDA7Ci0gICAg
ICAgIGVuZCA9IGltcC0+bGVuZ3RoKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKLSAg
ICAgICAgc3RhcnQgPSB0b0ludDMyKGFyZ3NbMF0pOwotICAgICAgICBlbmQgPSBpbXAtPmxlbmd0
aCgpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBzdGFydCA9IHRvSW50
MzIoYXJnc1swXSk7Ci0gICAgICAgIGVuZCA9IHRvSW50MzIoYXJnc1sxXSk7Ci0gICAgfQotICAg
IHJldHVybiB0b1Y4KGltcC0+c2xpY2Uoc3RhcnQsIGVuZCkpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmggYi9XZWJD
b3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oCmluZGV4IGVlNjg1YjEuLmQzN2JhZGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKKysrIGIv
V2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaApAQCAtNjIsOSArNjIsNyBAQCBj
bGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+
IHsKICAgICAgICAgcmV0dXJuIG1fYnl0ZU9mZnNldDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5n
dGgoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4g
c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIH5BcnJh
eUJ1ZmZlclZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1
ZmZlclZpZXcuaWRsIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsCmlu
ZGV4IDc0YTNmZTMuLmJlMjE3YzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJy
YXlCdWZmZXJWaWV3LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmll
dy5pZGwKQEAgLTI4LDggKzI4LDUgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgQXJyYXlCdWZmZXIgYnVmZmVyOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBieXRlTGVuZ3RoOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7Ci0KLSAgICAgICAgW0N1c3RvbV0gQXJyYXlCdWZmZXJWaWV3IHNsaWNl
KGluIGxvbmcgc3RhcnQsIGluIGxvbmcgZW5kKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9G
bG9hdDMyQXJyYXkuY3BwCmluZGV4IGU5MThkOGYuLjFiMjZhZWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFz
L0Zsb2F0MzJBcnJheS5jcHAKQEAgLTUyLDcgKzUyLDEyIEBAIEZsb2F0MzJBcnJheTo6RmxvYXQz
MkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKIHsKIH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IEZsb2F0MzJBcnJheTo6c2xp
Y2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAorUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IEZs
b2F0MzJBcnJheTo6c2xpY2UoaW50IHN0YXJ0KSBjb25zdAoreworICAgIHJldHVybiBzbGljZShz
dGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFy
cmF5OjpzbGljZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNsaWNl
SW1wbDxGbG9hdDMyQXJyYXk+KHN0YXJ0LCBlbmQpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFy
cmF5LmgKaW5kZXggYWI1NzA4Ny4uYzAzZmNjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJh
eS5oCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0
MzJBcnJheSA6IHB1YmxpYyBUeXBlZEFycmF5QmFzZTxmbG9hdD4gewotICBwdWJsaWM6CitwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQg
bGVuZ3RoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IGNyZWF0ZShjb25z
dCBmbG9hdCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RmxvYXQzMkFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwpAQCAtNjIsNyArNjIsMTAgQEAgY2xh
c3MgRmxvYXQzMkFycmF5IDogcHVibGljIFR5cGVkQXJyYXlCYXNlPGZsb2F0PiB7CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gIHByaXZhdGU6CisgICAgUGFzc1JlZlB0cjxGbG9h
dDMyQXJyYXk+IHNsaWNlKGludCBzdGFydCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxGbG9hdDMy
QXJyYXk+IHNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6CiAgICAg
RmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwKICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgbGVuZ3RoKTsKQEAgLTcxLDcgKzc0LDYgQEAgY2xhc3MgRmxvYXQzMkFycmF5IDogcHVibGlj
IFR5cGVkQXJyYXlCYXNlPGZsb2F0PiB7CiAKICAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlC
dWZmZXJWaWV3LgogICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gc2xpY2Uo
aW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBiL1dlYkNv
cmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbAppbmRleCBjM2MwYTJkLi5iOTc5ZDI5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCkBAIC0zOSw2ICszOSw5IEBAIG1vZHVs
ZSBodG1sIHsKICAgICBdIEZsb2F0MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBGbG9hdDMyQXJy
YXkgc2xpY2UoaW4gbG9uZyBzdGFydCwgaW4gW09wdGlvbmFsXSBsb25nIGVuZCk7CisKICAgICAg
ICAgLy8gdm9pZCBzZXQoaW4gRmxvYXQzMkFycmF5IGFycmF5LCBbT3B0aW9uYWxdIGluIHVuc2ln
bmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVuY2U8bG9uZz4g
YXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICBbQ3Vz
dG9tXSB2b2lkIHNldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFy
cmF5LmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5jcHAKaW5kZXggNjM1ZWE1
ZS4uYTNkMDRiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuY3BwCkBAIC01MSw3ICs1MSwx
MiBAQCBJbnQxNkFycmF5OjpJbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZl
ciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaQogewogfQogCi1QYXNzUmVmUHRyPEFycmF5QnVm
ZmVyVmlldz4gSW50MTZBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAorUGFz
c1JlZlB0cjxJbnQxNkFycmF5PiBJbnQxNkFycmF5OjpzbGljZShpbnQgc3RhcnQpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHNsaWNlKHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NSZWZQdHI8SW50
MTZBcnJheT4gSW50MTZBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogewog
ICAgIHJldHVybiBzbGljZUltcGw8SW50MTZBcnJheT4oc3RhcnQsIGVuZCk7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaCBiL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50MTZBcnJheS5oCmluZGV4IDAwODc3ZWYuLmE2Mjg2YzYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50
MTZBcnJheS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFy
cmF5QnVmZmVyOwogCiBjbGFzcyBJbnQxNkFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJh
eUJhc2U8c2hvcnQ+IHsKLSAgcHVibGljOgorcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEludDE2QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEludDE2QXJyYXk+IGNyZWF0ZShzaG9ydCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKQEAg
LTQxLDcgKzQxLDEwIEBAIGNsYXNzIEludDE2QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFy
cmF5QmFzZTxzaG9ydD4gewogICAgIHVzaW5nIFR5cGVkQXJyYXlCYXNlPHNob3J0Pjo6c2V0Owog
ICAgIHVzaW5nIEludGVncmFsVHlwZWRBcnJheUJhc2U8c2hvcnQ+OjpzZXQ7CiAKLSAgcHJpdmF0
ZToKKyAgICBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHNsaWNlKGludCBzdGFydCkgY29uc3Q7Cisg
ICAgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBzbGljZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0
OworCitwcml2YXRlOgogICAgIEludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwpAQCAtNTAsNyArNTMsNiBAQCBjbGFzcyBJbnQx
NkFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8c2hvcnQ+IHsKIAogICAgIC8v
IE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCiAgICAgdmlydHVhbCBib29sIGlzU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXJWaWV3PiBzbGljZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQxNkFycmF5LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKaW5kZXgg
Nzk4MGE2OS4uZjFmNWM4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFy
cmF5LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCkBAIC0zOCw2
ICszOCw5IEBAIG1vZHVsZSBodG1sIHsKICAgICBdIEludDE2QXJyYXkgOiBBcnJheUJ1ZmZlclZp
ZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQllURVNfUEVSX0VMRU1FTlQgPSAyOwog
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAg
ICAgSW50MTZBcnJheSBzbGljZShpbiBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5k
KTsKKwogICAgICAgICAvLyB2b2lkIHNldChpbiBJbnQxNkFycmF5IGFycmF5LCBbT3B0aW9uYWxd
IGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVu
Y2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQzMkFycmF5LmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5jcHAKaW5k
ZXggY2M5MjZhMy4uMjY2Yzk0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQz
MkFycmF5LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuY3BwCkBAIC01
Miw3ICs1MiwxMiBAQCBJbnQzMkFycmF5OjpJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaQogewogfQogCi1QYXNzUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4gSW50MzJBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdAorUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBJbnQzMkFycmF5OjpzbGljZShpbnQgc3RhcnQp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHNsaWNlKHN0YXJ0LCBsZW5ndGgoKSk7Cit9CisKK1Bhc3NS
ZWZQdHI8SW50MzJBcnJheT4gSW50MzJBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdAogewogICAgIHJldHVybiBzbGljZUltcGw8SW50MzJBcnJheT4oc3RhcnQsIGVuZCk7CiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaCBiL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50MzJBcnJheS5oCmluZGV4IGJkMDU0NTAuLjA2OGE2NzcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5oCisrKyBiL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW50MzJBcnJheS5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEludDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+
IHsKLSAgcHVibGljOgorcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJyYXk+
IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDMyQXJy
YXk+IGNyZWF0ZShpbnQqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEludDMyQXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIs
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC00Miw3ICs0MiwxMCBA
QCBjbGFzcyBJbnQzMkFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8aW50PiB7
CiAgICAgdXNpbmcgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxpbnQ+OjpzZXQ7CiAjZW5kaWYKIAot
ICBwcml2YXRlOgorICAgIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc2xpY2UoaW50IHN0YXJ0KSBj
b25zdDsKKyAgICBQYXNzUmVmUHRyPEludDMyQXJyYXk+IHNsaWNlKGludCBzdGFydCwgaW50IGVu
ZCkgY29uc3Q7CisKK3ByaXZhdGU6CiAgICAgSW50MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBidWZmZXIsCiAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTUxLDcgKzU0LDYgQEAgY2xhc3Mg
SW50MzJBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPGludD4gewogCiAgICAg
Ly8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KICAgICB2aXJ0dWFsIGJvb2wgaXNJ
bnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXJWaWV3PiBzbGljZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQzMkFycmF5LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwKaW5kZXgg
YmQxNTU0ZC4uZjk2YjUzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFy
cmF5LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCkBAIC0zOSw2
ICszOSw5IEBAIG1vZHVsZSBodG1sIHsKICAgICBdIEludDMyQXJyYXkgOiBBcnJheUJ1ZmZlclZp
ZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQllURVNfUEVSX0VMRU1FTlQgPSA0Owog
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAg
ICAgSW50MzJBcnJheSBzbGljZShpbiBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5k
KTsKKwogICAgICAgICAvLyB2b2lkIHNldChpbiBJbnQzMkFycmF5IGFycmF5LCBbT3B0aW9uYWxd
IGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVu
Y2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQ4QXJyYXkuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuY3BwCmluZGV4
IGMyZGQyZmEuLjg5ZWQzMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFy
cmF5LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5jcHAKQEAgLTUyLDcg
KzUyLDEyIEBAIEludDhBcnJheTo6SW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduCiB7CiB9CiAKLVBhc3NSZWZQdHI8QXJy
YXlCdWZmZXJWaWV3PiBJbnQ4QXJyYXk6OnNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QK
K1Bhc3NSZWZQdHI8SW50OEFycmF5PiBJbnQ4QXJyYXk6OnNsaWNlKGludCBzdGFydCkgY29uc3QK
K3sKKyAgICByZXR1cm4gc2xpY2Uoc3RhcnQsIGxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0cjxJ
bnQ4QXJyYXk+IEludDhBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogewog
ICAgIHJldHVybiBzbGljZUltcGw8SW50OEFycmF5PihzdGFydCwgZW5kKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmggYi9XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDhBcnJheS5oCmluZGV4IGQyNjdmN2YuLmE1ZGYzMDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50OEFycmF5LmgKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJy
YXkuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBcnJheUJ1
ZmZlcjsKIAogY2xhc3MgSW50OEFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8
c2lnbmVkIGNoYXI+IHsKLSAgcHVibGljOgorcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEludDhBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW50OEFycmF5PiBjcmVhdGUoc2lnbmVkIGNoYXIqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludDhBcnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsK
QEAgLTQyLDcgKzQyLDEwIEBAIGNsYXNzIEludDhBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlPHNpZ25lZCBjaGFyPiB7CiAgICAgdXNpbmcgVHlwZWRBcnJheUJhc2U8c2lnbmVk
IGNoYXI+OjpzZXQ7CiAgICAgdXNpbmcgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hh
cj46OnNldDsKIAotICBwcml2YXRlOgorICAgIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzbGljZShp
bnQgc3RhcnQpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzbGljZShpbnQgc3Rh
cnQsIGludCBlbmQpIGNvbnN0OworCitwcml2YXRlOgogICAgIEludDhBcnJheShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9m
ZnNldCwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwpAQCAtNTEsNyArNTQs
NiBAQCBjbGFzcyBJbnQ4QXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTxzaWdu
ZWQgY2hhcj4gewogCiAgICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVmZmVyVmlldy4KICAg
ICB2aXJ0dWFsIGJvb2wgaXNCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gc2xpY2UoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50
OEFycmF5LmlkbAppbmRleCBlYzBiZGI3Li4wOGE2MDhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvY2FudmFzL0ludDhBcnJheS5pZGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJy
YXkuaWRsCkBAIC0zOSw2ICszOSw5IEBAIG1vZHVsZSBodG1sIHsKICAgICBdIEludDhBcnJheSA6
IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCWVRFU19QRVJf
RUxFTUVOVCA9IDE7CiAKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOworICAgICAgICBJbnQ4QXJyYXkgc2xpY2UoaW4gbG9uZyBzdGFydCwgaW4gW09wdGlv
bmFsXSBsb25nIGVuZCk7CisKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gSW50OEFycmF5IGFycmF5
LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBz
ZXQoaW4gc2VxdWVuY2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBv
ZmZzZXQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5QmFzZS5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBl
ZEFycmF5QmFzZS5oCmluZGV4IDc3MjgzZGYuLjJiZWY2ZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9jYW52YXMvVHlwZWRBcnJheUJhc2UuaAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1R5
cGVkQXJyYXlCYXNlLmgKQEAgLTU1LDEyICs1NSwxMiBAQCBjbGFzcyBUeXBlZEFycmF5QmFzZSA6
IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1
ZmZlclZpZXcuIFRoaXMgbXVzdCBiZSBwdWJsaWMgYmVjYXVzZSBvZgogICAgIC8vIHJ1bGVzIGFi
b3V0IGluaGVyaXRhbmNlIG9mIG1lbWJlcnMgaW4gdGVtcGxhdGUgY2xhc3NlcywgYW5kCiAgICAg
Ly8gYmVjYXVzZSBpdCBpcyBhY2Nlc3NlZCB2aWEgcG9pbnRlcnMgdG8gc3ViY2xhc3Nlcy4KLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0CisgICAgdW5zaWduZWQgbGVuZ3RoKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2xlbmd0aDsKICAgICB9CiAKLSAgcHJvdGVj
dGVkOgorIHByb3RlY3RlZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAg
ICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQogICAgICAgICAsIG1fbGVu
Z3RoKGxlbmd0aCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXku
Y3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAKaW5kZXggYTBmODkxYy4u
NTMxMjg4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAK
KysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5jcHAKQEAgLTUyLDcgKzUyLDEy
IEBAIFVpbnQxNkFycmF5OjpVaW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuCiB7CiB9CiAKLVBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXJWaWV3PiBVaW50MTZBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAorUGFz
c1JlZlB0cjxVaW50MTZBcnJheT4gVWludDE2QXJyYXk6OnNsaWNlKGludCBzdGFydCkgY29uc3QK
K3sKKyAgICByZXR1cm4gc2xpY2Uoc3RhcnQsIGxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0cjxV
aW50MTZBcnJheT4gVWludDE2QXJyYXk6OnNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QK
IHsKICAgICByZXR1cm4gc2xpY2VJbXBsPFVpbnQxNkFycmF5PihzdGFydCwgZW5kKTsKIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaCBiL1dlYkNvcmUvaHRt
bC9jYW52YXMvVWludDE2QXJyYXkuaAppbmRleCBmZWUzMWY2Li5mNjNiNjdkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmgKKysrIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50MTZBcnJheS5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEFycmF5QnVmZmVyOwogCiBjbGFzcyBVaW50MTZBcnJheSA6IHB1YmxpYyBJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiB7Ci0gIHB1YmxpYzoKK3B1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBzaG9y
dCogYXJyYXksIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDE2
QXJyYXk+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC00Miw3ICs0MiwxMCBAQCBjbGFzcyBVaW50
MTZBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiB7
CiAgICAgdXNpbmcgVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgc2hvcnQ+OjpzZXQ7CiAgICAgdXNp
bmcgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD46OnNldDsKIAotICBwcml2
YXRlOgorICAgIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IHNsaWNlKGludCBzdGFydCkgY29uc3Q7
CisgICAgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gc2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKKworcHJpdmF0ZToKICAgICBVaW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwpAQCAtNTEs
NyArNTQsNiBAQCBjbGFzcyBVaW50MTZBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlC
YXNlPHVuc2lnbmVkIHNob3J0PiB7CiAKICAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZm
ZXJWaWV3LgogICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJheSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBz
bGljZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwgYi9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbAppbmRleCA3NWE3NDk5Li44ZTc3OGI0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbAorKysgYi9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbApAQCAtMzksNiArMzksOSBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgXSBVaW50MTZBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBCWVRFU19QRVJfRUxFTUVOVCA9IDI7CiAKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBVaW50MTZBcnJh
eSBzbGljZShpbiBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKwogICAgICAg
ICAvLyB2b2lkIHNldChpbiBVaW50MTZBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25l
ZCBsb25nIG9mZnNldCk7CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFy
cmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3Rv
bV0gdm9pZCBzZXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJy
YXkuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAKaW5kZXggZjQ5YTgz
YS4uZjViZDk1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5jcHAKQEAgLTUyLDcgKzUy
LDEyIEBAIFVpbnQzMkFycmF5OjpVaW50MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuCiB7CiB9CiAKLVBhc3NSZWZQdHI8QXJyYXlC
dWZmZXJWaWV3PiBVaW50MzJBcnJheTo6c2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAor
UGFzc1JlZlB0cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnNsaWNlKGludCBzdGFydCkgY29u
c3QKK3sKKyAgICByZXR1cm4gc2xpY2Uoc3RhcnQsIGxlbmd0aCgpKTsKK30KKworUGFzc1JlZlB0
cjxVaW50MzJBcnJheT4gVWludDMyQXJyYXk6OnNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29u
c3QKIHsKICAgICByZXR1cm4gc2xpY2VJbXBsPFVpbnQzMkFycmF5PihzdGFydCwgZW5kKTsKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaCBiL1dlYkNvcmUv
aHRtbC9jYW52YXMvVWludDMyQXJyYXkuaAppbmRleCBkYjIzMDg4Li45YzBmMTM3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmgKKysrIGIvV2ViQ29yZS9odG1s
L2NhbnZhcy9VaW50MzJBcnJheS5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEFycmF5QnVmZmVyOwogCiBjbGFzcyBVaW50MzJBcnJheSA6IHB1YmxpYyBJbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD4gewotICBwdWJsaWM6CitwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgp
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBjcmVhdGUodW5zaWduZWQgaW50
KiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxVaW50MzJB
cnJheT4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTQyLDcgKzQyLDEwIEBAIGNsYXNzIFVpbnQz
MkFycmF5IDogcHVibGljIEludGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50PiB7CiAg
ICAgdXNpbmcgVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6c2V0OwogICAgIHVzaW5nIElu
dGVncmFsVHlwZWRBcnJheUJhc2U8dW5zaWduZWQgaW50Pjo6c2V0OwogCi0gIHByaXZhdGU6Cisg
ICAgUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gc2xpY2UoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBQ
YXNzUmVmUHRyPFVpbnQzMkFycmF5PiBzbGljZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Owor
Citwcml2YXRlOgogICAgIFVpbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTUxLDcgKzU0LDYgQEAg
Y2xhc3MgVWludDMyQXJyYXkgOiBwdWJsaWMgSW50ZWdyYWxUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBpbnQ+IHsKIAogICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCiAgICAg
dmlydHVhbCBib29sIGlzVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzbGljZShpbnQgc3RhcnQs
IGludCBlbmQpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgYi9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1VpbnQzMkFycmF5LmlkbAppbmRleCAwNmUxN2M2Li45ZmJmMzBjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1VpbnQzMkFycmF5LmlkbApAQCAtMzksNiArMzksOSBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
XSBVaW50MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBVaW50MzJBcnJheSBzbGljZShpbiBsb25n
IHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKwogICAgICAgICAvLyB2b2lkIHNldChp
biBVaW50MzJBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCk7
CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5LCBbT3B0aW9uYWxd
IGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXQoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAgYi9XZWJDb3Jl
L2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuY3BwCmluZGV4IDZjNzg1ZjkuLjk5YjhhMDkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL2NhbnZhcy9VaW50OEFycmF5LmNwcApAQCAtNTIsNyArNTIsMTIgQEAgVWludDhBcnJheTo6
VWludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2kKIHsKIH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IFVpbnQ4QXJy
YXk6OnNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKK1Bhc3NSZWZQdHI8VWludDhBcnJh
eT4gVWludDhBcnJheTo6c2xpY2UoaW50IHN0YXJ0KSBjb25zdAoreworICAgIHJldHVybiBzbGlj
ZShzdGFydCwgbGVuZ3RoKCkpOworfQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IFVpbnQ4QXJy
YXk6OnNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKIHsKICAgICByZXR1cm4gc2xpY2VJ
bXBsPFVpbnQ4QXJyYXk+KHN0YXJ0LCBlbmQpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L2NhbnZhcy9VaW50OEFycmF5LmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaApp
bmRleCBmY2U2M2RhLi42NjE1NGI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1Vp
bnQ4QXJyYXkuaAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaApAQCAtMzQs
NyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBcnJheUJ1ZmZlcjsKIAogY2xh
c3MgVWludDhBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNo
YXI+IHsKLSAgcHVibGljOgorcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQ4QXJy
YXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVpbnQ4
QXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBjaGFyKiBhcnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwpAQCAt
NDQsNyArNDQsMTAgQEAgY2xhc3MgVWludDhBcnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+IHsKICAgICB1c2luZyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
PHVuc2lnbmVkIGNoYXI+OjpzZXQ7CiAjZW5kaWYKIAotICBwcml2YXRlOgorICAgIFBhc3NSZWZQ
dHI8VWludDhBcnJheT4gc2xpY2UoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IHNsaWNlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CisKK3ByaXZhdGU6CiAg
ICAgVWludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTUzLDcgKzU2LDYgQEAgY2xhc3MgVWludDhB
cnJheSA6IHB1YmxpYyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGNoYXI+IHsKIAog
ICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCiAgICAgdmlydHVhbCBib29s
IGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gc2xpY2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJy
YXkuaWRsCmluZGV4IGJkMjgwMjMuLjdmZTdlMjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvVWludDhBcnJheS5pZGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5
LmlkbApAQCAtMzksNiArMzksOSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgXSBVaW50OEFycmF5IDog
QXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEJZVEVTX1BFUl9F
TEVNRU5UID0gMTsKIAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7CisgICAgICAgIFVpbnQ4QXJyYXkgc2xpY2UoaW4gbG9uZyBzdGFydCwgaW4gW09wdGlv
bmFsXSBsb25nIGVuZCk7CisKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gVWludDhBcnJheSBhcnJh
eSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgICAgICAgIC8vIHZvaWQg
c2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyMjdiYWY5Li41ODdkNWE2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0y
MzE4LDcgKzIzMTgsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhs
b25nIHgsIGxvbmcgeSwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQsCiAgICAgLy8gVGhlIGxhc3Qg
cm93IG5lZWRzIG5vIHBhZGRpbmcuCiAgICAgdW5zaWduZWQgbG9uZyB0b3RhbEJ5dGVzID0gYnl0
ZXNQZXJSb3cgKiBoZWlnaHQgLSBwYWRkaW5nOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtID0gdG90
YWxCeXRlcyAvIGJ5dGVzUGVyQ29tcG9uZW50OwotICAgIGlmIChwaXhlbHMtPmxlbmd0aCgpIDwg
bnVtKSB7CisgICAgaWYgKHBpeGVscy0+Ynl0ZUxlbmd0aCgpIC8gYnl0ZXNQZXJDb21wb25lbnQg
PCBudW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47CiAgICAgfQo=
</data>
<flag name="review"
          id="64739"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="64740"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>