<?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>139641</bug_id>
          
          <creation_ts>2014-12-14 23:20:52 -0800</creation_ts>
          <short_desc>Move WebCore/platform/graphics/surfaces to std::unique_ptr</short_desc>
          <delta_ts>2014-12-16 19:25:04 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055572</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-14 23:20:52 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055573</commentid>
    <comment_count>1</comment_count>
      <attachid>243285</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-14 23:21:45 -0800</bug_when>
    <thetext>Created attachment 243285
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055977</commentid>
    <comment_count>2</comment_count>
      <attachid>243361</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-16 08:15:17 -0800</bug_when>
    <thetext>Created attachment 243361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056245</commentid>
    <comment_count>3</comment_count>
      <attachid>243361</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-16 19:24:59 -0800</bug_when>
    <thetext>Comment on attachment 243361
Patch

Clearing flags on attachment: 243361

Committed r177429: &lt;http://trac.webkit.org/changeset/177429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056246</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-16 19:25:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243285</attachid>
            <date>2014-12-14 23:21:45 -0800</date>
            <delta_ts>2014-12-16 08:15:10 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-139641-20141215162232.patch</filename>
            <type>text/plain</type>
            <size>23525</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY0ZmU1NzZmMmU2ZTBk
ZmJjZDdmMGE4ODc2NTVjZWRjOWNkNzM0ZS4uNmVjNGU4ZTEyZTM4NmJiNDgyODdjNDExNTJhNTBj
MWM5NjA2MjE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTEyLTE0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjQxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBPd25QdHJ8
UGFzc093blB0ciB3aXRoIHN0ZDo6bWFrZV91bmlxdWU8PnxzdGQ6OnVuaXF1ZV9wdHI8Pi4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEVHTDo6Y3JlYXRl
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJm
YWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudDo6Y3JlYXRl
VHJhbnNwb3J0U3VyZmFjZUNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlVG9rZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFR0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVHTFRyYW5zcG9ydFN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZh
Y2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RUdMVHJhbnNwb3J0U3VyZmFjZTo6RUdMVHJh
bnNwb3J0U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wv
RUdMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RUdMWFRyYW5zcG9ydFN1cmZhY2VD
bGllbnQ6OkVHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
TFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmg6CisKIDIwMTQtMTItMTQgIEFuZHJl
YXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEV2ZW50IGNvbnN0cnVjdGlv
biBoZWxwZXJzIHNob3VsZCByZXR1cm4gUmVmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4IDc1YWEz
Njc4NTM4MTdkOWQ0ZDM0N2RjOTk0NjM3MGE1OTczYjhmNDUuLjgwMWU4NThhNjI0MjQxMTU5OTQ1
MjNjZTA2MDIyZDEwYWNkMjc1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTQyLDI1ICsxNDIsMjUgQEAgdm9pZCBHTENvbnRleHQ6
OmNsZWFudXBBY3RpdmVDb250ZXh0c0F0RXhpdCgpCiAjZW5kaWYgLy8gUExBVEZPUk0oWDExKQog
CiAKLVBhc3NPd25QdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5k
b3coR0xOYXRpdmVXaW5kb3dUeXBlIHdpbmRvd0hhbmRsZSwgR0xDb250ZXh0KiBzaGFyaW5nQ29u
dGV4dCkKK3N0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4
dEZvcldpbmRvdyhHTE5hdGl2ZVdpbmRvd1R5cGUgd2luZG93SGFuZGxlLCBHTENvbnRleHQqIHNo
YXJpbmdDb250ZXh0KQogewogI2lmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZPUk0oV0FZTEFORCkg
JiYgIWRlZmluZWQoR1RLX0FQSV9WRVJTSU9OXzIpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19X
QVlMQU5EKSAmJiBVU0UoRUdMKQogICAgIEdka0Rpc3BsYXkqIGRpc3BsYXkgPSBnZGtfZGlzcGxh
eV9tYW5hZ2VyX2dldF9kZWZhdWx0X2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfbWFuYWdlcl9nZXQoKSk7
CiAKICAgICBpZiAoR0RLX0lTX1dBWUxBTkRfRElTUExBWShkaXNwbGF5KSkgewotICAgICAgICBp
ZiAoT3duUHRyPEdMQ29udGV4dD4gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29u
dGV4dCh3aW5kb3dIYW5kbGUsIHNoYXJpbmdDb250ZXh0KSkKLSAgICAgICAgICAgIHJldHVybiBl
Z2xDb250ZXh0LnJlbGVhc2UoKTsKKyAgICAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29u
dGV4dEVHTDo6Y3JlYXRlQ29udGV4dCh3aW5kb3dIYW5kbGUsIHNoYXJpbmdDb250ZXh0KSkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om1vdmUoZWdsQ29udGV4dCk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KICNlbmRpZgogCiAjaWYgVVNFKEdMWCkKLSAgICBpZiAoT3duUHRyPEdM
Q29udGV4dD4gZ2x4Q29udGV4dCA9IEdMQ29udGV4dEdMWDo6Y3JlYXRlQ29udGV4dCh3aW5kb3dI
YW5kbGUsIHNoYXJpbmdDb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIGdseENvbnRleHQucmVsZWFz
ZSgpOworICAgIGlmIChhdXRvIGdseENvbnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0ZUNvbnRl
eHQod2luZG93SGFuZGxlLCBzaGFyaW5nQ29udGV4dCkpCisgICAgICAgIHJldHVybiBXVEY6Om1v
dmUoZ2x4Q29udGV4dCk7CiAjZW5kaWYKICNpZiBVU0UoRUdMKQotICAgIGlmIChPd25QdHI8R0xD
b250ZXh0PiBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVhdGVDb250ZXh0KHdpbmRvd0hh
bmRsZSwgc2hhcmluZ0NvbnRleHQpKQotICAgICAgICByZXR1cm4gZWdsQ29udGV4dC5yZWxlYXNl
KCk7CisgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4
dCh3aW5kb3dIYW5kbGUsIHNoYXJpbmdDb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bW92
ZShlZ2xDb250ZXh0KTsKICNlbmRpZgogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtMTcyLDcg
KzE3Miw3IEBAIEdMQ29udGV4dDo6R0xDb250ZXh0KCkKICNlbmRpZgogfQogCi1QYXNzT3duUHRy
PEdMQ29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KEdMQ29udGV4dCog
c2hhcmluZ0NvbnRleHQpCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNy
ZWF0ZU9mZnNjcmVlbkNvbnRleHQoR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCkKIHsKICAgICBy
ZXR1cm4gY3JlYXRlQ29udGV4dEZvcldpbmRvdygwLCBzaGFyaW5nQ29udGV4dCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCmluZGV4IDAzYjU3YjVl
ODI0NDQ4OGE1ZjllNjIyZjcwNjQ1OThkNjI4ZjVmMjMuLjA0NjUzYjZkYzdiNWY3YjFlZmQ5ZDQ0
MTY0ZWM5MDEyZDJlYjBiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0QuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgVVNFKEVHTCkgJiYgIVBMQVRGT1JN
KEdUSykKICNpbmNsdWRlICJlZ2xwbGF0Zm9ybS5oIgpAQCAtNDUsOCArNDQsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBHTENvbnRleHQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEdMQ29udGV4dCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250ZXh0PiBj
cmVhdGVDb250ZXh0Rm9yV2luZG93KEdMTmF0aXZlV2luZG93VHlwZSB3aW5kb3dIYW5kbGUsIEdM
Q29udGV4dCogc2hhcmluZ0NvbnRleHQpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMQ29udGV4
dD4gY3JlYXRlT2Zmc2NyZWVuQ29udGV4dChHTENvbnRleHQqIHNoYXJpbmcgPSAwKTsKKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gY3JlYXRlQ29udGV4dEZvcldpbmRvdyhH
TE5hdGl2ZVdpbmRvd1R5cGUgd2luZG93SGFuZGxlLCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0
KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gY3JlYXRlT2Zmc2NyZWVu
Q29udGV4dChHTENvbnRleHQqIHNoYXJpbmcgPSAwKTsKICAgICBzdGF0aWMgR0xDb250ZXh0KiBn
ZXRDdXJyZW50KCk7CiAgICAgc3RhdGljIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmNwcAppbmRleCAxMDI0MWMwODRjYTIyNjI2MWMzZTUyMGRhODY5ZTU1YTljMjBjYjRjLi5h
ZGQ4M2E4NGUyMGQzZDkwZmJkNTk0MTEzMTAwOTZhOTQ1NzNiNTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAt
MjAyLDcgKzIwMiw3IEBAIFBhc3NPd25QdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNy
ZWF0ZVBpeG1hcENvbnRleHQoRUdMQ29udGV4dCBzaGFyaW5nQ29uCiAjZW5kaWYKIH0KIAotUGFz
c093blB0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4dChFR0xOYXRp
dmVXaW5kb3dUeXBlIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCkKK3N0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4dChFR0xOYXRp
dmVXaW5kb3dUeXBlIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCkKIHsKICAgICBp
ZiAoIXNoYXJlZEVHTERpc3BsYXkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yMTks
MTQgKzIxOSwxNCBAQCBQYXNzT3duUHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVh
dGVDb250ZXh0KEVHTE5hdGl2ZVdpbmRvd1R5cGUgd2luZG93LAogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIEVHTENvbnRleHQgZWdsU2hhcmluZ0NvbnRleHQgPSBzaGFyaW5nQ29udGV4
dCA/IHN0YXRpY19jYXN0PEdMQ29udGV4dEVHTCo+KHNoYXJpbmdDb250ZXh0KS0+bV9jb250ZXh0
IDogMDsKLSAgICBPd25QdHI8R0xDb250ZXh0RUdMPiBjb250ZXh0ID0gd2luZG93ID8gY3JlYXRl
V2luZG93Q29udGV4dCh3aW5kb3csIHNoYXJpbmdDb250ZXh0KSA6IG51bGxwdHI7CisgICAgYXV0
byBjb250ZXh0ID0gd2luZG93ID8gY3JlYXRlV2luZG93Q29udGV4dCh3aW5kb3csIHNoYXJpbmdD
b250ZXh0KSA6IG51bGxwdHI7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICBjb250ZXh0ID0g
Y3JlYXRlUGl4bWFwQ29udGV4dChlZ2xTaGFyaW5nQ29udGV4dCk7CiAKICAgICBpZiAoIWNvbnRl
eHQpCiAgICAgICAgIGNvbnRleHQgPSBjcmVhdGVQYnVmZmVyQ29udGV4dChlZ2xTaGFyaW5nQ29u
dGV4dCk7CiAgICAgCi0gICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBX
VEY6Om1vdmUoY29udGV4dCk7CiB9CiAKIEdMQ29udGV4dEVHTDo6R0xDb250ZXh0RUdMKEVHTENv
bnRleHQgY29udGV4dCwgRUdMU3VyZmFjZSBzdXJmYWNlLCBFR0xTdXJmYWNlVHlwZSB0eXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVH
TC5oCmluZGV4IGQxYjI4ZWEzMTU5NWZiOGE5ZWEzNGMwYTllNGEwMzdmYjM5ZjM0M2MuLmEyZjZm
M2ZhMTJjNDVjNjgxMDBmODU4MWVjZDAxNDc5ZTExYzkwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTMyLDggKzMy
LDggQEAgY2xhc3MgR0xDb250ZXh0RUdMIDogcHVibGljIEdMQ29udGV4dCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoR0xDb250ZXh0RUdMKTsKIHB1YmxpYzoKICAgICBlbnVtIEVHTFN1cmZh
Y2VUeXBlIHsgUGJ1ZmZlclN1cmZhY2UsIFdpbmRvd1N1cmZhY2UsIFBpeG1hcFN1cmZhY2UgfTsK
LSAgICBzdGF0aWMgUGFzc093blB0cjxHTENvbnRleHRFR0w+IGNyZWF0ZUNvbnRleHQoRUdMTmF0
aXZlV2luZG93VHlwZSwgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCA9IDApOwotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2luZG93Q29udGV4dChFR0xOYXRpdmVX
aW5kb3dUeXBlLCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlQ29udGV4dChFR0xOYXRpdmVXaW5kb3dUeXBl
LCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0ID0gMCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdpbmRvd0NvbnRleHQoRUdMTmF0aXZlV2luZG93VHlw
ZSwgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCk7CiAKICAgICB2aXJ0dWFsIH5HTENvbnRleHRF
R0woKTsKICAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmgKaW5kZXgg
ZWRlZmMwNGMyNjU1NmFhMjliZjY2ZGM0NWIyNDQwMDE3ODQ4NjQ5Yy4uZmU0N2MxYTdjMGFhZGUz
YzcyN2Y5YzgwYWE2Yjc3NDQxYzNiZjljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaApAQCAtMzcsOCArMzcsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHTENvbnRleHRHTFggOiBwdWJsaWMgR0xDb250ZXh0IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHRHTFgpOwogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzT3duUHRyPEdMQ29udGV4dEdMWD4gY3JlYXRlQ29udGV4dChYSUQgd2luZG93LCBH
TENvbnRleHQqIHNoYXJpbmdDb250ZXh0KTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxHTENvbnRl
eHRHTFg+IGNyZWF0ZVdpbmRvd0NvbnRleHQoWElEIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5n
Q29udGV4dCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRHTFg+IGNyZWF0
ZUNvbnRleHQoWElEIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCk7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRHTFg+IGNyZWF0ZVdpbmRvd0NvbnRleHQoWElE
IHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCk7CiAKICAgICB2aXJ0dWFsIH5HTENv
bnRleHRHTFgoKTsKICAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5z
cG9ydFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcAppbmRleCAyNWQ2Y2U5ZjFlNWViYWE5NGIwZGI2MjY2
YWUzZjUwNzhmMTI4NzQ1Li4yM2Q1YmY4MDQ1MDk1ZTYwODk4ODY2ZjQ2ZDk2MTYyNjY2NzBhMDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
TFRyYW5zcG9ydFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHAKQEAgLTQzLDE3ICs0MywxNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgY29uc3QgR0xmbG9hdCB2ZXJ0aWNlc1tdID0geyAw
LCAwLCAxLCAwLCAxLCAxLCAwLCAxIH07CiBzdGF0aWMgYm9vbCB2ZXJ0ZXhBcnJheU9iamVjdFN1
cHBvcnRlZCA9IGZhbHNlOwogCi1QYXNzT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gR0xUcmFu
c3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUs
IFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8R0xUcmFuc3Bv
cnRTdXJmYWNlPiBHTFRyYW5zcG9ydFN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoY29u
c3QgSW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIHsKLSAgICBP
d25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBzdXJmYWNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxH
TFRyYW5zcG9ydFN1cmZhY2U+IHN1cmZhY2U7CiAjaWYgVVNFKEdMWCkKLSAgICBzdXJmYWNlID0g
YWRvcHRQdHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2Uoc2l6ZSwgYXR0cmlidXRlcykpOworICAg
IHN1cmZhY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWFRyYW5zcG9ydFN1cmZhY2U+KHNpemUsIGF0
dHJpYnV0ZXMpOwogI2VsaWYgVVNFKEVHTCkKICAgICBzdXJmYWNlID0gRUdMVHJhbnNwb3J0U3Vy
ZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZShzaXplLCBhdHRyaWJ1dGVzKTsKICNlbmRpZgog
CiAgICAgaWYgKHN1cmZhY2UgJiYgc3VyZmFjZS0+aGFuZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2Fi
bGUoKSkKLSAgICAgICAgcmV0dXJuIHN1cmZhY2UucmVsZWFzZSgpOworICAgICAgICByZXR1cm4g
V1RGOjptb3ZlKHN1cmZhY2UpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC0yMDUsMTEg
KzIwNSwxMSBAQCB2b2lkIEdMVHJhbnNwb3J0U3VyZmFjZTo6aW5pdGlhbGl6ZVNoYWRlclByb2dy
YW0oKQogICAgIHVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCk7CiB9CiAKLVBhc3NPd25QdHI8
R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ6OmNyZWF0
ZVRyYW5zcG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUgaGFuZGxl
LCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIGhhc0FscGhhKQorc3RkOjp1bmlxdWVfcHRyPEdM
VHJhbnNwb3J0U3VyZmFjZUNsaWVudD4gR0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50OjpjcmVhdGVU
cmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRmb3JtQnVmZmVySGFuZGxlIGhhbmRsZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNBbHBoYSkKIHsKLSAgICBPd25QdHI8R0xUcmFu
c3BvcnRTdXJmYWNlQ2xpZW50PiBjbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNw
b3J0U3VyZmFjZUNsaWVudD4gY2xpZW50OwogI2lmIFVTRShHTFgpCi0gICAgY2xpZW50ID0gYWRv
cHRQdHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2VDbGllbnQoaGFuZGxlLCBoYXNBbHBoYSkpOwor
ICAgIGNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYVHJhbnNwb3J0U3VyZmFjZUNsaWVudD4o
aGFuZGxlLCBoYXNBbHBoYSk7CiAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwogI2Vsc2UKICAgICBj
bGllbnQgPSBFR0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50
KGhhbmRsZSwgc2l6ZSwgaGFzQWxwaGEpOwpAQCAtMjIwLDcgKzIyMCw3IEBAIFBhc3NPd25QdHI8
R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ6OmNyZWF0
ZVRyYW5zcG9ydFN1CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVy
biBjbGllbnQucmVsZWFzZSgpOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xpZW50KTsKIH0KIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
TFRyYW5zcG9ydFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCmluZGV4IGI1NzljODU5YWY0MzBkY2QyMmIzYjZl
MjA2ZjQyYjNjZTFjZjIzMTYuLmRjY2M2NWI0N2M3ODY3NTczYzQ0ZjQwZDhmNTk4NjUyODE5MGM4
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L0dMVHJhbnNwb3J0U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVm
aW5lIEdMVHJhbnNwb3J0U3VyZmFjZV9oCiAKICNpbmNsdWRlICJHTFBsYXRmb3JtU3VyZmFjZS5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzcsNyArMzYsNyBAQCBjbGFzcyBHTFRyYW5zcG9ydFN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0
Zm9ybVN1cmZhY2UgewogCiBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlcyBhIEdMIHN1cmZhY2Ugd2hv
c2UgcmVzdWx0cyBjYW4gYmUgdHJhbnNwb3J0ZWQgdG8gdGhlIFVJIHByb2Nlc3MgZm9yIGRpc3Bs
YXkuCi0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBjcmVhdGVUcmFu
c3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUmLCBTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZv
cm1TdXJmYWNlOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNw
b3J0U3VyZmFjZT4gY3JlYXRlVHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiwgU3VyZmFj
ZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdCk7CiAgICAgdmlydHVhbCB+
R0xUcmFuc3BvcnRTdXJmYWNlKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNv
bnN0IHVpbnQzMl90KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOwpAQCAtNjAsNyArNTksNyBAQCBwcm90ZWN0ZWQ6CiBjbGFz
cyBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xp
ZW50KGNvbnN0IFBsYXRmb3JtQnVmZmVySGFuZGxlLCBjb25zdCBJbnRTaXplJiwgYm9vbCk7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IGNyZWF0
ZVRyYW5zcG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUsIGNvbnN0
IEludFNpemUmLCBib29sKTsKICAgICB2aXJ0dWFsIH5HTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRleHR1cmUoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaAppbmRleCBiNDcxYzkyM2NmMjFhMWVhYjY4
ZWU2NDY0ZThkZDI4YmM3ZmEwMDVlLi41YmI4MTJjMTU1ZGFhYTZhNzExNjcwMmIyMzg4NTlmZGEx
MmIwYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HcmFwaGljc1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlVG9rZW4u
aCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1
cmZhY2VUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlVG9rZW4uaAppbmRleCAwYjhhNjUxZTJlNDAwZDIwNmYzODZhYzdlOWVi
ZjU1YzBmMzYwYmUzLi5hZmY5YzQ5NGM2MGE3M2JmMGU5ZjAzYjExN2ZlYjkxMGVjZTkxYzkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFw
aGljc1N1cmZhY2VUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZVRva2VuLmgKQEAgLTIyLDcgKzIyLDYgQEAKIAogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2VmbC9HcmFwaGljc1N1cmZhY2VDb21tb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFjZUNvbW1vbi5j
cHAKaW5kZXggZWM0ZjEyMmUwNWU0ODdlODc2NDMyOTQ3ZTBlZmFiZmY0MzExMTQzYy4uZTA2YTEy
OGE3MTM1ZjU3NWRlMDI1NDRhZDU0NzAzM2M1NWE1Mzc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFjZUNvbW1v
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZs
L0dyYXBoaWNzU3VyZmFjZUNvbW1vbi5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCBwcml2YXRlOgog
ICAgIEZsb2F0UmVjdCBtX3JlY3Q7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgUGxhdGZvcm1C
dWZmZXJIYW5kbGUgbV9zaGFyZWRIYW5kbGU7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFj
ZUNsaWVudD4gbV9jbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNwb3J0U3VyZmFj
ZUNsaWVudD4gbV9jbGllbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1Db250ZXh0
PiBtX3NoYXJlZENvbnRleHQ7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gbV9zaGFy
ZWRTdXJmYWNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2U+IG1fc2hh
cmVkU3VyZmFjZTsKIH07CiAKIEdyYXBoaWNzU3VyZmFjZVRva2VuIEdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1FeHBvcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IDZjM2M1ZTMyM2Q3
ZTYxNTVlZTZiNGIyNjNjYTU4YzU0OGY5ZTJmMWUuLmVhZTMwY2RmNDVjODQ3MGZiODAwMDhhZjY2
NWNjMjRjZGY4OGM3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTM4LDI4ICszOCwy
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8R0xUcmFuc3BvcnRTdXJm
YWNlPiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IElu
dFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitzdGQ6OnVuaXF1ZV9w
dHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3Bv
cnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCiB7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gc3VyZmFjZTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBzdXJmYWNlOwogI2lmIFBMQVRGT1JNKFgx
MSkKLSAgICBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2Uo
c2l6ZSwgYXR0cmlidXRlcykpOworICAgIHN1cmZhY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTFdp
bmRvd1RyYW5zcG9ydFN1cmZhY2U+KHNpemUsIGF0dHJpYnV0ZXMpOwogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oc2l6ZSk7CiAgICAgVU5VU0VEX1BBUkFNKGF0dHJpYnV0ZXMpOwogI2VuZGlmCiAK
ICAgICBpZiAoc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIHN1cmZhY2UucmVsZWFzZSgpOworICAg
ICAgICByZXR1cm4gV1RGOjptb3ZlKHN1cmZhY2UpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKLVBhc3NPd25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBFR0xUcmFuc3BvcnRTdXJm
YWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRmb3JtQnVmZmVySGFu
ZGxlIGhhbmRsZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNBbHBoYSkKK3N0ZDo6dW5p
cXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IEVHTFRyYW5zcG9ydFN1cmZhY2U6OmNy
ZWF0ZVRyYW5zcG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUgaGFu
ZGxlLCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIGhhc0FscGhhKQogewogICAgIEVHTEhlbHBl
cjo6cmVzb2x2ZUVHTEJpbmRpbmdzKCk7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNs
aWVudD4gY2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGll
bnQ+IGNsaWVudDsKICNpZiBQTEFURk9STShYMTEpCi0gICAgY2xpZW50ID0gYWRvcHRQdHIobmV3
IEVHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGhhbmRsZSwgc2l6ZSwgaGFzQWxwaGEpKTsKKyAg
ICBjbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50Piho
YW5kbGUsIHNpemUsIGhhc0FscGhhKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwpAQCAtNjcsNyArNjcsNyBAQCBQYXNzT3duUHRyPEdM
VHJhbnNwb3J0U3VyZmFjZUNsaWVudD4gRUdMVHJhbnNwb3J0U3VyZmFjZTo6Y3JlYXRlVHJhbnNw
b3J0U3VyZmFjZQogI2VuZGlmCiAKICAgICBpZiAoY2xpZW50KQotICAgICAgICByZXR1cm4gY2xp
ZW50LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92ZShjbGllbnQpOwogCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CkBAIC04MCw3ICs4MCw3IEBAIEVHTFRyYW5zcG9ydFN1cmZhY2U6
OkVHTFRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJpYnV0
ZXMKICAgICBpZiAobV9zaGFyZWREaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEVHTENvbmZpZ1Nl
bGVjdG9yKGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gc3RkOjptYWtlX3Vu
aXF1ZTxFR0xDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRlcyk7CiB9CiAKIEdMUGxhdGZvcm1TdXJm
YWNlOjpTdXJmYWNlQXR0cmlidXRlcyBFR0xUcmFuc3BvcnRTdXJmYWNlOjphdHRyaWJ1dGVzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oCmluZGV4IDVkZWJlN2VkYjZiNWY5MWY1NDJlYjMwMDc3
OGQwZWQ5M2UxZTk0NTYuLjkzNzEzYmE3YmFkZjFlODEwZjc1NjkyZmM0MGI2OGE4OGMzMDY1MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFN1cmZhY2UuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkdMVHJh
bnNwb3J0U3VyZmFjZS5oIgogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw4ICsz
OCw4IEBAIGNsYXNzIEVHTENvbmZpZ1NlbGVjdG9yOwogCiBjbGFzcyBFR0xUcmFuc3BvcnRTdXJm
YWNlIDogcHVibGljIEdMVHJhbnNwb3J0U3VyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKGNvbnN0
IEludFNpemUmLCBTdXJmYWNlQXR0cmlidXRlcyk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xU
cmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0
IFBsYXRmb3JtQnVmZmVySGFuZGxlLCBjb25zdCBJbnRTaXplJiwgYm9vbCk7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2U+IGNyZWF0ZVRyYW5zcG9ydFN1cmZh
Y2UoY29uc3QgSW50U2l6ZSYsIFN1cmZhY2VBdHRyaWJ1dGVzKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudD4gY3JlYXRlVHJhbnNwb3J0U3VyZmFj
ZUNsaWVudChjb25zdCBQbGF0Zm9ybUJ1ZmZlckhhbmRsZSwgY29uc3QgSW50U2l6ZSYsIGJvb2wp
OwogICAgIHZpcnR1YWwgfkVHTFRyYW5zcG9ydFN1cmZhY2UoKTsKICAgICB2aXJ0dWFsIFBsYXRm
b3JtU3VyZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRlc3Ryb3koKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcm90
ZWN0ZWQ6CiAgICAgRUdMVHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiwgU3VyZmFjZUF0
dHJpYnV0ZXMpOwotICAgIE93blB0cjxFR0xDb25maWdTZWxlY3Rvcj4gbV9jb25maWdTZWxlY3Rv
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RUdMQ29uZmlnU2VsZWN0b3I+IG1fY29uZmlnU2VsZWN0
b3I7CiB9OwogCiBjbGFzcyBFR0xPZmZTY3JlZW5TdXJmYWNlIDogcHVibGljIEdMUGxhdGZvcm1T
dXJmYWNlIHsKQEAgLTYxLDcgKzYwLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgRUdM
T2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyk7Ci0gICAgT3duUHRyPEVHTENvbmZp
Z1NlbGVjdG9yPiBtX2NvbmZpZ1NlbGVjdG9yOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xDb25m
aWdTZWxlY3Rvcj4gbV9jb25maWdTZWxlY3RvcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZh
Y2UuY3BwCmluZGV4IDU0NjYxOWNjZTBlMTdmYjYzNDFkNGM2OGIyNDU2MWY3ZTg5MzYxNjMuLjc5
MmE5OGI2NmYzMDZiMmMzMTI3M2M1Mjg0YjZlM2VjNTg0YjMwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFhT
dXJmYWNlLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIEVHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50
OjpFR0xYVHJhbnNwb3J0U3VyZmFjZUNsaWVudChjb25zdCBQbGF0Zm9ybUJ1ZmZlckhhbmRsCiAK
ICAgICBFR0xDb25maWdTZWxlY3RvciBjb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmli
dXRlcyk7CiAgICAgRUdMQ29uZmlnIGNvbmZpZyA9IGNvbmZpZ1NlbGVjdG9yLnN1cmZhY2VDbGll
bnRDb25maWcoWFZpc3VhbElERnJvbVZpc3VhbChhdHRyLnZpc3VhbCkpOwotICAgIG1fZWdsSW1h
Z2UgPSBhZG9wdFB0cihuZXcgRUdMVGV4dHVyZUZyb21QaXhtYXAobV9oYW5kbGUsIGhhc0FscGhh
LCBjb25maWcpKTsKKyAgICBtX2VnbEltYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxFR0xUZXh0dXJl
RnJvbVBpeG1hcD4obV9oYW5kbGUsIGhhc0FscGhhLCBjb25maWcpOwogCiAgICAgaWYgKCFtX2Vn
bEltYWdlLT5pc1ZhbGlkKCkgfHwgZWdsR2V0RXJyb3IoKSAhPSBFR0xfU1VDQ0VTUykKICAgICAg
ICAgZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaAppbmRleCA0ZmYxMjhjMzNjZTM4NGIx
Yzc3ODMzZWQ3MDk4NzQ1ZDMzYmZjNDUyLi45NmM4YTY2OWMzYzY3ZjRmNDhhMmNhNjcyMTFiYWE2
YTg0ZjRkZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaApAQCAtNzksNyArNzksNyBAQCBwcml2
YXRlOgogICAgIFBsYXRmb3JtQnVmZmVySGFuZGxlIG1faGFuZGxlOwogICAgIEdMdWludCBtX2Zv
cm1hdDsKICAgICB1bnNpZ25lZCBtX3RvdGFsQnl0ZXM7Ci0gICAgT3duUHRyPEVHTFRleHR1cmVG
cm9tUGl4bWFwPiBtX2VnbEltYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUZXh0dXJlRnJv
bVBpeG1hcD4gbV9lZ2xJbWFnZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAppbmRl
eCAxNmY1NmMxNzA3MGJjZmY1NjM3OTlkNTgxMzJkOGY1ZWNjYjE1NDZkLi4yYjM1MzAyZTdlOGVh
YTI1NTAyNGQxNWM1MjBkNmE5MTg3NzBhN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCkBA
IC02Niw3ICs2Niw3IEBAIEdMWFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZhY2Uo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJpYnV0ZXMKIHsKICAgICBtX3NoYXJlZERp
c3BsYXkgPSBYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKTsKICAgICBhdHRyaWJ1dGVzIHw9IEdM
UGxhdGZvcm1TdXJmYWNlOjpEb3VibGVCdWZmZXJlZDsKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0g
YWRvcHRQdHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZp
Z1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxHTFhDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRl
cyk7CiAgICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiB2aXNJbmZvKG1fY29uZmlnU2VsZWN0b3It
PnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRleHRDb25maWcoKSkpOwog
CiAgICAgaWYgKCF2aXNJbmZvLmdldCgpKSB7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBHTFhP
ZmZTY3JlZW5TdXJmYWNlOjppbml0aWFsaXplKFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMp
CiB7CiAgICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCk7CiAK
LSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKGF0
dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxHTFhD
b25maWdTZWxlY3Rvcj4oYXR0cmlidXRlcyk7CiAKICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+
IHZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9y
LT5waXhtYXBDb250ZXh0Q29uZmlnKCkpKTsKICAgICBYMTFIZWxwZXI6OmNyZWF0ZVBpeG1hcCgm
bV9waXhtYXAsICp2aXN1YWxJbmZvLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCmluZGV4IDBi
MTlmZTM5Njg4YzhjYzcxMDY1ODNhZGJmNWNkYjFlZmEyNDIwMTEuLjdjMGU5Njk4OGJhYmQ3ODc2
NWEyMmJhNzVmODYzZmU0ZjI0YWFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaApAQCAtNDYsNyAr
NDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKLSAgICBPd25QdHI8R0xYQ29uZmlnU2VsZWN0b3I+IG1fY29uZmlnU2VsZWN0b3I7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMWENvbmZpZ1NlbGVjdG9yPiBtX2NvbmZpZ1NlbGVjdG9y
OwogfTsKIAogY2xhc3MgR0xYT2ZmU2NyZWVuU3VyZmFjZSA6IHB1YmxpYyBHTFBsYXRmb3JtU3Vy
ZmFjZSB7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0
aWFsaXplKFN1cmZhY2VBdHRyaWJ1dGVzKTsKICAgICB2b2lkIGZyZWVSZXNvdXJjZXMoKTsKLSAg
ICBPd25QdHI8R0xYQ29uZmlnU2VsZWN0b3I+IG1fY29uZmlnU2VsZWN0b3I7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEdMWENvbmZpZ1NlbGVjdG9yPiBtX2NvbmZpZ1NlbGVjdG9yOwogICAgIFBpeG1h
cCBtX3BpeG1hcDsKICAgICBHTFhQaXhtYXAgbV9nbHhQaXhtYXA7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
aAppbmRleCBhNzZlZWYwOTFjNzA5NTI2OTIyYjkxZWMxZjY1OGNkMDhmOWE5NDgxLi4xNmY2OGFi
NmEwM2Y0ZjIzMjU0Mzk2ZThiYjAyODNjM2RmZjM1OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAt
MzYsNyArMzYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxv
b3BTb3VyY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05OSw3ICs5OCw3IEBAIHByaXZh
dGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VPdmVybGF5Kiwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBQYWdlT3ZlcmxheUxheWVyTWFwOwogICAg
IFBhZ2VPdmVybGF5TGF5ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwotICAgIE93blB0
cjxXZWJDb3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6R0xDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgZG91YmxlIG1fbGFzdEltbWVkaWF0ZUZs
dXNoVGltZTsKICAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkOwogICAgIEdN
YWluTG9vcFNvdXJjZSBtX2xheWVyRmx1c2hUaW1lckNhbGxiYWNrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243361</attachid>
            <date>2014-12-16 08:15:17 -0800</date>
            <delta_ts>2014-12-16 19:24:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139641-20141217011605.patch</filename>
            <type>text/plain</type>
            <size>33722</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg5ZDcxY2FjZWEwOGQy
