<?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>123670</bug_id>
          
          <creation_ts>2013-11-02 10:41:38 -0700</creation_ts>
          <short_desc>[WINCE] Replace OwnPtr with GDIObject</short_desc>
          <delta_ts>2013-11-03 09:47:05 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946237</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-02 10:41:38 -0700</bug_when>
    <thetext>[WINCE] Replace OwnPtr with GDIObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946238</commentid>
    <comment_count>1</comment_count>
      <attachid>215812</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-02 10:42:54 -0700</bug_when>
    <thetext>Created attachment 215812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946445</commentid>
    <comment_count>2</comment_count>
      <attachid>215812</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-03 09:47:03 -0800</bug_when>
    <thetext>Comment on attachment 215812
Patch

Clearing flags on attachment: 215812

Committed r158533: &lt;http://trac.webkit.org/changeset/158533&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946446</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-03 09:47:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215812</attachid>
            <date>2013-11-02 10:42:54 -0700</date>
            <delta_ts>2013-11-03 09:47:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123670-20131102184254.patch</filename>
            <type>text/plain</type>
            <size>26549</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk0MTM4NmJjMzAwNzg1
NTMwNGFiODVlYzBlODhlYWZiMThhNzA0Mi4uMzVlMTBkOWZiY2MzZmZhOWI1YTI2YWM1Y2ZhZGZl
NWFhYmQ1NDA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDEzLTExLTAyICBQYXRy
aWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCisgICAgICAgIFtXSU5DRV0gUmVw
bGFjZSBPd25QdHIgd2l0aCBHRElPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMzY3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGFnZS93aW4vRnJhbWVHZGlXaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aW1hZ2VGcm9tUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvRm9udFBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaXhlZFNpemVGb250
RGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Omhmb250
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmdldFNjYWxlZEZvbnRIYW5k
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdp
bkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBlbik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCcnVzaCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpjbGlwKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
c3Ryb2tlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSb3Vu
ZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSb3VuZENv
cm5lcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpnZXRIQklUTUFQT2ZTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9TaGFyZWRCaXRtYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQml0bWFwOjpjcmVh
dGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQml0bWFwOjpkcmF3KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYXJlZEJpdG1hcDo6Y2xpcEJpdG1hcCk6CisgICAgICAgIChXZWJDb3Jl
OjpkcmF3UGF0dGVyblNpbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCaXRtYXA6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJpdG1hcDo6RENQcm92aWRlcjo6
Z2V0REMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NoYXJlZEJpdG1hcC5o
OgorCisyMDEzLTExLTAyICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgor
CiAgICAgICAgIFZhcmlvdXMgc21hbGwgV2luQ0UgYnVpbGQgZml4ZXMKIAogICAgICAgICAqIGVk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggOGVkOTEzNWQw
NDE0ODAxZDI2ZTc5Mzk3ZGVlNWY4NzU2MDk5OGU4Yy4uOWIwNmYzODZhN2IxNzQ0MGE4NTlmYzVk
MWMxY2E5NjcxZDQ5YzU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAog
MjAxMy0xMS0wMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAorICAg
ICAgICBbV0lOQ0VdIFJlcGxhY2UgT3duUHRyIHdpdGggR0RJT2JqZWN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM2NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAg
ICAoV2ViVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlUGFpbnQpOgorICAg
ICAgICAqIFdlYlZpZXcuaDoKKworMjAxMy0xMS0wMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KKwogICAgICAgICBWYXJpb3VzIHNtYWxsIFdpbkNFIGJ1aWxkIGZpeGVz
CiAKICAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lR2RpV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0ZyYW1lR2RpV2luLmNwcAppbmRleCA1NmE5MDQxNTA4NzM5
NTExMDBiYjk3YjU4N2M4ZDI0ZDQ5MTU5YjRjLi5mNDRiZjczMjljNTBiYjk0NDgxMzJjYzliM2Iy
MGVlMzNhYjVlN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9GcmFtZUdk
aVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRnJhbWVHZGlXaW4uY3BwCkBA
IC0zMCwxMyArMzAsMTMgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgPHdpbmRvd3MuaD4K
KyNpbmNsdWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGV4dGVybiBIREMgZ19zY3JlZW5EQzsKIAotUGFzc093blB0cjxIQklUTUFQPiBpbWFnZUZyb21S
ZWN0KEZyYW1lKiBmcmFtZSwgSW50UmVjdCYgaXIpCitHRElPYmplY3Q8SEJJVE1BUD4gaW1hZ2VG
cm9tUmVjdChGcmFtZSogZnJhbWUsIEludFJlY3QmIGlyKQogewogICAgIGludCB3OwogICAgIGlu
dCBoOwpAQCAtNTEsMjEgKzUxLDIxIEBAIFBhc3NPd25QdHI8SEJJVE1BUD4gaW1hZ2VGcm9tUmVj
dChGcmFtZSogZnJhbWUsIEludFJlY3QmIGlyKQogICAgICAgICBoID0gaXIuaGVpZ2h0KCk7CiAg
ICAgfQogCi0gICAgT3duUHRyPEhEQz4gYm1wREMgPSBhZG9wdFB0cihDcmVhdGVDb21wYXRpYmxl
REMoZ19zY3JlZW5EQykpOwotICAgIE93blB0cjxIQklUTUFQPiBoQm1wID0gYWRvcHRQdHIoQ3Jl
YXRlQ29tcGF0aWJsZUJpdG1hcChnX3NjcmVlbkRDLCB3LCBoKSk7CisgICAgYXV0byBibXBEQyA9
IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlQ29tcGF0aWJsZURDKGdfc2NyZWVuREMpKTsKKyAgICBh
dXRvIGhCbXAgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUNvbXBhdGlibGVCaXRtYXAoZ19zY3Jl
ZW5EQywgdywgaCkpOwogICAgIGlmICghaEJtcCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBIR0RJT0JKIGhibXBPbGQgPSBTZWxlY3RPYmplY3QoYm1wREMuZ2V0KCksIGhCbXAuZ2V0
KCkpOworICAgIEhHRElPQkogaGJtcE9sZCA9IDo6U2VsZWN0T2JqZWN0KGJtcERDLmdldCgpLCBo
Qm1wLmdldCgpKTsKIAogICAgIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGdjKGJtcERDLmdl
dCgpKTsKICAgICAgICAgdmlldy0+cGFpbnQoJmdjLCBpcik7CiAgICAgfQogCi0gICAgU2VsZWN0
T2JqZWN0KGJtcERDLmdldCgpLCBoYm1wT2xkKTsKKyAgICA6OlNlbGVjdE9iamVjdChibXBEQy5n
ZXQoKSwgaGJtcE9sZCk7CiAKLSAgICByZXR1cm4gaEJtcC5yZWxlYXNlKCk7CisgICAgcmV0dXJu
IGhCbXA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAK
aW5kZXggNWFhMGQ5ZWEyZTFiNWI3N2I2MzI3M2YxYjliMTIxZTY2ZmZmNjc4ZS4uMzVjZTc4YmNm
YWFkNWQ5YWE3ZjQxZGUzMGFhODU1NzliMDZkYzg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAK
QEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUgIkZvbnREYXRhLmgiCiAjaW5jbHVkZSAiU2lt
cGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJVbmljb2RlUmFuZ2UuaCIKLSNpbmNsdWRlICJ3dGYv
T3duUHRyLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgogCiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1
ZGUgPG1sYW5nLmg+CkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiBjbGFzcyBGaXhlZFNpemVG
b250RGF0YTogcHVibGljIFJlZkNvdW50ZWQ8Rml4ZWRTaXplRm9udERhdGE+IHsKIHB1YmxpYzoK
ICAgICBMT0dGT05UIG1fZm9udDsKLSAgICBPd25QdHI8SEZPTlQ+IG1faGZvbnQ7CisgICAgR0RJ
T2JqZWN0PEhGT05UPiBtX2hmb250OwogICAgIFRFWFRNRVRSSUMgbV9tZXRyaWNzOwogICAgIERX
T1JEIG1fY29kZVBhZ2VzOwogICAgIHVuc2lnbmVkIG1fd2VpZ2h0OwpAQCAtMjU3LDcgKzI1Nyw3
IEBAIFBhc3NSZWZQdHI8Rml4ZWRTaXplRm9udERhdGE+IEZpeGVkU2l6ZUZvbnREYXRhOjpjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pCiAgICAgd21lbWNweSh3aW5Gb250LmxmRmFjZU5h
bWUsIGZhbWlseS5jaGFyYWN0ZXJzKCksIGxlbik7CiAgICAgd2luRm9udC5sZkZhY2VOYW1lW2xl
bl0gPSBMJ1wwJzsKIAotICAgIGZvbnREYXRhLT5tX2hmb250ID0gYWRvcHRQdHIoQ3JlYXRlRm9u
dEluZGlyZWN0KCZ3aW5Gb250KSk7CisgICAgZm9udERhdGEtPm1faGZvbnQgPSBhZG9wdEdESU9i
amVjdCg6OkNyZWF0ZUZvbnRJbmRpcmVjdCgmd2luRm9udCkpOwogCiAgICAgSEdESU9CSiBvbGRG
b250ID0gU2VsZWN0T2JqZWN0KGdfc2NyZWVuREMsIGZvbnREYXRhLT5tX2hmb250LmdldCgpKTsK
IApAQCAtMzA1LDcgKzMwNSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8Rml4ZWRTaXplRm9udERh
dGE+IG1fcm9vdEZvbnREYXRhOwogICAgIEF0b21pY1N0cmluZyBtX2ZhbWlseTsKICAgICBGb250
RGVzY3JpcHRpb24gbV9mb250RGVzY3JpcHRpb247Ci0gICAgT3duUHRyPEhGT05UPiBtX2hmb250
U2NhbGVkOworICAgIEdESU9iamVjdDxIRk9OVD4gbV9oZm9udFNjYWxlZDsKICAgICBpbnQgbV9z
aXplOwogICAgIGxvbmcgbV9mb250U2NhbGVkV2lkdGg7CiAgICAgbG9uZyBtX2ZvbnRTY2FsZWRI
ZWlnaHQ7CkBAIC0zODUsNyArMzg1LDcgQEAgSEZPTlQgRm9udFBsYXRmb3JtRGF0YTo6aGZvbnQo
KSBjb25zdAogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICghbV9wcml2YXRlLT5tX3Jvb3RG
b250RGF0YS0+bV9oZm9udCkKLSAgICAgICAgbV9wcml2YXRlLT5tX3Jvb3RGb250RGF0YS0+bV9o
Zm9udCA9IGFkb3B0UHRyKENyZWF0ZUZvbnRJbmRpcmVjdCgmbV9wcml2YXRlLT5tX3Jvb3RGb250
RGF0YS0+bV9mb250KSk7CisgICAgICAgIG1fcHJpdmF0ZS0+bV9yb290Rm9udERhdGEtPm1faGZv
bnQgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUZvbnRJbmRpcmVjdCgmbV9wcml2YXRlLT5tX3Jv
b3RGb250RGF0YS0+bV9mb250KSk7CiAKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3Jvb3RGb250
RGF0YS0+bV9oZm9udC5nZXQoKTsKIH0KQEAgLTQwMSw3ICs0MDEsNyBAQCBIRk9OVCBGb250UGxh
dGZvcm1EYXRhOjpnZXRTY2FsZWRGb250SGFuZGxlKGludCBoZWlnaHQsIGludCB3aWR0aCkgY29u
c3QKICAgICAgICAgTE9HRk9OVCBmb250ID0gbV9wcml2YXRlLT5tX3Jvb3RGb250RGF0YS0+bV9m
b250OwogICAgICAgICBmb250LmxmSGVpZ2h0ID0gLWhlaWdodDsKICAgICAgICAgZm9udC5sZldp
ZHRoID0gd2lkdGg7Ci0gICAgICAgIG1fcHJpdmF0ZS0+bV9oZm9udFNjYWxlZCA9IGFkb3B0UHRy
KENyZWF0ZUZvbnRJbmRpcmVjdCgmZm9udCkpOworICAgICAgICBtX3ByaXZhdGUtPm1faGZvbnRT
Y2FsZWQgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUZvbnRJbmRpcmVjdCgmZm9udCkpOwogICAg
IH0KIAogICAgIHJldHVybiBtX3ByaXZhdGUtPm1faGZvbnRTY2FsZWQuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRl
eHRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFw
aGljc0NvbnRleHRXaW5DRS5jcHAKaW5kZXggMTY5Zjg2ZWUzOGEwNmQ1YjhjNzg0NjUyYzI4NGFj
ODg0MzZmYWYyOS4uMjM2MTVhMDE2MWM3ZjRkN2Y3YWUzMzU3Nzg3N2Y0YWFjNDE1Y2YyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3ND
b250ZXh0V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcApAQCAtMzQ1LDcgKzM0NSw3IEBAIHB1YmxpYzoK
ICAgICBWZWN0b3I8R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlRGF0YT4gbV9iYWNrdXBE
YXRhOwogfTsKIAotc3RhdGljIFBhc3NPd25QdHI8SFBFTj4gY3JlYXRlUGVuKGNvbnN0IENvbG9y
JiBjb2wsIGRvdWJsZSBmV2lkdGgsIFN0cm9rZVN0eWxlIHN0eWxlKQorc3RhdGljIEdESU9iamVj
dDxIUEVOPiBjcmVhdGVQZW4oY29uc3QgQ29sb3ImIGNvbCwgZG91YmxlIGZXaWR0aCwgU3Ryb2tl
U3R5bGUgc3R5bGUpCiB7CiAgICAgaW50IHdpZHRoID0gc3RhYmxlUm91bmQoZldpZHRoKTsKICAg
ICBpZiAod2lkdGggPCAxKQpAQCAtMzY5LDEyICszNjksMTIgQEAgc3RhdGljIFBhc3NPd25QdHI8
SFBFTj4gY3JlYXRlUGVuKGNvbnN0IENvbG9yJiBjb2wsIGRvdWJsZSBmV2lkdGgsIFN0cm9rZVN0
eWxlIHMKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFB0cihD
cmVhdGVQZW4ocGVuU3R5bGUsIHdpZHRoLCBSR0IoY29sLnJlZCgpLCBjb2wuZ3JlZW4oKSwgY29s
LmJsdWUoKSkpKTsKKyAgICByZXR1cm4gYWRvcHRHRElPYmplY3QoOjpDcmVhdGVQZW4ocGVuU3R5
bGUsIHdpZHRoLCBSR0IoY29sLnJlZCgpLCBjb2wuZ3JlZW4oKSwgY29sLmJsdWUoKSkpKTsKIH0K
IAotc3RhdGljIGlubGluZSBQYXNzT3duUHRyPEhCUlVTSD4gY3JlYXRlQnJ1c2goY29uc3QgQ29s
b3ImIGNvbCkKK3N0YXRpYyBpbmxpbmUgR0RJT2JqZWN0PEhCUlVTSD4gY3JlYXRlQnJ1c2goY29u
c3QgQ29sb3ImIGNvbCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIoQ3JlYXRlU29saWRCcnVzaChS
R0IoY29sLnJlZCgpLCBjb2wuZ3JlZW4oKSwgY29sLmJsdWUoKSkpKTsKKyAgICByZXR1cm4gYWRv
cHRHRElPYmplY3QoOjpDcmVhdGVTb2xpZEJydXNoKFJHQihjb2wucmVkKCksIGNvbC5ncmVlbigp
LCBjb2wuYmx1ZSgpKSkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUGl4ZWxUeXBlLCBib29s
IElzMTZiaXQ+IHN0YXRpYyB2b2lkIF9yb3RhdGVCaXRtYXAoU2hhcmVkQml0bWFwKiBkZXN0Qm1w
LCBjb25zdCBTaGFyZWRCaXRtYXAqIHNvdXJjZUJtcCwgY29uc3QgUm90YXRpb25UcmFuc2Zvcm0m
IHRyYW5zZm9ybSkKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d1JlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogICAgIHRyUmVjdC5t
b3ZlKHRyYW5zcGFyZW50REMudG9TaGlmdCgpKTsKIAotICAgIE93blB0cjxIQlJVU0g+IGJydXNo
OworICAgIEdESU9iamVjdDxIQlJVU0g+IGJydXNoOwogICAgIEhHRElPQkogb2xkQnJ1c2g7CiAg
ICAgaWYgKGZpbGxDb2xvcigpLmFscGhhKCkpIHsKICAgICAgICAgYnJ1c2ggPSBjcmVhdGVCcnVz
aChmaWxsQ29sb3IoKSk7CkBAIC02NTAsNyArNjUwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgfSBlbHNlCiAgICAgICAgIG9sZEJy
dXNoID0gU2VsZWN0T2JqZWN0KGRjLCBHZXRTdG9ja09iamVjdChOVUxMX0JSVVNIKSk7CiAKLSAg
ICBPd25QdHI8SFBFTj4gcGVuOworICAgIEdESU9iamVjdDxIUEVOPiBwZW47CiAgICAgSEdESU9C
SiBvbGRQZW47CiAgICAgaWYgKHN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2UpIHsKICAgICAgICAg
cGVuID0gY3JlYXRlUGVuKHN0cm9rZUNvbG9yKCksIHN0cm9rZVRoaWNrbmVzcygpLCBzdHJva2VT
dHlsZSgpKTsKQEAgLTY5Miw3ICs2OTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xp
bmUoY29uc3QgSW50UG9pbnQmIHBvaW50MSwgY29uc3QgSW50UG9pbnQmIHBvaW50MikKICAgICB0
clBvaW50MSArPSB0cmFuc3BhcmVudERDLnRvU2hpZnQoKTsKICAgICB0clBvaW50MiArPSB0cmFu
c3BhcmVudERDLnRvU2hpZnQoKTsKIAotICAgIE93blB0cjxIUEVOPiBwZW4gPSBjcmVhdGVQZW4o
c3Ryb2tlQ29sb3IoKSwgc3Ryb2tlVGhpY2tuZXNzKCksIHN0cm9rZVN0eWxlKCkpOworICAgIGF1
dG8gcGVuID0gY3JlYXRlUGVuKHN0cm9rZUNvbG9yKCksIHN0cm9rZVRoaWNrbmVzcygpLCBzdHJv
a2VTdHlsZSgpKTsKICAgICBIR0RJT0JKIG9sZFBlbiA9IFNlbGVjdE9iamVjdChkYywgcGVuLmdl
dCgpKTsKIAogICAgIE1vdmVUb0V4KGRjLCB0clBvaW50MS54KCksIHRyUG9pbnQxLnkoKSwgMCk7
CkBAIC03MTcsNyArNzE3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdFbGxpcHNlKGNv
bnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKICAgICB0clJlY3QubW92ZSh0cmFu
c3BhcmVudERDLnRvU2hpZnQoKSk7CiAKLSAgICBPd25QdHI8SEJSVVNIPiBicnVzaDsKKyAgICBH
RElPYmplY3Q8SEJSVVNIPiBicnVzaDsKICAgICBIR0RJT0JKIG9sZEJydXNoOwogICAgIGlmIChm
aWxsQ29sb3IoKS5hbHBoYSgpKSB7CiAgICAgICAgIGJydXNoID0gY3JlYXRlQnJ1c2goZmlsbENv
bG9yKCkpOwpAQCAtNzI1LDcgKzcyNSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RWxs
aXBzZShjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIH0gZWxzZQogICAgICAgICBvbGRCcnVzaCA9
IFNlbGVjdE9iamVjdChkYywgR2V0U3RvY2tPYmplY3QoTlVMTF9CUlVTSCkpOwogCi0gICAgT3du
UHRyPEhQRU4+IHBlbjsKKyAgICBHRElPYmplY3Q8SFBFTj4gcGVuOwogICAgIEhHRElPQkogb2xk
UGVuID0gMDsKICAgICBpZiAoc3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkgewogICAgICAgICBw
ZW4gPSBjcmVhdGVQZW4oc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlVGhpY2tuZXNzKCksIHN0cm9rZVN0
eWxlKCkpOwpAQCAtODI0LDcgKzgyNCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29u
dmV4UG9seWdvbihzaXplX3QgbnBvaW50cywgY29uc3QgRmxvYXRQb2ludCogcG9pbnRzCiAgICAg
ICAgIHdpblBvaW50c1tpXS55ICs9IHRyYW5zcGFyZW50REMudG9TaGlmdCgpLmhlaWdodCgpOwog
ICAgIH0KIAotICAgIE93blB0cjxIQlJVU0g+IGJydXNoOworICAgIEdESU9iamVjdDxIQlJVU0g+
IGJydXNoOwogICAgIEhHRElPQkogb2xkQnJ1c2g7CiAgICAgaWYgKGZpbGxDb2xvcigpLmFscGhh
KCkpIHsKICAgICAgICAgYnJ1c2ggPSBjcmVhdGVCcnVzaChmaWxsQ29sb3IoKSk7CkBAIC04MzIs
NyArODMyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKHNpemVf
dCBucG9pbnRzLCBjb25zdCBGbG9hdFBvaW50KiBwb2ludHMKICAgICB9IGVsc2UKICAgICAgICAg
b2xkQnJ1c2ggPSBTZWxlY3RPYmplY3QoZGMsIEdldFN0b2NrT2JqZWN0KE5VTExfQlJVU0gpKTsK
IAotICAgIE93blB0cjxIUEVOPiBwZW47CisgICAgR0RJT2JqZWN0PEhQRU4+IHBlbjsKICAgICBI
R0RJT0JKIG9sZFBlbjsKICAgICBpZiAoc3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkgewogICAg
ICAgICBwZW4gPSBjcmVhdGVQZW4oc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlVGhpY2tuZXNzKCksIHN0
cm9rZVN0eWxlKCkpOwpAQCAtODc3LDcgKzg3Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpm
aWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JT
CiAgICAgaWYgKCF0cmFuc3BhcmVudERDLmhkYygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBP
d25QdHI8SEJSVVNIPiBoYnJ1c2ggPSBhZG9wdFB0cihDcmVhdGVTb2xpZEJydXNoKFJHQihjb2xv
ci5yZWQoKSwgY29sb3IuZ3JlZW4oKSwgY29sb3IuYmx1ZSgpKSkpOworICAgIGF1dG8gaGJydXNo
ID0gYWRvcHRHRElPYmplY3QoOjpDcmVhdGVTb2xpZEJydXNoKFJHQihjb2xvci5yZWQoKSwgY29s
b3IuZ3JlZW4oKSwgY29sb3IuYmx1ZSgpKSkpOwogICAgIEZpbGxSZWN0KHRyYW5zcGFyZW50REMu
aGRjKCksICZ0cmFuc3BhcmVudERDLnJlY3QoKSwgaGJydXNoLmdldCgpKTsKIH0KIApAQCAtODkx
LDExICs4OTEsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogCiAgICAgSW50UmVjdCB0clJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KG1fZGF0YS0+
bWFwUmVjdChyZWN0KSk7CiAKLSAgICBPd25QdHI8SFJHTj4gY2xpcFJnbiA9IGFkb3B0UHRyKENy
ZWF0ZVJlY3RSZ24oMCwgMCwgMCwgMCkpOworICAgIGF1dG8gY2xpcFJnbiA9IGFkb3B0R0RJT2Jq
ZWN0KDo6Q3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7CiAgICAgaWYgKEdldENsaXBSZ24obV9k
YXRhLT5tX2RjLCBjbGlwUmduLmdldCgpKSA+IDApCiAgICAgICAgIEludGVyc2VjdENsaXBSZWN0
KG1fZGF0YS0+bV9kYywgdHJSZWN0LngoKSwgdHJSZWN0LnkoKSwgdHJSZWN0Lm1heFgoKSwgdHJS
ZWN0Lm1heFkoKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNsaXBSZ24gPSBhZG9wdFB0cihDcmVh
dGVSZWN0UmduKHRyUmVjdC54KCksIHRyUmVjdC55KCksIHRyUmVjdC5tYXhYKCksIHRyUmVjdC5t
YXhZKCkpKTsKKyAgICAgICAgY2xpcFJnbiA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlUmVjdFJn
bih0clJlY3QueCgpLCB0clJlY3QueSgpLCB0clJlY3QubWF4WCgpLCB0clJlY3QubWF4WSgpKSk7
CiAgICAgICAgIFNlbGVjdENsaXBSZ24obV9kYXRhLT5tX2RjLCBjbGlwUmduLmdldCgpKTsKICAg
ICB9CiB9CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tl
UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IHdpZHRoKQogICAgICAgICByZXR1cm47
CiAgICAgdHJSZWN0Lm1vdmUodHJhbnNwYXJlbnREQy50b1NoaWZ0KCkpOwogCi0gICAgT3duUHRy
PEhQRU4+IHBlbiA9IGNyZWF0ZVBlbihzdHJva2VDb2xvcigpLCBzdHJva2VUaGlja25lc3MoKSwg
c3Ryb2tlU3R5bGUoKSk7CisgICAgYXV0byBwZW4gPSBjcmVhdGVQZW4oc3Ryb2tlQ29sb3IoKSwg
c3Ryb2tlVGhpY2tuZXNzKCksIHN0cm9rZVN0eWxlKCkpOwogICAgIEhHRElPQkogb2xkUGVuID0g
U2VsZWN0T2JqZWN0KGRjLCBwZW4uZ2V0KCkpOwogCiAgICAgaW50IHJpZ2h0ID0gdHJSZWN0Lm1h
eFgoKSAtIDE7CkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Zmls
bFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIGZpbGxSZWN0LCBjb25zdCBJbnRTaXplJiB0bwog
CiAgICAgUkVDVCByZWN0V2luID0gZHN0UmVjdDsKIAotICAgIE93blB0cjxIQlJVU0g+IGJydXNo
ID0gY3JlYXRlQnJ1c2goc2hhZG93Q29sb3IpOworICAgIGF1dG8gYnJ1c2ggPSBjcmVhdGVCcnVz
aChzaGFkb3dDb2xvcik7CiAgICAgSEdESU9CSiBvbGRCcnVzaCA9IFNlbGVjdE9iamVjdChkYywg
YnJ1c2guZ2V0KCkpOwogCiAgICAgU2VsZWN0T2JqZWN0KGRjLCBHZXRTdG9ja09iamVjdChOVUxM
X1BFTikpOwpAQCAtMTE5MCw5ICsxMTkwLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxS
b3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiBmaWxsUmVjdCwgY29uc3QgSW50U2l6ZSYgdG8KICAg
ICBjbGlwUmVjdC5yaWdodCA9IGNlbnRlclBvaW50LngoKTsKICAgICBjbGlwUmVjdC5ib3R0b20g
PSBjZW50ZXJQb2ludC55KCk7CiAKLSAgICBPd25QdHI8SFJHTj4gY2xpcFJnbiA9IGFkb3B0UHRy
KENyZWF0ZVJlY3RSZ24oMCwgMCwgMCwgMCkpOworICAgIGF1dG8gY2xpcFJnbiA9IGFkb3B0R0RJ
T2JqZWN0KDo6Q3JlYXRlUmVjdFJnbigwLCAwLCAwLCAwKSk7CiAgICAgYm9vbCBuZWVkc05ld0Ns
aXAgPSAoR2V0Q2xpcFJnbihkYywgY2xpcFJnbi5nZXQoKSkgPD0gMCk7Ci0gICAgCisKICAgICBk
cmF3Um91bmRDb3JuZXIobmVlZHNOZXdDbGlwLCBjbGlwUmVjdCwgcmVjdFdpbiwgZGMsIHN0YWJs
ZVJvdW5kKG5ld1RvcExlZnQud2lkdGgoKSAqIDIpLCBzdGFibGVSb3VuZChuZXdUb3BMZWZ0Lmhl
aWdodCgpICogMikpOwogCiAgICAgLy8gRHJhdyB0b3AgcmlnaHQKQEAgLTEyMjUsOSArMTIyNSw5
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Um91bmRDb3JuZXIoYm9vbCBuZWVkc05ld0Ns
aXAsIFJFQ1QgY2xpcFJlY3QsIFJFQ1QgcmVjCiAgICAgaWYgKCFkYykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgT3duUHRyPEhSR04+IGNsaXBSZ24gPSBhZG9wdFB0cihDcmVhdGVSZWN0UmduKDAs
IDAsIDAsIDApKTsKKyAgICBhdXRvIGNsaXBSZ24gPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZVJl
Y3RSZ24oMCwgMCwgMCwgMCkpOwogICAgIGlmIChuZWVkc05ld0NsaXApIHsKLSAgICAgICAgY2xp
cFJnbiA9IGFkb3B0UHRyKENyZWF0ZVJlY3RSZ24oY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9w
LCBjbGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKSk7CisgICAgICAgIGNsaXBSZ24gPSBh
ZG9wdEdESU9iamVjdCg6OkNyZWF0ZVJlY3RSZ24oY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9w
LCBjbGlwUmVjdC5yaWdodCwgY2xpcFJlY3QuYm90dG9tKSk7CiAgICAgICAgIFNlbGVjdENsaXBS
Z24oZGMsIGNsaXBSZ24uZ2V0KCkpOwogICAgIH0gZWxzZQogICAgICAgICBJbnRlcnNlY3RDbGlw
UmVjdChkYywgY2xpcFJlY3QubGVmdCwgY2xpcFJlY3QudG9wLCBjbGlwUmVjdC5yaWdodCwgY2xp
cFJlY3QuYm90dG9tKTsKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpmaWxsUGF0aChjb25zdCBQYXRoJiBwYXRoKQogICAgIGlmICghbV9kYXRhLT5tX2RjKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBPd25QdHI8SEJSVVNIPiBicnVzaCA9IGNyZWF0ZUJydXNoKGMp
OworICAgIGF1dG8gYnJ1c2ggPSBjcmVhdGVCcnVzaChjKTsKIAogICAgIGlmIChtX2RhdGEtPm1f
b3BhY2l0eSA8IDEuMGYgfHwgbV9kYXRhLT5oYXNBbHBoYSgpKSB7CiAgICAgICAgIEludFJlY3Qg
dHJSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChtX2RhdGEtPm1hcFJlY3QocGF0aC5ib3VuZGluZ1Jl
Y3QoKSkpOwpAQCAtMTMxMiw3ICsxMzEyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9r
ZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKICAgICBpZiAoIW1fZGF0YS0+bV9kYykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgT3duUHRyPEhQRU4+IHBlbiA9IGNyZWF0ZVBlbihzdHJva2VDb2xvcigp
LCBzdHJva2VUaGlja25lc3MoKSwgc3Ryb2tlU3R5bGUoKSk7CisgICAgYXV0byBwZW4gPSBjcmVh
dGVQZW4oc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlVGhpY2tuZXNzKCksIHN0cm9rZVN0eWxlKCkpOwog
CiAgICAgaWYgKG1fZGF0YS0+bV9vcGFjaXR5IDwgMS4wZiB8fCBtX2RhdGEtPmhhc0FscGhhKCkp
IHsKICAgICAgICAgSW50UmVjdCB0clJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KG1fZGF0YS0+bWFw
UmVjdChwYXRoLmJvdW5kaW5nUmVjdCgpKSk7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhLCBj
b25zdCBHbHlwaEJ1ZmZlcgogCiAgICAgICAgIG9mZnNldCArPSB3aWR0aDsKIAotICAgICAgICBP
d25QdHI8SFBFTj4gaFBlbiA9IGFkb3B0UHRyKENyZWF0ZVBlbihQU19EQVNILCAxLCBmb250Q29s
b3IpKTsKKyAgICAgICAgYXV0byBoUGVuID0gYWRvcHRHRElPYmplY3QoOjpDcmVhdGVQZW4oUFNf
REFTSCwgMSwgZm9udENvbG9yKSk7CiAgICAgICAgIEhHRElPQkogb2xkUGVuID0gU2VsZWN0T2Jq
ZWN0KG1fZGF0YS0+bV9kYywgaFBlbi5nZXQoKSk7CiAKICAgICAgICAgTW92ZVRvRXgobV9kYXRh
LT5tX2RjLCBzdGFibGVSb3VuZCh0clBvaW50LngoKSksIHksIDApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VXaW5DRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAppbmRleCA0
ODMwN2ViZTkyODYwYWJiNjc2NTM0ZTkyMGUxNWEyMDllNjhkNGIxLi42MDY2YzQ1YzAxZjZkOWUz
M2I4NTBjYWRjNDEzOWExYmQ1N2RmNGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZVdpbkNFLmNwcApAQCAtMzQsMTAgKzM0LDggQEAK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIgogI2luY2x1ZGUgIldpbmNlR3JhcGhpY3NFeHRyYXMuaCIKLSNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpbmNsdWRlIDx3aW5k
b3dzLmg+CisjaW5jbHVkZSA8d3RmL3dpbi9HRElPYmplY3QuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC03MCw3ICs2OCw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNp
emUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAgQVNTRVJUKGJtcEluZm8u
Ym1CaXRzUGl4ZWwgPT0gMzIpOwogICAgIGludCBidWZmZXJTaXplID0gYm1wSW5mby5ibVdpZHRo
Qnl0ZXMgKiBibXBJbmZvLmJtSGVpZ2h0OwogCi0gICAgT3duUHRyPEhEQz4gaGRjID0gYWRvcHRQ
dHIoQ3JlYXRlQ29tcGF0aWJsZURDKDApKTsKKyAgICBhdXRvIGhkYyA9IGFkb3B0R0RJT2JqZWN0
KDo6Q3JlYXRlQ29tcGF0aWJsZURDKDApKTsKICAgICBIR0RJT0JKIGhPbGRCbXAgPSBTZWxlY3RP
YmplY3QoaGRjLmdldCgpLCBibXApOwogCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvU2hhcmVkQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NoYXJlZEJpdG1hcC5jcHAKaW5kZXggYWFhZmEz
NmY3NTllNTZkYmI3YTFjNDBkZmE0YTljNTU3MGQxZjM1NS4uMzQ5ODU4ZGNmM2IyZWNhZGU1YTk1
MDQzNTljOThiMGZjMjRlMjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvU2hhcmVkQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9TaGFyZWRCaXRtYXAuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAg
Ym9vbCBTaGFyZWRCaXRtYXA6OmZyZWVNZW1vcnkoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
UGFzc093blB0cjxIQklUTUFQPiBTaGFyZWRCaXRtYXA6OmNyZWF0ZUhhbmRsZSh2b2lkKiogcGl4
ZWxzLCBCaXRtYXBJbmZvKiBibXBJbmZvLCBpbnQgaGVpZ2h0LCBib29sIHVzZTE2Yml0KSBjb25z
dAorR0RJT2JqZWN0PEhCSVRNQVA+IFNoYXJlZEJpdG1hcDo6Y3JlYXRlSGFuZGxlKHZvaWQqKiBw
aXhlbHMsIEJpdG1hcEluZm8qIGJtcEluZm8sIGludCBoZWlnaHQsIGJvb2wgdXNlMTZiaXQpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3BpeGVscykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0x
OTUsMTkgKzE5NSwxOSBAQCBQYXNzT3duUHRyPEhCSVRNQVA+IFNoYXJlZEJpdG1hcDo6Y3JlYXRl
SGFuZGxlKHZvaWQqKiBwaXhlbHMsIEJpdG1hcEluZm8qIGJtcEluZgogICAgICAgICBoZWlnaHQg
PSB0aGlzLT5oZWlnaHQoKTsKICAgICAqYm1wSW5mbyA9IEJpdG1hcEluZm86OmNyZWF0ZUJvdHRv
bVVwKEludFNpemUod2lkdGgoKSwgaGVpZ2h0KSwgKHVzZTE2Yml0IHx8IGlzMTZiaXQoKSkgPyBC
aXRtYXBJbmZvOjpCaXRDb3VudDE2IDogQml0bWFwSW5mbzo6Qml0Q291bnQzMik7CiAKLSAgICBP
d25QdHI8SEJJVE1BUD4gaGJtcCA9IGFkb3B0UHRyKENyZWF0ZURJQlNlY3Rpb24oMCwgYm1wSW5m
bywgRElCX1JHQl9DT0xPUlMsIHBpeGVscywgMCwgMCkpOworICAgIGF1dG8gaGJtcCA9IGFkb3B0
R0RJT2JqZWN0KDo6Q3JlYXRlRElCU2VjdGlvbigwLCBibXBJbmZvLCBESUJfUkdCX0NPTE9SUywg
cGl4ZWxzLCAwLCAwKSk7CiAKICAgICBpZiAoIWhibXApCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgT3duUHRyPEhEQz4gYm1wREMgPSBhZG9wdFB0cihDcmVhdGVDb21wYXRpYmxlREMo
MCkpOworICAgIGF1dG8gYm1wREMgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUNvbXBhdGlibGVE
QygwKSk7CiAgICAgSEdESU9CSiBoT2xkQm1wID0gU2VsZWN0T2JqZWN0KGJtcERDLmdldCgpLCBo
Ym1wLmdldCgpKTsKIAogICAgIFN0cmV0Y2hESUJpdHMoYm1wREMuZ2V0KCksIDAsIDAsIHdpZHRo
KCksIGhlaWdodCwgMCwgMCwgd2lkdGgoKSwgaGVpZ2h0LCBtX3BpeGVscywgJm1fYm1wSW5mbywg
RElCX1JHQl9DT0xPUlMsIFNSQ0NPUFkpOwogCiAgICAgU2VsZWN0T2JqZWN0KGJtcERDLmdldCgp
LCBoT2xkQm1wKTsKIAotICAgIHJldHVybiBoYm1wLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gaGJt
cDsKIH0KIAogYm9vbCBTaGFyZWRCaXRtYXA6OmVuc3VyZUhhbmRsZSgpCkBAIC0yNTEsNyArMjUx
LDcgQEAgdm9pZCBTaGFyZWRCaXRtYXA6OmRyYXcoSERDIGhkYywgY29uc3QgSW50UmVjdCYgZHN0
UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwKICAgICAgICAgcmV0dXJuOwogCiAgICAgSEJJ
VE1BUCBoYml0bWFwID0gMDsKLSAgICBPd25QdHI8SEJJVE1BUD4gaFRlbXBCaXRtYXA7CisgICAg
R0RJT2JqZWN0PEhCSVRNQVA+IGhUZW1wQml0bWFwOwogICAgIGJvb2wgdXNpbmdIYW5kbGUgPSBj
b21wb3NpdGVPcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyICYmIChoYXNBbHBoYSgpICYmIGhhc0Fs
cGhhQmxlbmRTdXBwb3J0KCkgfHwgdXNlc1RyYW5zcGFyZW50Q29sb3IoKSk7CiAKICAgICBpZiAo
dXNpbmdIYW5kbGUpIHsKQEAgLTI3Niw3ICsyNzYsNyBAQCB2b2lkIFNoYXJlZEJpdG1hcDo6ZHJh
dyhIREMgaGRjLCBjb25zdCBJbnRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0
LAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgT3duUHRyPEhEQz4gaG1lbWRjID0gYWRv
cHRQdHIoQ3JlYXRlQ29tcGF0aWJsZURDKGhkYykpOworICAgIGF1dG8gaG1lbWRjID0gYWRvcHRH
RElPYmplY3QoOjpDcmVhdGVDb21wYXRpYmxlREMoaGRjKSk7CiAgICAgSEdESU9CSiBoT2xkQm1w
ID0gU2VsZWN0T2JqZWN0KGhtZW1kYy5nZXQoKSwgaGJpdG1hcCk7CiAKICAgICBpZiAoIXVzZXNU
cmFuc3BhcmVudENvbG9yKCkgJiYgaGFzQWxwaGFCbGVuZFN1cHBvcnQoKSkgewpAQCAtMjkyLDcg
KzI5Miw3IEBAIHZvaWQgU2hhcmVkQml0bWFwOjpkcmF3KEhEQyBoZGMsIGNvbnN0IEludFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsCiAgICAgU2VsZWN0T2JqZWN0KGhtZW1k
Yy5nZXQoKSwgaE9sZEJtcCk7CiB9CiAKLVBhc3NPd25QdHI8SEJJVE1BUD4gU2hhcmVkQml0bWFw
OjpjbGlwQml0bWFwKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgdXNlQWxwaGEsIEJpdG1hcElu
Zm8mIGJtcEluZm8sIHZvaWQqJiBwaXhlbHMpCitHRElPYmplY3Q8SEJJVE1BUD4gU2hhcmVkQml0
bWFwOjpjbGlwQml0bWFwKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgdXNlQWxwaGEsIEJpdG1h
cEluZm8mIGJtcEluZm8sIHZvaWQqJiBwaXhlbHMpCiB7CiAgICAgaWYgKCFieXRlcygpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTMwNSwxOSArMzA1LDE5IEBAIFBhc3NPd25QdHI8SEJJ
VE1BUD4gU2hhcmVkQml0bWFwOjpjbGlwQml0bWFwKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wg
dXNlQWxwaGEsCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYm1wSW5mbyA9IEJpdG1h
cEluZm86OmNyZWF0ZUJvdHRvbVVwKEludFNpemUoY29weVdpZHRoLCBjb3B5SGVpZ2h0KSwgKHVz
ZUFscGhhICYmIGlzMzJiaXQoKSkgPyBCaXRtYXBJbmZvOjpCaXRDb3VudDMyIDogQml0bWFwSW5m
bzo6Qml0Q291bnQxNik7Ci0gICAgT3duUHRyPEhCSVRNQVA+IG5ld0JtcCA9IGFkb3B0UHRyKENy
ZWF0ZURJQlNlY3Rpb24oMCwgJmJtcEluZm8sIERJQl9SR0JfQ09MT1JTLCAmcGl4ZWxzLCAwLCAw
KSk7CisgICAgYXV0byBuZXdCbXAgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZURJQlNlY3Rpb24o
MCwgJmJtcEluZm8sIERJQl9SR0JfQ09MT1JTLCAmcGl4ZWxzLCAwLCAwKSk7CiAKICAgICBpZiAo
IW5ld0JtcCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBPd25QdHI8SERDPiBkY05l
dyA9IGFkb3B0UHRyKENyZWF0ZUNvbXBhdGlibGVEQygwKSk7CisgICAgYXV0byBkY05ldyA9IGFk
b3B0R0RJT2JqZWN0KDo6Q3JlYXRlQ29tcGF0aWJsZURDKDApKTsKICAgICBIR0RJT0JKIHRtcE5l
dyA9IFNlbGVjdE9iamVjdChkY05ldy5nZXQoKSwgbmV3Qm1wLmdldCgpKTsKIAogICAgIFN0cmV0
Y2hESUJpdHMoZGNOZXcuZ2V0KCksIDAsIDAsIGNvcHlXaWR0aCwgY29weUhlaWdodCwgcmVjdC54
KCksIHJlY3QueSgpLCBjb3B5V2lkdGgsIGNvcHlIZWlnaHQsCiAgICAgICAgIGJ5dGVzKCksICZi
aXRtYXBJbmZvKCksIERJQl9SR0JfQ09MT1JTLCBTUkNDT1BZKTsKIAogICAgIFNlbGVjdE9iamVj
dChkY05ldy5nZXQoKSwgdG1wTmV3KTsKLSAgICByZXR1cm4gbmV3Qm1wLnJlbGVhc2UoKTsKKyAg
ICByZXR1cm4gbmV3Qm1wOwogfQogCiBQYXNzUmVmUHRyPFNoYXJlZEJpdG1hcD4gU2hhcmVkQml0
bWFwOjpjbGlwQml0bWFwKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgdXNlQWxwaGEpCkBAIC0z
NDQsNyArMzQ0LDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCaXRtYXA+IFNoYXJlZEJpdG1hcDo6Y2xp
cEJpdG1hcChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIHVzZUEKIAogc3RhdGljIHZvaWQgZHJh
d1BhdHRlcm5TaW1wbGUoSERDIGhkYywgY29uc3QgUkVDVCYgZGVzdFJlY3QsIEhCSVRNQVAgaGJt
cCwgY29uc3QgUE9JTlQmIHBoYXNlKQogewotICAgIE93blB0cjxIQlJVU0g+IGhCcnVzaCA9IGFk
b3B0UHRyKENyZWF0ZVBhdHRlcm5CcnVzaChoYm1wKSk7CisgICAgYXV0byBoQnJ1c2ggPSBhZG9w
dEdESU9iamVjdCg6OkNyZWF0ZVBhdHRlcm5CcnVzaChoYm1wKSk7CiAgICAgaWYgKCFoQnJ1c2gp
CiAgICAgICAgIHJldHVybjsKIApAQCAtNDMxLDcgKzQzMSw3IEBAIHZvaWQgU2hhcmVkQml0bWFw
OjpkcmF3UGF0dGVybihIREMgaGRjLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwg
Y29uc3QKICAgICAgICAgdGlsZVJlY3Quc2V0SGVpZ2h0KHRlbXApOwogICAgIH0KIAotICAgIE93
blB0cjxIQklUTUFQPiBjbGlwcGVkQm1wOworICAgIEdESU9iamVjdDxIQklUTUFQPiBjbGlwcGVk
Qm1wOwogCiAgICAgaWYgKHRpbGVSZWN0LngoKSB8fCB0aWxlUmVjdC55KCkgfHwgdGlsZVJlY3Qu
d2lkdGgoKSAhPSBibXBXaWR0aCB8fCB0aWxlUmVjdC5oZWlnaHQoKSAhPSBibXBIZWlnaHQpIHsK
ICAgICAgICAgQml0bWFwSW5mbyBwYXR0ZXJuQm1wSW5mbzsKQEAgLTQ1Myw3ICs0NTMsNyBAQCB2
b2lkIFNoYXJlZEJpdG1hcDo6ZHJhd1BhdHRlcm4oSERDIGhkYywgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiB0cmFuc2Zvcm0sIGNvbnN0CiAgICAgaWYgKGNsaXBUeXBlID09IFNJTVBMRVJFR0lPTikK
ICAgICAgICAgdHJSZWN0LmludGVyc2VjdChGbG9hdFJlY3QoY2xpcEJveC5sZWZ0LCBjbGlwQm94
LnRvcCwgY2xpcEJveC5yaWdodCAtIGNsaXBCb3gubGVmdCwgY2xpcEJveC5ib3R0b20gLSBjbGlw
Qm94LnRvcCkpOwogICAgIGVsc2UgaWYgKGNsaXBUeXBlID09IENPTVBMRVhSRUdJT04pIHsKLSAg
ICAgICAgT3duUHRyPEhSR04+IGNsaXBSZ24gPSBhZG9wdFB0cihDcmVhdGVSZWN0UmduKDAsIDAs
IDAsIDApKTsKKyAgICAgICAgYXV0byBjbGlwUmduID0gYWRvcHRHRElPYmplY3QoOjpDcmVhdGVS
ZWN0UmduKDAsIDAsIDAsIDApKTsKICAgICAgICAgaWYgKEdldENsaXBSZ24oaGRjLCBjbGlwUmdu
LmdldCgpKSA+IDApIHsKICAgICAgICAgICAgIERXT1JEIHJlZ2lvbkRhdGFTaXplID0gR2V0UmVn
aW9uRGF0YShjbGlwUmduLmdldCgpLCBzaXplb2YoUkdOREFUQSksIDApOwogICAgICAgICAgICAg
aWYgKHJlZ2lvbkRhdGFTaXplKSB7CkBAIC01MDQsMTIgKzUwNCwxMiBAQCB2b2lkIFNoYXJlZEJp
dG1hcDo6ZHJhd1BhdHRlcm4oSERDIGhkYywgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbnN0CiAKICAgICBCaXRtYXBJbmZvIGJtcEluZm8gPSBCaXRtYXBJbmZvOjpjcmVhdGVC
b3R0b21VcChJbnRTaXplKHNyY1JlY3RXaW4ucmlnaHQsIHNyY1JlY3RXaW4uYm90dG9tKSwgdXNl
QWxwaGEgPyBCaXRtYXBJbmZvOjpCaXRDb3VudDMyIDogQml0bWFwSW5mbzo6Qml0Q291bnQxNik7
CiAgICAgdm9pZCogcGl4ZWxzOwotICAgIE93blB0cjxIQklUTUFQPiBoYm1wVGVtcCA9IGFkb3B0
UHRyKENyZWF0ZURJQlNlY3Rpb24oMCwgJmJtcEluZm8sIERJQl9SR0JfQ09MT1JTLCAmcGl4ZWxz
LCAwLCAwKSk7CisgICAgYXV0byBoYm1wVGVtcCA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlRElC
U2VjdGlvbigwLCAmYm1wSW5mbywgRElCX1JHQl9DT0xPUlMsICZwaXhlbHMsIDAsIDApKTsKIAog
ICAgIGlmICghaGJtcFRlbXApCiAgICAgICAgIHJldHVybjsKIAotICAgIE93blB0cjxIREM+IGht
ZW1kYyA9IGFkb3B0UHRyKENyZWF0ZUNvbXBhdGlibGVEQyhoZGMpKTsKKyAgICBhdXRvIGhtZW1k
YyA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlQ29tcGF0aWJsZURDKGhkYykpOwogICAgIEhHRElP
Qkogb2xkQm1wID0gU2VsZWN0T2JqZWN0KGhtZW1kYy5nZXQoKSwgaGJtcFRlbXAuZ2V0KCkpOwog
ICAgIGlmIChjbGlwcGVkQm1wKQogICAgICAgICBkcmF3UGF0dGVyblNpbXBsZShobWVtZGMuZ2V0
KCksIHNyY1JlY3RXaW4sIGNsaXBwZWRCbXAuZ2V0KCksIHBoYXNlV2luKTsKQEAgLTUyMCw3ICs1
MjAsNyBAQCB2b2lkIFNoYXJlZEJpdG1hcDo6ZHJhd1BhdHRlcm4oSERDIGhkYywgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0CiAgICAgZWxzZSB7CiAgICAgICAgIHZvaWQq
IHBpeGVsczsKICAgICAgICAgQml0bWFwSW5mbyBibXBJbmZvOwotICAgICAgICBPd25QdHI8SEJJ
VE1BUD4gaGJtcCA9IGNyZWF0ZUhhbmRsZSgmcGl4ZWxzLCAmYm1wSW5mbywgLTEsIGZhbHNlKTsK
KyAgICAgICAgYXV0byBoYm1wID0gY3JlYXRlSGFuZGxlKCZwaXhlbHMsICZibXBJbmZvLCAtMSwg
ZmFsc2UpOwogICAgICAgICBpZiAoaGJtcCkKICAgICAgICAgICAgIGRyYXdQYXR0ZXJuU2ltcGxl
KGhtZW1kYy5nZXQoKSwgc3JjUmVjdFdpbiwgaGJtcC5nZXQoKSwgcGhhc2VXaW4pOwogICAgICAg
ICBlbHNlIHsKQEAgLTU2NCw3ICs1NjQsNyBAQCBIREMgU2hhcmVkQml0bWFwOjpEQ1Byb3ZpZGVy
OjpnZXREQyhTaGFyZWRCaXRtYXAqIGJtcCwgdW5zaWduZWQqIGtleSkKIAogICAgICprZXkgPSBy
ZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihTZWxlY3RPYmplY3QoaGRjLCBibXAtPmdldEhhbmRs
ZSgpKSk7CiAgICAgUkVDVCByZWN0ID0geyAwLCAwLCBibXAtPndpZHRoKCksIGJtcC0+aGVpZ2h0
KCkgfTsKLSAgICBPd25QdHI8SFJHTj4gY2xpcFJnbiA9IGFkb3B0UHRyKENyZWF0ZVJlY3RSZ25J
bmRpcmVjdCgmcmVjdCkpOworICAgIGF1dG8gY2xpcFJnbiA9IGFkb3B0R0RJT2JqZWN0KDo6Q3Jl
YXRlUmVjdFJnbkluZGlyZWN0KCZyZWN0KSk7CiAgICAgU2VsZWN0Q2xpcFJnbihoZGMsIGNsaXBS
Z24uZ2V0KCkpOwogCiAgICAgcmV0dXJuIGhkYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL1NoYXJlZEJpdG1hcC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvU2hhcmVkQml0bWFwLmgKaW5kZXggYzY3YWJjMjU1YTcx
MzU1YmM5ZmU1MmZhMzhkNmM3NjdkZmVkZDRhNS4uYjY4OTViMzM0MTkzODYwZTU0ZTlmZmY0MDJk
MzIxM2IzMWM5N2M1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvU2hhcmVkQml0bWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvU2hhcmVkQml0bWFwLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHdpbmdkaS5oPgorI2luY2x1ZGUgPHd0Zi93aW4vR0RJ
T2JqZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjcsNyArNjcsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRIYXNBbHBoYShib29sIGFscGhhKSB7IG1faGFzQWxwaGEgPSBhbHBo
YTsgfQogICAgIGJvb2wgZW5zdXJlSGFuZGxlKCk7CiAgICAgSEJJVE1BUCBnZXRIYW5kbGUoKSB7
IHJldHVybiBtX2hiaXRtYXAuZ2V0KCk7IH0KLSAgICBQYXNzT3duUHRyPEhCSVRNQVA+IGNyZWF0
ZUhhbmRsZSh2b2lkKiogcGl4ZWxzLCBCaXRtYXBJbmZvKiBibXBJbmZvLCBpbnQgaCA9IC0xLCBi
b29sIHVzZTE2Yml0ID0gdHJ1ZSkgY29uc3Q7CisgICAgR0RJT2JqZWN0PEhCSVRNQVA+IGNyZWF0
ZUhhbmRsZSh2b2lkKiogcGl4ZWxzLCBCaXRtYXBJbmZvKiBibXBJbmZvLCBpbnQgaCA9IC0xLCBi
b29sIHVzZTE2Yml0ID0gdHJ1ZSkgY29uc3Q7CiAgICAgYm9vbCB1c2VzVHJhbnNwYXJlbnRDb2xv
cigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1RyYW5zcGFyZW50Q29sb3I7IH0KICAgICBDT0xPUlJF
RiB0cmFuc3BhcmVudENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc3BhcmVudENvbG9yOyB9
CiAgICAgdm9pZCBzZXRUcmFuc3BhcmVudENvbG9yKENPTE9SUkVGIGMpCkBAIC03Nyw3ICs3Nyw3
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgYm9vbCBjYW5Vc2VESUJpdHMoKSBjb25zdCB7IHJldHVy
biAhaGFzQWxwaGEoKSAmJiAhdXNlc1RyYW5zcGFyZW50Q29sb3IoKTsgfQogCi0gICAgUGFzc093
blB0cjxIQklUTUFQPiBjbGlwQml0bWFwKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgdXNlQWxw
aGEsIEJpdG1hcEluZm8mIGJtcEluZm8sIHZvaWQqJiBwaXhlbHMpOworICAgIEdESU9iamVjdDxI
QklUTUFQPiBjbGlwQml0bWFwKGNvbnN0IEludFJlY3QmLCBib29sIHVzZUFscGhhLCBCaXRtYXBJ
bmZvJiwgdm9pZComIHBpeGVscyk7CiAKICAgICBQYXNzUmVmUHRyPFNoYXJlZEJpdG1hcD4gY2xp
cEJpdG1hcChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIHVzZUFscGhhKTsKIApAQCAtMTMwLDcg
KzEzMCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2hhcmVkQml0bWFwKGNvbnN0IEludFNp
emUmLCBCaXRtYXBJbmZvOjpCaXRDb3VudCwgYm9vbCBpbml0UGl4ZWxzKTsKICAgICBCaXRtYXBJ
bmZvIG1fYm1wSW5mbzsKLSAgICBPd25QdHI8SEJJVE1BUD4gbV9oYml0bWFwOworICAgIEdESU9i
amVjdDxIQklUTUFQPiBtX2hiaXRtYXA7CiAgICAgdm9pZCogbV9waXhlbHM7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPHVuc2lnbmVkW10+IG1fcGl4ZWxEYXRhOwogICAgIENPTE9SUkVGIG1fdHJhbnNw
YXJlbnRDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmluZGV4IDRlMDhiOTA2N2ZjYzIyMDFh
MmQ4ZTg0ZWY0MDhkYmRhNzE3YjBhZDcuLmEwZjUzNDY1MTNjMjVjNjQ2MWMxNjYzMDA2Mzk2YjFk
MjBiNGM0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHZv
aWQgV2ViVmlldzo6cGFpbnQoSERDIGhEQywgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiAgICAg
aWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIE93blB0cjxIUkdOPiBjbGlw
UmduID0gYWRvcHRQdHIoQ3JlYXRlUmVjdFJnbihjbGlwUmVjdC54KCksIGNsaXBSZWN0LnkoKSwg
Y2xpcFJlY3QubWF4WCgpLCBjbGlwUmVjdC5tYXhZKCkpKTsKKyAgICBhdXRvIGNsaXBSZ24gPSBh
ZG9wdEdESU9iamVjdCg6OkNyZWF0ZVJlY3RSZ24oY2xpcFJlY3QueCgpLCBjbGlwUmVjdC55KCks
IGNsaXBSZWN0Lm1heFgoKSwgY2xpcFJlY3QubWF4WSgpKSk7CiAgICAgU2VsZWN0Q2xpcFJnbiho
REMsIGNsaXBSZ24uZ2V0KCkpOwogCiAgICAgZnJhbWVWaWV3LT51cGRhdGVMYXlvdXRBbmRTdHls
ZUlmTmVlZGVkUmVjdXJzaXZlKCk7CkBAIC0yNjUsOCArMjY1LDggQEAgYm9vbCBXZWJWaWV3Ojpo
YW5kbGVQYWludChIV05EIGhXbmQpCiAgICAgICAgICAgICBSRUNUIHJjQ2xpZW50OwogICAgICAg
ICAgICAgR2V0Q2xpZW50UmVjdChtX3dpbmRvd0hhbmRsZSwgJnJjQ2xpZW50KTsKIAotICAgICAg
ICAgICAgbV9kb3VibGVCdWZmZXJEQyA9IGFkb3B0UHRyKENyZWF0ZUNvbXBhdGlibGVEQyhoREMp
KTsKLSAgICAgICAgICAgIG1fZG91YmxlQnVmZmVyQml0bWFwID0gYWRvcHRQdHIoQ3JlYXRlQ29t
cGF0aWJsZUJpdG1hcChoREMsIHJjQ2xpZW50LnJpZ2h0LCByY0NsaWVudC5ib3R0b20pKTsKKyAg
ICAgICAgICAgIG1fZG91YmxlQnVmZmVyREMgPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZUNvbXBh
dGlibGVEQyhoREMpKTsKKyAgICAgICAgICAgIG1fZG91YmxlQnVmZmVyQml0bWFwID0gYWRvcHRH
RElPYmplY3QoOjpDcmVhdGVDb21wYXRpYmxlQml0bWFwKGhEQywgcmNDbGllbnQucmlnaHQsIHJj
Q2xpZW50LmJvdHRvbSkpOwogICAgICAgICAgICAgU2VsZWN0T2JqZWN0KG1fZG91YmxlQnVmZmVy
REMuZ2V0KCksIG1fZG91YmxlQnVmZmVyQml0bWFwLmdldCgpKTsKICAgICAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViVmlldy5oCmluZGV4IDhiNjA2NTFlZDExNzY5Yjg0NmRlODE4OGI2ODcwMzgyM2E3MGE1
ODcuLjA1YTgxMjdhNTJiMDk4YTIyZTRkODJkYWIyZTBlODEzNDUzYjViNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViVmlldy5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+CiAKIG5hbWVzcGFj
ZSBXVEYgewogY2xhc3MgU3RyaW5nOwpAQCAtOTQsOCArOTQsOCBAQCBwcml2YXRlOgogICAgIEhX
TkQgbV9wYXJlbnRXaW5kb3dIYW5kbGU7CiAgICAgSFdORCBtX3dpbmRvd0hhbmRsZTsKICAgICBi
b29sIG1fZW5hYmxlRG91YmxlQnVmZmVyOwotICAgIE93blB0cjxIREM+IG1fZG91YmxlQnVmZmVy
REM7Ci0gICAgT3duUHRyPEhCSVRNQVA+IG1fZG91YmxlQnVmZmVyQml0bWFwOworICAgIEdESU9i
amVjdDxIREM+IG1fZG91YmxlQnVmZmVyREM7CisgICAgR0RJT2JqZWN0PEhCSVRNQVA+IG1fZG91
YmxlQnVmZmVyQml0bWFwOwogfTsKIAogI2VuZGlmIC8vIFdlYlZpZXdfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>