MDRhNTgyNWNjMzY1ZjliM2RmNmUwYmU4MS4uNDRiMWM4MjJkOGIzNTQ0NWI4MWFiMTZkM2IyN2Zk
MzQ4NzFiNjU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTEyLTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjQxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBPd25QdHJ8
UGFzc093blB0ciB3aXRoIHN0ZDo6bWFrZV91bmlxdWU8PnxzdGQ6OnVuaXF1ZV9wdHI8Pi4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHTENvbnRleHQ6OnNoYXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29u
dGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRl
eHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZh
dGU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9l
Z2wvR0xDb250ZXh0RUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEVHTDo6Y3Jl
YXRlV2luZG93Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0
ZVBidWZmZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEVHTDo6Y3JlYXRl
UGl4bWFwQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZUNv
bnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdMQ29udGV4dEdMWDo6Y3JlYXRlV2luZG93Q29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpHTENvbnRleHRHTFg6OmNyZWF0ZVBidWZmZXJDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdMQ29udGV4dEdMWDo6Y3JlYXRlUGl4bWFwQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpHTENvbnRleHRHTFg6OmNyZWF0ZUNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xU
cmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudDo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZUNsaWVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJm
YWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJm
YWNlVG9rZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3Jh
cGhpY3NTdXJmYWNlQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xUcmFuc3BvcnRT
dXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkVHTFRy
YW5zcG9ydFN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2VDbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RUdMVHJhbnNwb3J0U3VyZmFjZTo6RUdMVHJhbnNwb3J0U3VyZmFjZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RUdMWFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ6OkVHTFhUcmFuc3BvcnRT
dXJmYWNlQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wv
RUdMWFN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpH
TFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMWE9mZlNjcmVlblN1cmZh
Y2U6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhTdXJmYWNlLmg6CisKIDIwMTQtMTItMTUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgR2FtZXBhZERldmljZUd0azo6
Y3JlYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMDUxMTdkMzE4ODJjZGNjZjMwYzZhMTIxNzg5YjgwZDQ5
ZGYzOWE0Li5jNDc2YzJiMWY0Y2U0NzY3ZDE1ODIxMjVkOWU5ZmMyOGUzNDFjOTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMTItMTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMgdG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVl
SG9zdEd0ay5oOgorCiAyMDE0LTEyLTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVc2UgQVBJOjpMb2FkZXJDbGllbnQgaW5zdGVh
ZCBvZiBXS1BhZ2VMb2FkZXJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HTENvbnRleHQuY3BwCmluZGV4IDc1YWEzNjc4NTM4MTdkOWQ0ZDM0N2RjOTk0NjM3MGE1
OTczYjhmNDUuLmE3ZmE5ODgzZGJhODVjN2M2ZWI3MjI5MjExZGRkNjgxZTNlMzk0MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtNjgs
NyArNjgsNyBAQCBpbmxpbmUgVGhyZWFkR2xvYmFsR0xDb250ZXh0KiBjdXJyZW50Q29udGV4dCgp
CiAKIEdMQ29udGV4dCogR0xDb250ZXh0OjpzaGFyaW5nQ29udGV4dCgpCiB7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxHTENvbnRleHQ+LCBzaGFyaW5nLCAoY3Jl
YXRlT2Zmc2NyZWVuQ29udGV4dCgpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+LCBzaGFyaW5nLCAoY3JlYXRlT2Zmc2NyZWVu
Q29udGV4dCgpKSk7CiAgICAgcmV0dXJuIHNoYXJpbmcuZ2V0KCk7CiB9CiAKQEAgLTE0MiwyNSAr
MTQyLDI1IEBAIHZvaWQgR0xDb250ZXh0OjpjbGVhbnVwQWN0aXZlQ29udGV4dHNBdEV4aXQoKQog
I2VuZGlmIC8vIFBMQVRGT1JNKFgxMSkKIAogCi1QYXNzT3duUHRyPEdMQ29udGV4dD4gR0xDb250
ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KEdMTmF0aXZlV2luZG93VHlwZSB3aW5kb3dIYW5k
bGUsIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0
PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xOYXRpdmVXaW5kb3dUeXBlIHdp
bmRvd0hhbmRsZSwgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCkKIHsKICNpZiBQTEFURk9STShH
VEspICYmIFBMQVRGT1JNKFdBWUxBTkQpICYmICFkZWZpbmVkKEdUS19BUElfVkVSU0lPTl8yKSAm
JiBkZWZpbmVkKEdES19XSU5ET1dJTkdfV0FZTEFORCkgJiYgVVNFKEVHTCkKICAgICBHZGtEaXNw
bGF5KiBkaXNwbGF5ID0gZ2RrX2Rpc3BsYXlfbWFuYWdlcl9nZXRfZGVmYXVsdF9kaXNwbGF5KGdk
a19kaXNwbGF5X21hbmFnZXJfZ2V0KCkpOwogCiAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BM
QVkoZGlzcGxheSkpIHsKLSAgICAgICAgaWYgKE93blB0cjxHTENvbnRleHQ+IGVnbENvbnRleHQg
PSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBzaGFyaW5nQ29udGV4
dCkpCi0gICAgICAgICAgICByZXR1cm4gZWdsQ29udGV4dC5yZWxlYXNlKCk7CisgICAgICAgIGlm
IChhdXRvIGVnbENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFu
ZGxlLCBzaGFyaW5nQ29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjptb3ZlKGVnbENv
bnRleHQpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIAogI2lmIFVT
RShHTFgpCi0gICAgaWYgKE93blB0cjxHTENvbnRleHQ+IGdseENvbnRleHQgPSBHTENvbnRleHRH
TFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBzaGFyaW5nQ29udGV4dCkpCi0gICAgICAg
IHJldHVybiBnbHhDb250ZXh0LnJlbGVhc2UoKTsKKyAgICBpZiAoYXV0byBnbHhDb250ZXh0ID0g
R0xDb250ZXh0R0xYOjpjcmVhdGVDb250ZXh0KHdpbmRvd0hhbmRsZSwgc2hhcmluZ0NvbnRleHQp
KQorICAgICAgICByZXR1cm4gV1RGOjptb3ZlKGdseENvbnRleHQpOwogI2VuZGlmCiAjaWYgVVNF
KEVHTCkKLSAgICBpZiAoT3duUHRyPEdMQ29udGV4dD4gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlQ29udGV4dCh3aW5kb3dIYW5kbGUsIHNoYXJpbmdDb250ZXh0KSkKLSAgICAgICAg
cmV0dXJuIGVnbENvbnRleHQucmVsZWFzZSgpOworICAgIGlmIChhdXRvIGVnbENvbnRleHQgPSBH
TENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBzaGFyaW5nQ29udGV4dCkp
CisgICAgICAgIHJldHVybiBXVEY6Om1vdmUoZWdsQ29udGV4dCk7CiAjZW5kaWYKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KQEAgLTE3Miw3ICsxNzIsNyBAQCBHTENvbnRleHQ6OkdMQ29udGV4dCgp
CiAjZW5kaWYKIH0KIAotUGFzc093blB0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlT2Zm
c2NyZWVuQ29udGV4dChHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KQorc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KEdMQ29udGV4dCog
c2hhcmluZ0NvbnRleHQpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRGb3JXaW5kb3coMCwg
c2hhcmluZ0NvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
TENvbnRleHQuaAppbmRleCAwM2I1N2I1ZTgyNDQ0ODhhNWY5ZTYyMmY3MDY0NTk4ZDYyOGY1ZjIz
Li4wNDY1M2I2ZGM3YjVmN2IxZWZkOWQ0NDE2NGVjOTAxMmQyZWIwYjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjMsNyArMjMsNiBAQAog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
I2lmIFVTRShFR0wpICYmICFQTEFURk9STShHVEspCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIK
QEAgLTQ1LDggKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR0xDb250ZXh0IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHQpOwogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEdMQ29udGV4dD4gY3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2ZVdp
bmRvd1R5cGUgd2luZG93SGFuZGxlLCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KTsKLSAgICBz
dGF0aWMgUGFzc093blB0cjxHTENvbnRleHQ+IGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoR0xDb250
ZXh0KiBzaGFyaW5nID0gMCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+
IGNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xOYXRpdmVXaW5kb3dUeXBlIHdpbmRvd0hhbmRsZSwg
R0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxH
TENvbnRleHQ+IGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoR0xDb250ZXh0KiBzaGFyaW5nID0gMCk7
CiAgICAgc3RhdGljIEdMQ29udGV4dCogZ2V0Q3VycmVudCgpOwogICAgIHN0YXRpYyBHTENvbnRl
eHQqIHNoYXJpbmdDb250ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDI1
YTA3YzgxZjU4NTIxZTllYzMxNTljOWI3YWU5YWUxMjNmYWFjN2EuLjU0OGIwYjBjYjI2M2IyMDhk
ZWIzNWQ5ZWI0ZDE5ZjUxMmExNDQ2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAt
MTMxLDEzICsxMzEsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnBhaW50VG9U
ZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIKICNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCiAgICAgaWYgKG1fY29udGV4dC0+bV9hdHRycy5hbnRpYWxpYXMgJiYgbV9j
b250ZXh0LT5tX3N0YXRlLmJvdW5kRkJPID09IG1fY29udGV4dC0+bV9tdWx0aXNhbXBsZUZCTykg
ewogICAgICAgICBHTENvbnRleHQqIHByZXZpb3VzQWN0aXZlQ29udGV4dCA9IEdMQ29udGV4dDo6
Z2V0Q3VycmVudCgpOwotICAgICAgICBpZiAocHJldmlvdXNBY3RpdmVDb250ZXh0ICE9IG1fZ2xD
b250ZXh0KQorICAgICAgICBpZiAocHJldmlvdXNBY3RpdmVDb250ZXh0ICE9IG1fZ2xDb250ZXh0
LmdldCgpKQogICAgICAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIAog
ICAgICAgICBtX2NvbnRleHQtPnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKICAg
ICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIs
IG1fY29udGV4dC0+bV9zdGF0ZS5ib3VuZEZCTyk7CiAKLSAgICAgICAgaWYgKHByZXZpb3VzQWN0
aXZlQ29udGV4dCAmJiBwcmV2aW91c0FjdGl2ZUNvbnRleHQgIT0gbV9nbENvbnRleHQpCisgICAg
ICAgIGlmIChwcmV2aW91c0FjdGl2ZUNvbnRleHQgJiYgcHJldmlvdXNBY3RpdmVDb250ZXh0ICE9
IG1fZ2xDb250ZXh0LmdldCgpKQogICAgICAgICAgICAgcHJldmlvdXNBY3RpdmVDb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXgg
MTU2NmRhMDhiN2RiZDYxNjE4MWYyZjA0MGUyYWIzYzg2YzNkNTk4Ny4uMzg3ZWRhZGY0NjdmZDkw
OGEyNjY2MDVlMDg0MTNhMGI4YjE3OWIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEKiBt
X2NvbnRleHQ7Ci0gICAgT3duUHRyPEdMQ29udGV4dD4gbV9nbENvbnRleHQ7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEdMQ29udGV4dD4gbV9nbENvbnRleHQ7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OlJlbmRlclN0eWxlIG1fcmVuZGVyU3R5bGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDEwMjQxYzA4
NGNhMjI2MjYxYzNlNTIwZGE4NjllNTVhOWMyMGNiNGMuLmQyMzVlYmQzODM0ODk3M2Y1ODViN2Y1
NTY0ODY2ZDFmZjRlOThjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGlj
IGJvb2wgZ2V0RUdMQ29uZmlnKEVHTENvbmZpZyogY29uZmlnLCBHTENvbnRleHRFR0w6OkVHTFN1
cmZhY2VUeXBlIHN1cmZhY2UKICAgICByZXR1cm4gZWdsQ2hvb3NlQ29uZmlnKHNoYXJlZEVHTERp
c3BsYXkoKSwgYXR0cmlidXRlTGlzdCwgY29uZmlnLCAxLCAmbnVtYmVyQ29uZmlnc1JldHVybmVk
KSAmJiBudW1iZXJDb25maWdzUmV0dXJuZWQ7CiB9CiAKLVBhc3NPd25QdHI8R0xDb250ZXh0RUdM
PiBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoRUdMTmF0aXZlV2luZG93VHlwZSB3
aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250
ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoRUdMTmF0aXZlV2luZG93
VHlwZSB3aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpCiB7CiAgICAgRUdMQ29udGV4
dCBlZ2xTaGFyaW5nQ29udGV4dCA9IHNoYXJpbmdDb250ZXh0ID8gc3RhdGljX2Nhc3Q8R0xDb250
ZXh0RUdMKj4oc2hhcmluZ0NvbnRleHQpLT5tX2NvbnRleHQgOiAwOwogCkBAIC0xNDEsMTAgKzE0
MSwxMCBAQCBQYXNzT3duUHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5k
b3dDb250ZXh0KEVHTE5hdGl2ZVdpbmRvd1R5cGUgdwogICAgIGlmIChzdXJmYWNlID09IEVHTF9O
T19TVVJGQUNFKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgR0xDb250ZXh0RUdMKGNvbnRleHQsIHN1cmZhY2UsIFdpbmRvd1N1cmZhY2UpKTsKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHTENvbnRleHRFR0w+KGNvbnRleHQsIHN1cmZhY2Us
IFdpbmRvd1N1cmZhY2UpOwogfQogCi1QYXNzT3duUHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0
RUdMOjpjcmVhdGVQYnVmZmVyQ29udGV4dChFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQorc3Rk
Ojp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVQYnVmZmVyQ29u
dGV4dChFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQogewogICAgIEVHTERpc3BsYXkgZGlzcGxh
eSA9IHNoYXJlZEVHTERpc3BsYXkoKTsKICAgICBpZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExB
WSkKQEAgLTE2NSwxMCArMTY1LDEwIEBAIFBhc3NPd25QdHI8R0xDb250ZXh0RUdMPiBHTENvbnRl
eHRFR0w6OmNyZWF0ZVBidWZmZXJDb250ZXh0KEVHTENvbnRleHQgc2hhcmluZ0NvCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR0xDb250
ZXh0RUdMKGNvbnRleHQsIHN1cmZhY2UsIFBidWZmZXJTdXJmYWNlKSk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8R0xDb250ZXh0RUdMPihjb250ZXh0LCBzdXJmYWNlLCBQYnVmZmVyU3Vy
ZmFjZSk7CiB9CiAKLVBhc3NPd25QdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0
ZVBpeG1hcENvbnRleHQoRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkKK3N0ZDo6dW5pcXVlX3B0
cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlUGl4bWFwQ29udGV4dChFR0xDb250
ZXh0IHNoYXJpbmdDb250ZXh0KQogewogI2lmIFBMQVRGT1JNKFgxMSkKICAgICBFR0xEaXNwbGF5
IGRpc3BsYXkgPSBzaGFyZWRFR0xEaXNwbGF5KCk7CkBAIC0xOTYsMTMgKzE5NiwxMyBAQCBQYXNz
T3duUHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVQaXhtYXBDb250ZXh0KEVH
TENvbnRleHQgc2hhcmluZ0NvbgogICAgIGlmIChzdXJmYWNlID09IEVHTF9OT19TVVJGQUNFKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR0xDb250
ZXh0RUdMKGNvbnRleHQsIHN1cmZhY2UsIFBpeG1hcFN1cmZhY2UpKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxHTENvbnRleHRFR0w+KGNvbnRleHQsIHN1cmZhY2UsIFBpeG1hcFN1cmZh
Y2UpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQogCi1QYXNzT3duUHRy
PEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVDb250ZXh0KEVHTE5hdGl2ZVdpbmRv
d1R5cGUgd2luZG93LCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KQorc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVDb250ZXh0KEVHTE5hdGl2ZVdpbmRv
d1R5cGUgd2luZG93LCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KQogewogICAgIGlmICghc2hh
cmVkRUdMRGlzcGxheSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTIxOSwxNCArMjE5
LDE0IEBAIFBhc3NPd25QdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRl
eHQoRUdMTmF0aXZlV2luZG93VHlwZSB3aW5kb3csCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgRUdMQ29udGV4dCBlZ2xTaGFyaW5nQ29udGV4dCA9IHNoYXJpbmdDb250ZXh0ID8gc3Rh
dGljX2Nhc3Q8R0xDb250ZXh0RUdMKj4oc2hhcmluZ0NvbnRleHQpLT5tX2NvbnRleHQgOiAwOwot
ICAgIE93blB0cjxHTENvbnRleHRFR0w+IGNvbnRleHQgPSB3aW5kb3cgPyBjcmVhdGVXaW5kb3dD
b250ZXh0KHdpbmRvdywgc2hhcmluZ0NvbnRleHQpIDogbnVsbHB0cjsKKyAgICBhdXRvIGNvbnRl
eHQgPSB3aW5kb3cgPyBjcmVhdGVXaW5kb3dDb250ZXh0KHdpbmRvdywgc2hhcmluZ0NvbnRleHQp
IDogbnVsbHB0cjsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIGNvbnRleHQgPSBjcmVhdGVQ
aXhtYXBDb250ZXh0KGVnbFNoYXJpbmdDb250ZXh0KTsKIAogICAgIGlmICghY29udGV4dCkKICAg
ICAgICAgY29udGV4dCA9IGNyZWF0ZVBidWZmZXJDb250ZXh0KGVnbFNoYXJpbmdDb250ZXh0KTsK
ICAgICAKLSAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIFdURjo6bW92
ZShjb250ZXh0KTsKIH0KIAogR0xDb250ZXh0RUdMOjpHTENvbnRleHRFR0woRUdMQ29udGV4dCBj
b250ZXh0LCBFR0xTdXJmYWNlIHN1cmZhY2UsIEVHTFN1cmZhY2VUeXBlIHR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5k
ZXggZDFiMjhlYTMxNTk1ZmI4YTllYTM0YzBhOWU0YTAzN2ZiMzlmMzQzYy4uNGQ4ZDhlNDVmNWQ5
NWIxY2FlOGVkNDYxZTEzMTI0ODA2NWQwNWNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsOSArMzIsMTAgQEAg
Y2xhc3MgR0xDb250ZXh0RUdMIDogcHVibGljIEdMQ29udGV4dCB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoR0xDb250ZXh0RUdMKTsKIHB1YmxpYzoKICAgICBlbnVtIEVHTFN1cmZhY2VUeXBl
IHsgUGJ1ZmZlclN1cmZhY2UsIFdpbmRvd1N1cmZhY2UsIFBpeG1hcFN1cmZhY2UgfTsKLSAgICBz
dGF0aWMgUGFzc093blB0cjxHTENvbnRleHRFR0w+IGNyZWF0ZUNvbnRleHQoRUdMTmF0aXZlV2lu
ZG93VHlwZSwgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCA9IDApOwotICAgIHN0YXRpYyBQYXNz
T3duUHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2luZG93Q29udGV4dChFR0xOYXRpdmVXaW5kb3dU
eXBlLCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlQ29udGV4dChFR0xOYXRpdmVXaW5kb3dUeXBlLCBHTENv
bnRleHQqIHNoYXJpbmdDb250ZXh0ID0gMCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxH
TENvbnRleHRFR0w+IGNyZWF0ZVdpbmRvd0NvbnRleHQoRUdMTmF0aXZlV2luZG93VHlwZSwgR0xD
b250ZXh0KiBzaGFyaW5nQ29udGV4dCk7CiAKKyAgICBHTENvbnRleHRFR0woRUdMQ29udGV4dCwg
RUdMU3VyZmFjZSwgRUdMU3VyZmFjZVR5cGUpOwogICAgIHZpcnR1YWwgfkdMQ29udGV4dEVHTCgp
OwogICAgIHZpcnR1YWwgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgc3dhcEJ1ZmZlcnMoKTsKQEAgLTUwLDE0ICs1MSwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc093blB0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZm
ZXJDb250ZXh0KEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQpOwotICAgIHN0YXRpYyBQYXNzT3du
UHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlUGl4bWFwQ29udGV4dChFR0xDb250ZXh0IHNoYXJpbmdD
b250ZXh0KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRl
UGJ1ZmZlckNvbnRleHQoRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCk7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBpeG1hcENvbnRleHQoRUdMQ29udGV4
dCBzaGFyaW5nQ29udGV4dCk7CiAKICAgICBzdGF0aWMgdm9pZCBhZGRBY3RpdmVDb250ZXh0KEdM
Q29udGV4dEVHTCopOwogICAgIHN0YXRpYyB2b2lkIGNsZWFudXBTaGFyZWRFR0xEaXNwbGF5KHZv
aWQpOwogCi0gICAgR0xDb250ZXh0RUdMKEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIEVHTFN1cmZh
Y2VUeXBlKTsKLQogICAgIEVHTENvbnRleHQgbV9jb250ZXh0OwogICAgIEVHTFN1cmZhY2UgbV9z
dXJmYWNlOwogICAgIEVHTFN1cmZhY2VUeXBlIG1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKaW5kZXggMTc2Zjc3
MjJkY2QyNWM5ZDJlOWI1YTg1YzZiYzExYmY3NzRiOTA3Yy4uNzg5MGQ4ZGE4MzI2OWMzMDU1Y2Fj
YTQzNjZkZWFjYjMyYmQxYTM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPEdMQ29udGV4dEdMWD4gR0xDb250ZXh0R0xY
OjpjcmVhdGVXaW5kb3dDb250ZXh0KFhJRCB3aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRl
eHQpCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZVdp
bmRvd0NvbnRleHQoWElEIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4dCkKIHsKICAg
ICBEaXNwbGF5KiBkaXNwbGF5ID0gc2hhcmVkWDExRGlzcGxheSgpOwogICAgIFhXaW5kb3dBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXM7CkBAIC01NCwxMiArNTQsMTIgQEAgUGFzc093blB0cjxHTENvbnRl
eHRHTFg+IEdMQ29udGV4dEdMWDo6Y3JlYXRlV2luZG93Q29udGV4dChYSUQgd2luZG93LCBHTENv
bnRleHQKIAogICAgIC8vIEdMWFBidWZmZXIgYW5kIFhJRCBhcmUgYm90aCB0aGUgc2FtZSB0eXBl
cyB1bmRlcm5lYXRoLCBzbyB3ZSBoYXZlIHRvIHNoYXJlCiAgICAgLy8gYSBjb25zdHJ1Y3RvciBo
ZXJlIHdpdGggdGhlIHdpbmRvdyBwYXRoLgotICAgIEdMQ29udGV4dEdMWCogY29udGV4dFdyYXBw
ZXIgPSBuZXcgR0xDb250ZXh0R0xYKGNvbnRleHQpOworICAgIGF1dG8gY29udGV4dFdyYXBwZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPEdMQ29udGV4dEdMWD4oY29udGV4dCk7CiAgICAgY29udGV4dFdy
YXBwZXItPm1fd2luZG93ID0gd2luZG93OwotICAgIHJldHVybiBhZG9wdFB0cihjb250ZXh0V3Jh
cHBlcik7CisgICAgcmV0dXJuIFdURjo6bW92ZShjb250ZXh0V3JhcHBlcik7CiB9CiAKLVBhc3NP
d25QdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZVBidWZmZXJDb250ZXh0KEdM
WENvbnRleHQgc2hhcmluZ0NvbnRleHQpCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0R0xYPiBH
TENvbnRleHRHTFg6OmNyZWF0ZVBidWZmZXJDb250ZXh0KEdMWENvbnRleHQgc2hhcmluZ0NvbnRl
eHQpCiB7CiAgICAgaW50IGZiQ29uZmlnQXR0cmlidXRlc1tdID0gewogICAgICAgICBHTFhfRFJB
V0FCTEVfVFlQRSwgR0xYX1BCVUZGRVJfQklULApAQCAtOTcsMTIgKzk3LDEyIEBAIFBhc3NPd25Q
dHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZVBidWZmZXJDb250ZXh0KEdMWENv
bnRleHQgc2hhcmluZ0NvCiAKICAgICAvLyBHTFhQYnVmZmVyIGFuZCBYSUQgYXJlIGJvdGggdGhl
IHNhbWUgdHlwZXMgdW5kZXJuZWF0aCwgc28gd2UgaGF2ZSB0byBzaGFyZQogICAgIC8vIGEgY29u
c3RydWN0b3IgaGVyZSB3aXRoIHRoZSB3aW5kb3cgcGF0aC4KLSAgICBHTENvbnRleHRHTFgqIGNv
bnRleHRXcmFwcGVyID0gbmV3IEdMQ29udGV4dEdMWChjb250ZXh0KTsKKyAgICBhdXRvIGNvbnRl
eHRXcmFwcGVyID0gc3RkOjptYWtlX3VuaXF1ZTxHTENvbnRleHRHTFg+KGNvbnRleHQpOwogICAg
IGNvbnRleHRXcmFwcGVyLT5tX3BidWZmZXIgPSBwYnVmZmVyOwotICAgIHJldHVybiBhZG9wdFB0
cihjb250ZXh0V3JhcHBlcik7CisgICAgcmV0dXJuIFdURjo6bW92ZShjb250ZXh0V3JhcHBlcik7
CiB9CiAKLVBhc3NPd25QdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZVBpeG1h
cENvbnRleHQoR0xYQ29udGV4dCBzaGFyaW5nQ29udGV4dCkKK3N0ZDo6dW5pcXVlX3B0cjxHTENv
bnRleHRHTFg+IEdMQ29udGV4dEdMWDo6Y3JlYXRlUGl4bWFwQ29udGV4dChHTFhDb250ZXh0IHNo
YXJpbmdDb250ZXh0KQogewogICAgIHN0YXRpYyBpbnQgdmlzdWFsQXR0cmlidXRlc1tdID0gewog
ICAgICAgICBHTFhfUkdCQSwKQEAgLTEzOCwxMCArMTM4LDEwIEBAIFBhc3NPd25QdHI8R0xDb250
ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZVBpeG1hcENvbnRleHQoR0xYQ29udGV4dCBzaGFy
aW5nQ29uCiAgICAgfQogCiAgICAgWEZyZWUodmlzdWFsSW5mbyk7Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBHTENvbnRleHRHTFgoY29udGV4dCwgcGl4bWFwLCBnbHhQaXhtYXApKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHTENvbnRleHRHTFg+KGNvbnRleHQsIHBpeG1hcCwgZ2x4
UGl4bWFwKTsKIH0KIAotUGFzc093blB0cjxHTENvbnRleHRHTFg+IEdMQ29udGV4dEdMWDo6Y3Jl
YXRlQ29udGV4dChYSUQgd2luZG93LCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KQorc3RkOjp1
bmlxdWVfcHRyPEdMQ29udGV4dEdMWD4gR0xDb250ZXh0R0xYOjpjcmVhdGVDb250ZXh0KFhJRCB3
aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpCiB7CiAgICAgaWYgKCFzaGFyZWRYMTFE
aXNwbGF5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFBh
c3NPd25QdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZUNvbnRleHQoWElEIHdp
bmRvdywgR0xDb250ZXh0KiBzaGFyCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgR0xY
Q29udGV4dCBnbHhTaGFyaW5nQ29udGV4dCA9IHNoYXJpbmdDb250ZXh0ID8gc3RhdGljX2Nhc3Q8
R0xDb250ZXh0R0xYKj4oc2hhcmluZ0NvbnRleHQpLT5tX2NvbnRleHQgOiAwOwotICAgIE93blB0
cjxHTENvbnRleHRHTFg+IGNvbnRleHQgPSB3aW5kb3cgPyBjcmVhdGVXaW5kb3dDb250ZXh0KHdp
bmRvdywgc2hhcmluZ0NvbnRleHQpIDogbnVsbHB0cjsKKyAgICBhdXRvIGNvbnRleHQgPSB3aW5k
b3cgPyBjcmVhdGVXaW5kb3dDb250ZXh0KHdpbmRvdywgc2hhcmluZ0NvbnRleHQpIDogbnVsbHB0
cjsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIGNvbnRleHQgPSBjcmVhdGVQYnVmZmVyQ29u
dGV4dChnbHhTaGFyaW5nQ29udGV4dCk7CiAgICAgaWYgKCFjb250ZXh0KQpAQCAtMTY0LDcgKzE2
NCw3IEBAIFBhc3NPd25QdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZUNvbnRl
eHQoWElEIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gV1RGOjptb3ZlKGNvbnRleHQpOwogfQogCiBHTENvbnRleHRHTFg6OkdMQ29udGV4dEdM
WChHTFhDb250ZXh0IGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmgKaW5kZXggZWRlZmMwNGMyNjU1NmFhMjliZjY2ZGM0
NWIyNDQwMDE3ODQ4NjQ5Yy4uM2VmNGNlZGYyN2UyMDQxYzg0NjVmMjZkMGE0MjA1MDM1NmY0YjZm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENv
bnRleHRHTFguaApAQCAtMzcsOSArMzcsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
R0xDb250ZXh0R0xYIDogcHVibGljIEdMQ29udGV4dCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoR0xDb250ZXh0R0xYKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxHTENvbnRl
eHRHTFg+IGNyZWF0ZUNvbnRleHQoWElEIHdpbmRvdywgR0xDb250ZXh0KiBzaGFyaW5nQ29udGV4
dCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250ZXh0R0xYPiBjcmVhdGVXaW5kb3dDb250
ZXh0KFhJRCB3aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0R0xYPiBjcmVhdGVDb250ZXh0KFhJRCB3aW5kb3csIEdM
Q29udGV4dCogc2hhcmluZ0NvbnRleHQpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xD
b250ZXh0R0xYPiBjcmVhdGVXaW5kb3dDb250ZXh0KFhJRCB3aW5kb3csIEdMQ29udGV4dCogc2hh
cmluZ0NvbnRleHQpOwogCisgICAgR0xDb250ZXh0R0xYKEdMWENvbnRleHQpOworICAgIEdMQ29u
dGV4dEdMWChHTFhDb250ZXh0LCBQaXhtYXAsIEdMWFBpeG1hcCk7CiAgICAgdmlydHVhbCB+R0xD
b250ZXh0R0xYKCk7CiAgICAgdmlydHVhbCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAg
IHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpOwpAQCAtNTMsMTEgKzU1LDggQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250ZXh0R0xYPiBj
cmVhdGVQYnVmZmVyQ29udGV4dChHTFhDb250ZXh0IHNoYXJpbmdDb250ZXh0KTsKLSAgICBzdGF0
aWMgUGFzc093blB0cjxHTENvbnRleHRHTFg+IGNyZWF0ZVBpeG1hcENvbnRleHQoR0xYQ29udGV4
dCBzaGFyaW5nQ29udGV4dCk7Ci0KLSAgICBHTENvbnRleHRHTFgoR0xYQ29udGV4dCk7Ci0gICAg
R0xDb250ZXh0R0xYKEdMWENvbnRleHQsIFBpeG1hcCwgR0xYUGl4bWFwKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEdMWD4gY3JlYXRlUGJ1ZmZlckNvbnRleHQoR0xYQ29u
dGV4dCBzaGFyaW5nQ29udGV4dCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRl
eHRHTFg+IGNyZWF0ZVBpeG1hcENvbnRleHQoR0xYQ29udGV4dCBzaGFyaW5nQ29udGV4dCk7CiAK
ICAgICBHTFhDb250ZXh0IG1fY29udGV4dDsKICAgICBYSUQgbV93aW5kb3c7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xU
cmFuc3BvcnRTdXJmYWNlLmNwcAppbmRleCAyNWQ2Y2U5ZjFlNWViYWE5NGIwZGI2MjY2YWUzZjUw
NzhmMTI4NzQ1Li4yM2Q1YmY4MDQ1MDk1ZTYwODk4ODY2ZjQ2ZDk2MTYyNjY2NzBhMDAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5z
cG9ydFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHAKQEAgLTQzLDE3ICs0MywxNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBzdGF0aWMgY29uc3QgR0xmbG9hdCB2ZXJ0aWNlc1tdID0geyAwLCAwLCAx
LCAwLCAxLCAxLCAwLCAxIH07CiBzdGF0aWMgYm9vbCB2ZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRl
ZCA9IGZhbHNlOwogCi1QYXNzT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gR0xUcmFuc3BvcnRT
dXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZh
Y2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8R0xUcmFuc3BvcnRTdXJm
YWNlPiBHTFRyYW5zcG9ydFN1cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIHsKLSAgICBPd25QdHI8
R0xUcmFuc3BvcnRTdXJmYWNlPiBzdXJmYWNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5z
cG9ydFN1cmZhY2U+IHN1cmZhY2U7CiAjaWYgVVNFKEdMWCkKLSAgICBzdXJmYWNlID0gYWRvcHRQ
dHIobmV3IEdMWFRyYW5zcG9ydFN1cmZhY2Uoc2l6ZSwgYXR0cmlidXRlcykpOworICAgIHN1cmZh
Y2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWFRyYW5zcG9ydFN1cmZhY2U+KHNpemUsIGF0dHJpYnV0
ZXMpOwogI2VsaWYgVVNFKEVHTCkKICAgICBzdXJmYWNlID0gRUdMVHJhbnNwb3J0U3VyZmFjZTo6
Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZShzaXplLCBhdHRyaWJ1dGVzKTsKICNlbmRpZgogCiAgICAg
aWYgKHN1cmZhY2UgJiYgc3VyZmFjZS0+aGFuZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2FibGUoKSkK
LSAgICAgICAgcmV0dXJuIHN1cmZhY2UucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gV1RGOjpt
b3ZlKHN1cmZhY2UpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC0yMDUsMTEgKzIwNSwx
MSBAQCB2b2lkIEdMVHJhbnNwb3J0U3VyZmFjZTo6aW5pdGlhbGl6ZVNoYWRlclByb2dyYW0oKQog
ICAgIHVwZGF0ZVRyYW5zZm9ybWF0aW9uTWF0cml4KCk7CiB9CiAKLVBhc3NPd25QdHI8R0xUcmFu
c3BvcnRTdXJmYWNlQ2xpZW50PiBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ6OmNyZWF0ZVRyYW5z
cG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUgaGFuZGxlLCBjb25z
dCBJbnRTaXplJiBzaXplLCBib29sIGhhc0FscGhhKQorc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNw
b3J0U3VyZmFjZUNsaWVudD4gR0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50OjpjcmVhdGVUcmFuc3Bv
cnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRmb3JtQnVmZmVySGFuZGxlIGhhbmRsZSwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNBbHBoYSkKIHsKLSAgICBPd25QdHI8R0xUcmFuc3BvcnRT
dXJmYWNlQ2xpZW50PiBjbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNwb3J0U3Vy
ZmFjZUNsaWVudD4gY2xpZW50OwogI2lmIFVTRShHTFgpCi0gICAgY2xpZW50ID0gYWRvcHRQdHIo
bmV3IEdMWFRyYW5zcG9ydFN1cmZhY2VDbGllbnQoaGFuZGxlLCBoYXNBbHBoYSkpOworICAgIGNs
aWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYVHJhbnNwb3J0U3VyZmFjZUNsaWVudD4oaGFuZGxl
LCBoYXNBbHBoYSk7CiAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwogI2Vsc2UKICAgICBjbGllbnQg
PSBFR0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGhhbmRs
ZSwgc2l6ZSwgaGFzQWxwaGEpOwpAQCAtMjIwLDcgKzIyMCw3IEBAIFBhc3NPd25QdHI8R0xUcmFu
c3BvcnRTdXJmYWNlQ2xpZW50PiBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ6OmNyZWF0ZVRyYW5z
cG9ydFN1CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBjbGll
bnQucmVsZWFzZSgpOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xpZW50KTsKIH0KIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5z
cG9ydFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L0dMVHJhbnNwb3J0U3VyZmFjZS5oCmluZGV4IGI1NzljODU5YWY0MzBkY2QyMmIzYjZlMjA2ZjQy
YjNjZTFjZjIzMTYuLmRjY2M2NWI0N2M3ODY3NTczYzQ0ZjQwZDhmNTk4NjUyODE5MGM4NTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJh
bnNwb3J0U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIEdM
VHJhbnNwb3J0U3VyZmFjZV9oCiAKICNpbmNsdWRlICJHTFBsYXRmb3JtU3VyZmFjZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcs
NyArMzYsNyBAQCBjbGFzcyBHTFRyYW5zcG9ydFN1cmZhY2UgOiBwdWJsaWMgR0xQbGF0Zm9ybVN1
cmZhY2UgewogCiBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlcyBhIEdMIHN1cmZhY2Ugd2hvc2UgcmVz
dWx0cyBjYW4gYmUgdHJhbnNwb3J0ZWQgdG8gdGhlIFVJIHByb2Nlc3MgZm9yIGRpc3BsYXkuCi0g
ICAgc3RhdGljIFBhc3NPd25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBjcmVhdGVUcmFuc3BvcnRT
dXJmYWNlKGNvbnN0IEludFNpemUmLCBTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJm
YWNlOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNwb3J0U3Vy
ZmFjZT4gY3JlYXRlVHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiwgU3VyZmFjZUF0dHJp
YnV0ZXMgPSBHTFBsYXRmb3JtU3VyZmFjZTo6RGVmYXVsdCk7CiAgICAgdmlydHVhbCB+R0xUcmFu
c3BvcnRTdXJmYWNlKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0IHVp
bnQzMl90KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29uc3QgSW50
UmVjdCYpIG92ZXJyaWRlOwpAQCAtNjAsNyArNTksNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBHTFRy
YW5zcG9ydFN1cmZhY2VDbGllbnQgewogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNv
bnN0IFBsYXRmb3JtQnVmZmVySGFuZGxlLCBjb25zdCBJbnRTaXplJiwgYm9vbCk7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IGNyZWF0ZVRyYW5z
cG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUsIGNvbnN0IEludFNp
emUmLCBib29sKTsKICAgICB2aXJ0dWFsIH5HTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRleHR1cmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJv
eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR3JhcGhpY3NTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaAppbmRleCBiNDcxYzkyM2NmMjFhMWVhYjY4ZWU2NDY0
ZThkZDI4YmM3ZmEwMDVlLi41YmI4MTJjMTU1ZGFhYTZhNzExNjcwMmIyMzg4NTlmZGExMmIwYjg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
cmFwaGljc1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlVG9rZW4uaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2VU
b2tlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhp
Y3NTdXJmYWNlVG9rZW4uaAppbmRleCAwYjhhNjUxZTJlNDAwZDIwNmYzODZhYzdlOWViZjU1YzBm
MzYwYmUzLi5hZmY5YzQ5NGM2MGE3M2JmMGU5ZjAzYjExN2ZlYjkxMGVjZTkxYzkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1
cmZhY2VUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dyYXBoaWNzU3VyZmFjZVRva2VuLmgKQEAgLTIyLDcgKzIyLDYgQEAKIAogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VmbC9HcmFwaGljc1N1cmZhY2VDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFjZUNvbW1vbi5jcHAKaW5k
ZXggZWM0ZjEyMmUwNWU0ODdlODc2NDMyOTQ3ZTBlZmFiZmY0MzExMTQzYy4uZTA2YTEyOGE3MTM1
ZjU3NWRlMDI1NDRhZDU0NzAzM2M1NWE1Mzc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFjZUNvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBo
aWNzU3VyZmFjZUNvbW1vbi5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCBwcml2YXRlOgogICAgIEZs
b2F0UmVjdCBtX3JlY3Q7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgUGxhdGZvcm1CdWZmZXJI
YW5kbGUgbV9zaGFyZWRIYW5kbGU7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVu
dD4gbV9jbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVu
dD4gbV9jbGllbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1Db250ZXh0PiBtX3No
YXJlZENvbnRleHQ7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gbV9zaGFyZWRTdXJm
YWNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2U+IG1fc2hhcmVkU3Vy
ZmFjZTsKIH07CiAKIEdyYXBoaWNzU3VyZmFjZVRva2VuIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZv
cm1FeHBvcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IDZjM2M1ZTMyM2Q3ZTYxNTVl
ZTZiNGIyNjNjYTU4YzU0OGY5ZTJmMWUuLmVhZTMwY2RmNDVjODQ3MGZiODAwMDhhZjY2NWNjMjRj
ZGY4OGM3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTM4LDI4ICszOCwyOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBF
R0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUm
IHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8R0xU
cmFuc3BvcnRTdXJmYWNlPiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJm
YWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiB7
Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gc3VyZmFjZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBzdXJmYWNlOwogI2lmIFBMQVRGT1JNKFgxMSkKLSAg
ICBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2Uoc2l6ZSwg
YXR0cmlidXRlcykpOworICAgIHN1cmZhY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U+KHNpemUsIGF0dHJpYnV0ZXMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oc2l6ZSk7CiAgICAgVU5VU0VEX1BBUkFNKGF0dHJpYnV0ZXMpOwogI2VuZGlmCiAKICAgICBp
ZiAoc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIHN1cmZhY2UucmVsZWFzZSgpOworICAgICAgICBy
ZXR1cm4gV1RGOjptb3ZlKHN1cmZhY2UpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVBh
c3NPd25QdHI8R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpj
cmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRmb3JtQnVmZmVySGFuZGxlIGhh
bmRsZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNBbHBoYSkKK3N0ZDo6dW5pcXVlX3B0
cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IEVHTFRyYW5zcG9ydFN1cmZhY2U6OmNyZWF0ZVRy
YW5zcG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUgaGFuZGxlLCBj
b25zdCBJbnRTaXplJiBzaXplLCBib29sIGhhc0FscGhhKQogewogICAgIEVHTEhlbHBlcjo6cmVz
b2x2ZUVHTEJpbmRpbmdzKCk7Ci0gICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudD4g
Y2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IGNs
aWVudDsKICNpZiBQTEFURk9STShYMTEpCi0gICAgY2xpZW50ID0gYWRvcHRQdHIobmV3IEVHTFhU
cmFuc3BvcnRTdXJmYWNlQ2xpZW50KGhhbmRsZSwgc2l6ZSwgaGFzQWxwaGEpKTsKKyAgICBjbGll
bnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PihoYW5kbGUs
IHNpemUsIGhhc0FscGhhKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHNpemUpOwpAQCAtNjcsNyArNjcsNyBAQCBQYXNzT3duUHRyPEdMVHJhbnNw
b3J0U3VyZmFjZUNsaWVudD4gRUdMVHJhbnNwb3J0U3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3Vy
ZmFjZQogI2VuZGlmCiAKICAgICBpZiAoY2xpZW50KQotICAgICAgICByZXR1cm4gY2xpZW50LnJl
bGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92ZShjbGllbnQpOwogCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CkBAIC04MCw3ICs4MCw3IEBAIEVHTFRyYW5zcG9ydFN1cmZhY2U6OkVHTFRy
YW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJpYnV0ZXMKICAg
ICBpZiAobV9zaGFyZWREaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEVHTENvbmZpZ1NlbGVjdG9y
KGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxF
R0xDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRlcyk7CiB9CiAKIEdMUGxhdGZvcm1TdXJmYWNlOjpT
dXJmYWNlQXR0cmlidXRlcyBFR0xUcmFuc3BvcnRTdXJmYWNlOjphdHRyaWJ1dGVzKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMU3VyZmFjZS5oCmluZGV4IDVkZWJlN2VkYjZiNWY5MWY1NDJlYjMwMDc3OGQwZWQ5
M2UxZTk0NTYuLjkzNzEzYmE3YmFkZjFlODEwZjc1NjkyZmM0MGI2OGE4OGMzMDY1MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xT
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTFN1cmZhY2UuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkdMVHJhbnNwb3J0
U3VyZmFjZS5oIgogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw4ICszOCw4IEBA
IGNsYXNzIEVHTENvbmZpZ1NlbGVjdG9yOwogCiBjbGFzcyBFR0xUcmFuc3BvcnRTdXJmYWNlIDog
cHVibGljIEdMVHJhbnNwb3J0U3VyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8R0xUcmFuc3BvcnRTdXJmYWNlPiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNp
emUmLCBTdXJmYWNlQXR0cmlidXRlcyk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xUcmFuc3Bv
cnRTdXJmYWNlQ2xpZW50PiBjcmVhdGVUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRm
b3JtQnVmZmVySGFuZGxlLCBjb25zdCBJbnRTaXplJiwgYm9vbCk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2U+IGNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoY29u
c3QgSW50U2l6ZSYsIFN1cmZhY2VBdHRyaWJ1dGVzKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudD4gY3JlYXRlVHJhbnNwb3J0U3VyZmFjZUNsaWVu
dChjb25zdCBQbGF0Zm9ybUJ1ZmZlckhhbmRsZSwgY29uc3QgSW50U2l6ZSYsIGJvb2wpOwogICAg
IHZpcnR1YWwgfkVHTFRyYW5zcG9ydFN1cmZhY2UoKTsKICAgICB2aXJ0dWFsIFBsYXRmb3JtU3Vy
ZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRl
c3Ryb3koKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgRUdMVHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiwgU3VyZmFjZUF0dHJpYnV0
ZXMpOwotICAgIE93blB0cjxFR0xDb25maWdTZWxlY3Rvcj4gbV9jb25maWdTZWxlY3RvcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RUdMQ29uZmlnU2VsZWN0b3I+IG1fY29uZmlnU2VsZWN0b3I7CiB9
OwogCiBjbGFzcyBFR0xPZmZTY3JlZW5TdXJmYWNlIDogcHVibGljIEdMUGxhdGZvcm1TdXJmYWNl
IHsKQEAgLTYxLDcgKzYwLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgRUdMT2ZmU2Ny
ZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyk7Ci0gICAgT3duUHRyPEVHTENvbmZpZ1NlbGVj
dG9yPiBtX2NvbmZpZ1NlbGVjdG9yOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xDb25maWdTZWxl
Y3Rvcj4gbV9jb25maWdTZWxlY3RvcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuY3Bw
CmluZGV4IDU0NjYxOWNjZTBlMTdmYjYzNDFkNGM2OGIyNDU2MWY3ZTg5MzYxNjMuLjc5MmE5OGI2
NmYzMDZiMmMzMTI3M2M1Mjg0YjZlM2VjNTg0YjMwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFhTdXJmYWNl
LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIEVHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50OjpFR0xY
VHJhbnNwb3J0U3VyZmFjZUNsaWVudChjb25zdCBQbGF0Zm9ybUJ1ZmZlckhhbmRsCiAKICAgICBF
R0xDb25maWdTZWxlY3RvciBjb25maWdTZWxlY3RvcihzaGFyZWRTdXJmYWNlQXR0cmlidXRlcyk7
CiAgICAgRUdMQ29uZmlnIGNvbmZpZyA9IGNvbmZpZ1NlbGVjdG9yLnN1cmZhY2VDbGllbnRDb25m
aWcoWFZpc3VhbElERnJvbVZpc3VhbChhdHRyLnZpc3VhbCkpOwotICAgIG1fZWdsSW1hZ2UgPSBh
ZG9wdFB0cihuZXcgRUdMVGV4dHVyZUZyb21QaXhtYXAobV9oYW5kbGUsIGhhc0FscGhhLCBjb25m
aWcpKTsKKyAgICBtX2VnbEltYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxFR0xUZXh0dXJlRnJvbVBp
eG1hcD4obV9oYW5kbGUsIGhhc0FscGhhLCBjb25maWcpOwogCiAgICAgaWYgKCFtX2VnbEltYWdl
LT5pc1ZhbGlkKCkgfHwgZWdsR2V0RXJyb3IoKSAhPSBFR0xfU1VDQ0VTUykKICAgICAgICAgZGVz
dHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaAppbmRleCA0ZmYxMjhjMzNjZTM4NGIxYzc3ODMz
ZWQ3MDk4NzQ1ZDMzYmZjNDUyLi45NmM4YTY2OWMzYzY3ZjRmNDhhMmNhNjcyMTFiYWE2YTg0ZjRk
ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMWFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgog
ICAgIFBsYXRmb3JtQnVmZmVySGFuZGxlIG1faGFuZGxlOwogICAgIEdMdWludCBtX2Zvcm1hdDsK
ICAgICB1bnNpZ25lZCBtX3RvdGFsQnl0ZXM7Ci0gICAgT3duUHRyPEVHTFRleHR1cmVGcm9tUGl4
bWFwPiBtX2VnbEltYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUZXh0dXJlRnJvbVBpeG1h
cD4gbV9lZ2xJbWFnZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAppbmRleCAxNmY1
NmMxNzA3MGJjZmY1NjM3OTlkNTgxMzJkOGY1ZWNjYjE1NDZkLi4yYjM1MzAyZTdlOGVhYTI1NTAy
NGQxNWM1MjBkNmE5MTg3NzBhN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCkBAIC02Niw3
ICs2Niw3IEBAIEdMWFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZhY2UoY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJpYnV0ZXMKIHsKICAgICBtX3NoYXJlZERpc3BsYXkg
PSBYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKTsKICAgICBhdHRyaWJ1dGVzIHw9IEdMUGxhdGZv
cm1TdXJmYWNlOjpEb3VibGVCdWZmZXJlZDsKLSAgICBtX2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQ
dHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVj
dG9yID0gc3RkOjptYWtlX3VuaXF1ZTxHTFhDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRlcyk7CiAg
ICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiB2aXNJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3Vh
bEluZm8obV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRleHRDb25maWcoKSkpOwogCiAgICAg
aWYgKCF2aXNJbmZvLmdldCgpKSB7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBHTFhPZmZTY3Jl
ZW5TdXJmYWNlOjppbml0aWFsaXplKFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiB7CiAg
ICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCk7CiAKLSAgICBt
X2NvbmZpZ1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEdMWENvbmZpZ1NlbGVjdG9yKGF0dHJpYnV0
ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxHTFhDb25maWdT
ZWxlY3Rvcj4oYXR0cmlidXRlcyk7CiAKICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHZpc3Vh
bEluZm8obV9jb25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5waXht
YXBDb250ZXh0Q29uZmlnKCkpKTsKICAgICBYMTFIZWxwZXI6OmNyZWF0ZVBpeG1hcCgmbV9waXht
YXAsICp2aXN1YWxJbmZvLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCmluZGV4IDBiMTlmZTM5
Njg4YzhjYzcxMDY1ODNhZGJmNWNkYjFlZmEyNDIwMTEuLjdjMGU5Njk4OGJhYmQ3ODc2NWEyMmJh
NzVmODYzZmU0ZjI0YWFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaApAQCAtNDYsNyArNDYsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBvdmVycmlkZTsKIAogcHJpdmF0
ZToKLSAgICBPd25QdHI8R0xYQ29uZmlnU2VsZWN0b3I+IG1fY29uZmlnU2VsZWN0b3I7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEdMWENvbmZpZ1NlbGVjdG9yPiBtX2NvbmZpZ1NlbGVjdG9yOwogfTsK
IAogY2xhc3MgR0xYT2ZmU2NyZWVuU3VyZmFjZSA6IHB1YmxpYyBHTFBsYXRmb3JtU3VyZmFjZSB7
CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXpl
KFN1cmZhY2VBdHRyaWJ1dGVzKTsKICAgICB2b2lkIGZyZWVSZXNvdXJjZXMoKTsKLSAgICBPd25Q
dHI8R0xYQ29uZmlnU2VsZWN0b3I+IG1fY29uZmlnU2VsZWN0b3I7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEdMWENvbmZpZ1NlbGVjdG9yPiBtX2NvbmZpZ1NlbGVjdG9yOwogICAgIFBpeG1hcCBtX3Bp
eG1hcDsKICAgICBHTFhQaXhtYXAgbV9nbHhQaXhtYXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAppbmRl
eCBhNzZlZWYwOTFjNzA5NTI2OTIyYjkxZWMxZjY1OGNkMDhmOWE5NDgxLi4xNmY2OGFiNmEwM2Y0
ZjIzMjU0Mzk2ZThiYjAyODNjM2RmZjM1OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAtMzYsNyAr
MzYsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3Vy
Y2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05OSw3ICs5OCw3IEBAIHByaXZhdGU6CiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VPdmVybGF5Kiwgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+PiBQYWdlT3ZlcmxheUxheWVyTWFwOwogICAgIFBhZ2VP
dmVybGF5TGF5ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwotICAgIE93blB0cjxXZWJD
b3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
R0xDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgZG91YmxlIG1fbGFzdEltbWVkaWF0ZUZsdXNoVGlt
ZTsKICAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkOwogICAgIEdNYWluTG9v
cFNvdXJjZSBtX2xheWVyRmx1c2hUaW1lckNhbGxiYWNrOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>