<?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>214622</bug_id>
          
          <creation_ts>2020-07-21 17:08:58 -0700</creation_ts>
          <short_desc>Fix validation of deleted WebGL objects</short_desc>
          <delta_ts>2020-07-22 11:26:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126404</blocked>
    
    <blocked>126940</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Darpinian">jdarpinian</reporter>
          <assigned_to name="James Darpinian">jdarpinian</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1673681</commentid>
    <comment_count>0</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-21 17:08:58 -0700</bug_when>
    <thetext>Fix validation of deleted WebGL objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673684</commentid>
    <comment_count>1</comment_count>
      <attachid>404882</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-21 17:10:53 -0700</bug_when>
    <thetext>Created attachment 404882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673685</commentid>
    <comment_count>2</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-21 17:12:28 -0700</bug_when>
    <thetext>I discovered this while looking at conformance tests for query objects (bug 126940).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673694</commentid>
    <comment_count>3</comment_count>
      <attachid>404882</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-21 17:23:21 -0700</bug_when>
    <thetext>Comment on attachment 404882
Patch

Looks good to me. Good catch.

Do you think we should bring over two additional concepts from Chromium&apos;s WebGL implementation?

- WebGLObject::MarkedForDeletion
- WebGLRenderingContextBase::ValidateNullableWebGLObject

?

Maybe not in this patch, but in a follow-on one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673699</commentid>
    <comment_count>4</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-21 17:29:26 -0700</bug_when>
    <thetext>Yes, I think there&apos;s more work to be done here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673702</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-21 17:40:43 -0700</bug_when>
    <thetext>Thanks, sounds good. This individual patch LGTM - let&apos;s file follow-on bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673895</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-22 11:25:48 -0700</bug_when>
    <thetext>Committed r264713: &lt;https://trac.webkit.org/changeset/264713&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404882.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673897</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-22 11:26:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/65946331&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404882</attachid>
            <date>2020-07-21 17:10:53 -0700</date>
            <delta_ts>2020-07-22 11:25:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214622-20200721171052.patch</filename>
            <type>text/plain</type>
            <size>19626</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZiOTRlMTgxMGU0ZGUx
MjM2ZGZjOGNiZWM2ZDk3MzM4MjgzYjk5ZC4uOTAzZjYxNzkxZTJkYWQ4OWM1M2YyZmM4Y2YzYjNm
NmJhNTg4OTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA3LTIxICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggdmFs
aWRhdGlvbiBvZiBkZWxldGVkIFdlYkdMIG9iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDYyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb2dyYW1zIGFuZCBzaGFkZXJzIG5lZWQgdG8gYmUg
dmFsaWRhdGVkIGRpZmZlcmVudGx5IHRoYW4gb3RoZXIgV2ViR0wgb2JqZWN0cy4KKyAgICAgICAg
VXNpbmcgYSBkZWxldGVkIFdlYkdMIG9iamVjdCBzaG91bGQgY2F1c2UgYW4gSU5WQUxJRF9PUEVS
QVRJT04gZXJyb3IsIGV4Y2VwdAorICAgICAgICBmb3IgcHJvZ3JhbXMgYW5kIHNoYWRlcnMgd2hp
Y2ggc2hvdWxkIGJlIElOVkFMSURfVkFMVUUuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEZyYWdEYXRhTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRUcmFuc2Zvcm1GZWVkYmFja1Zhcnlp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9y
bUluZGljZXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
QWN0aXZlVW5pZm9ybXMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0VW5pZm9ybUJsb2NrSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybUJsb2Nr
QmluZGluZyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphdHRh
Y2hTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
YmluZEF0dHJpYkxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmNvbXBpbGVTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6ZGV0YWNoU2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlV2ViR0xPYmplY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRl
cik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3Rp
dmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0cmliTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtSW5mb0xvZyk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQ
YXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVySW5mb0xvZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bGlua1Byb2dyYW1XaXRob3V0SW52YWxpZGF0aW5n
QXR0cmliTG9jYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnNoYWRlclNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjp2YWxpZGF0ZVByb2dyYW0pOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKwogMjAyMC0wNy0yMCAgQ2xhcmsgV2FuZyAgPGNsYXJr
X3dhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVzIHRvIG1hdGNoIEJhc2VBdWRpb0NvbnRl
eHQuaWRsIHRvIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggYmM2YjUyMTM5ODRiMWRhZTFkMzRmY2I5ZDEw
ZTgzZGZmMGYzMzM1My4uOTk0N2Y5ZDU3YmMzYjJiZTA0YTBiODBmNjRkNjk2MDYzN2ZlNTBmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKQEAgLTE0OTksNyArMTQ5OSw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Y29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxl
CiAKIEdDR0xpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0RhdGFMb2NhdGlvbihX
ZWJHTFByb2dyYW0mIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRGcmFnRGF0
YUxvY2F0aW9uIiwgJnByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkg
fHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImdldEZyYWdEYXRhTG9jYXRpb24iLCAm
cHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiAtMTsKICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRG
cmFnRGF0YUxvY2F0aW9uKHByb2dyYW0ub2JqZWN0KCksIG5hbWUpOwogfQpAQCAtMjI2MCw3ICsy
MjYwLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1GZWVkYmFj
aygpCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dHJhbnNmb3JtRmVlZGJhY2tWYXJ5
aW5ncyhXZWJHTFByb2dyYW0mIHByb2dyYW0sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2YXJ5aW5n
cywgR0NHTGVudW0gYnVmZmVyTW9kZSkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJ0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwg
JnByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRl
V2ViR0xQcm9ncmFtT3JTaGFkZXIoInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiLCAmcHJvZ3Jh
bSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBzd2l0Y2ggKGJ1ZmZlck1vZGUpIHsKQEAg
LTIyODMsNyArMjI4Myw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dHJhbnNmb3Jt
RmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0mIHByb2dyYW0sIGNvCiAKIFJlZlB0cjxXZWJH
TEFjdGl2ZUluZm8+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZyhXZWJHTFByb2dyYW0mIHByb2dyYW0sIEdDR0x1aW50IGluZGV4KQogewotICAgIGlm
IChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFRy
YW5zZm9ybUZlZWRiYWNrVmFyeWluZyIsICZwcm9ncmFtKSkKKyAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJnZXRUcmFuc2Zv
cm1GZWVkYmFja1ZhcnlpbmciLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgR3JhcGhpY3NDb250ZXh0R0w6OkFjdGl2ZUluZm8gaW5mbzsKQEAgLTI0MzMsNyArMjQz
Myw3IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0
ZXIoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpCiBPcHRpb25hbDxWZWN0b3I8R0NHTHVpbnQ+
PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0m
IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuYW1lcykKIHsKICNpZiBVU0UoQU5HTEUp
Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVj
dCgiZ2V0VW5pZm9ybUluZGljZXMiLCAmcHJvZ3JhbSkpCisgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigiZ2V0VW5pZm9ybUlu
ZGljZXMiLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgcmV0
dXJuIG1fY29udGV4dC0+Z2V0VW5pZm9ybUluZGljZXMocHJvZ3JhbS5vYmplY3QoKSwgbmFtZXMp
OwogI2Vsc2UKQEAgLTI0NDQsNyArMjQ0NCw3IEBAIE9wdGlvbmFsPFZlY3RvcjxHQ0dMdWludD4+
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhCiAK
IFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1zKFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSwgY29uc3QgVmVjdG9yPEdDR0x1aW50PiYgdW5pZm9ybUluZGljZXMs
IEdDR0xlbnVtIHBuYW1lKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwg
IXZhbGlkYXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZVVuaWZvcm1zIiwgJnByb2dyYW0pKQorICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JT
aGFkZXIoImdldEFjdGl2ZVVuaWZvcm1zIiwgJnByb2dyYW0pKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIFZlY3RvcjxHQ0dMaW50PiByZXN1bHQodW5pZm9ybUluZGljZXMuc2l6ZSgp
LCAwKTsKQEAgLTI0NzQsNyArMjQ3NCw3IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldEFjdGl2ZVVuaWZvcm1zKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgY29uc3QKIEdDR0x1
aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1CbG9ja0luZGV4KFdlYkdMUHJv
Z3JhbSYgcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiB1bmlmb3JtQmxvY2tOYW1lKQogewogI2lmIFVT
RShBTkdMRSkKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdl
YkdMT2JqZWN0KCJnZXRVbmlmb3JtQmxvY2tJbmRleCIsICZwcm9ncmFtKSkKKyAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJn
ZXRVbmlmb3JtQmxvY2tJbmRleCIsICZwcm9ncmFtKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIG1fY29udGV4dC0+Z2V0VW5pZm9ybUJsb2NrSW5kZXgocHJvZ3JhbS5vYmplY3QoKSwg
dW5pZm9ybUJsb2NrTmFtZSk7CiAjZWxzZQpAQCAtMjQ4OCw3ICsyNDg4LDcgQEAgR0NHTHVpbnQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFt
JiBwcm9ncmFtLCBjb24KIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2
ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0mIHByb2dyYW0sIEdDR0x1aW50IHVu
aWZvcm1CbG9ja0luZGV4LCBHQ0dMZW51bSBwbmFtZSkKIHsKICNpZiBVU0UoQU5HTEUpCi0gICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0
QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyIiwgJnByb2dyYW0pKQorICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImdldEFj
dGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlciIsICZwcm9ncmFtKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgR0xpbnQgcmVzdWx0ID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CkBAIC0y
NTI0LDcgKzI1MjQsNyBAQCBXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3Rp
dmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtJiBwcgogV2ViR0xBbnkgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0m
IHByb2dyYW0sIEdDR0x1aW50IGluZGV4KQogewogI2lmIFVTRShBTkdMRSkKLSAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRBY3RpdmVV
bmlmb3JtQmxvY2tOYW1lIiwgJnByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUiLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICByZXR1
cm4gbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0ub2JqZWN0KCks
IGluZGV4KTsKICNlbHNlCkBAIC0yNTM4LDcgKzI1MzgsNyBAQCBXZWJHTEFueSBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSYgcHJv
Z3JhbQogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtQmxvY2tCaW5kaW5nKFdl
YkdMUHJvZ3JhbSYgcHJvZ3JhbSwgR0NHTHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDR0x1aW50
IHVuaWZvcm1CbG9ja0JpbmRpbmcpCiB7CiAjaWYgVVNFKEFOR0xFKQotICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoInVuaWZvcm1CbG9ja0Jp
bmRpbmciLCAmcHJvZ3JhbSkpCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAh
dmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigidW5pZm9ybUJsb2NrQmluZGluZyIsICZwcm9n
cmFtKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fY29udGV4dC0+dW5pZm9ybUJsb2NrQmluZGlu
Zyhwcm9ncmFtLm9iamVjdCgpLCB1bmlmb3JtQmxvY2tJbmRleCwgdW5pZm9ybUJsb2NrQmluZGlu
Zyk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCBhMjMwM2Y1OGYzNzUwOTdhNjBiNzY0YzM4
OWM2MmJkZWQ1NThjYzM5Li43ZDA5YjViMmE5MjAyYzQyZTM4YTBhODc1MjQyMTJjMjFjMWM0ZTk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTMwNiw3ICsxMzA2LDcgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjphY3RpdmVUZXh0dXJlKEdDR0xlbnVtIHRleHR1cmUpCiAKIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YXR0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSwgV2ViR0xTaGFkZXIqIHNoYWRlcikKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJhdHRhY2hTaGFkZXIiLCBwcm9ncmFtKSB8
fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiYXR0YWNoU2hhZGVyIiwgc2hhZGVyKSkKKyAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVy
KCJhdHRhY2hTaGFkZXIiLCBwcm9ncmFtKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRl
cigiYXR0YWNoU2hhZGVyIiwgc2hhZGVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghcHJv
Z3JhbS0+YXR0YWNoU2hhZGVyKHNoYWRlcikpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAiYXR0YWNoU2hhZGVyIiwgInNo
YWRlciBhdHRhY2htZW50IGFscmVhZHkgaGFzIHNoYWRlciIpOwpAQCAtMTMxOCw3ICsxMzE4LDcg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphdHRhY2hTaGFkZXIoV2ViR0xQcm9n
cmFtKiBwcm9ncmFtLCBXZWJHTFNoYWRlcioKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpiaW5kQXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQ0dMdWludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImJpbmRBdHRyaWJMb2NhdGlvbiIsIHByb2dy
YW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xQ
cm9ncmFtT3JTaGFkZXIoImJpbmRBdHRyaWJMb2NhdGlvbiIsIHByb2dyYW0pKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKCF2YWxpZGF0ZUxvY2F0aW9uTGVuZ3RoKCJiaW5kQXR0cmliTG9jYXRp
b24iLCBuYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY5Myw3ICsxNjkzLDcgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb2xvck1hc2soR0NHTGJvb2xlYW4gcmVkLCBHQ0dM
Ym9vbGVhbiBncmVlbiwgR0MKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjb21w
aWxlU2hhZGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiY29tcGlsZVNoYWRlciIsIHNoYWRl
cikpCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFBy
b2dyYW1PclNoYWRlcigiY29tcGlsZVNoYWRlciIsIHNoYWRlcikpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXIob2JqZWN0T3JaZXJvKHNoYWRlcikpOwogICAg
IEdDR0xpbnQgdmFsdWU7CkBAIC0yMDkxLDcgKzIwOTEsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRlcHRoUmFuZ2UoR0NHTGZsb2F0IHpOZWFyLCBHQ0dMZmxvYXQgekZhcikK
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXRhY2hTaGFkZXIoV2ViR0xQcm9n
cmFtKiBwcm9ncmFtLCBXZWJHTFNoYWRlciogc2hhZGVyKQogewotICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImRldGFjaFNoYWRlciIsIHBy
b2dyYW0pIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJkZXRhY2hTaGFkZXIiLCBzaGFkZXIpKQor
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFt
T3JTaGFkZXIoImRldGFjaFNoYWRlciIsIHByb2dyYW0pIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3Jh
bU9yU2hhZGVyKCJkZXRhY2hTaGFkZXIiLCBzaGFkZXIpKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKCFwcm9ncmFtLT5kZXRhY2hTaGFkZXIoc2hhZGVyKSkgewogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJkZXRhY2hTaGFk
ZXIiLCAic2hhZGVyIG5vdCBhdHRhY2hlZCIpOwpAQCAtMjMwNCw4ICsyMzA0LDMxIEBAIGJvb2wg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVWZXJ0ZXhBdHRyaWJ1dGVzKHVuc2ln
bmVkIGVsZW1lbnRDb3VudCwKIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZVdlYkdMT2JqZWN0KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgV2ViR0xPYmplY3QqIG9i
amVjdCkKIHsKLSAgICBpZiAoIW9iamVjdCB8fCAhb2JqZWN0LT5vYmplY3QoKSkgewotICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgZnVu
Y3Rpb25OYW1lLCAibm8gb2JqZWN0IG9yIG9iamVjdCBkZWxldGVkIik7CisgICAgaWYgKCFvYmpl
Y3QpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFM
SURfVkFMVUUsIGZ1bmN0aW9uTmFtZSwgIm9iamVjdCBpcyBudWxsIik7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgaWYgKCFvYmplY3QtPm9iamVjdCgpKSB7CisgICAgICAgIHN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgZnVu
Y3Rpb25OYW1lLCAiYXR0ZW1wdCB0byB1c2UgYSBkZWxldGVkIG9iamVjdCIpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghb2JqZWN0LT52YWxpZGF0ZShjb250ZXh0R3Jv
dXAoKSwgKnRoaXMpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dEdMOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAib2JqZWN0IGRvZXMgbm90IGJl
bG9uZyB0byB0aGlzIGNvbnRleHQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgV2ViR0xP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgZnVuY3Rpb25OYW1lLCAi
cHJvZ3JhbSBvciBzaGFkZXIgaXMgbnVsbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIC8vIFVzaW5nIGEgZGVsZXRlZCBwcm9ncmFtIG9yIHNoYWRlciBpcyBJTlZBTElEX1ZB
TFVFIGluc3RlYWQgb2YgSU5WQUxJRF9PUEVSQVRJT04gYXMgZm9yCisgICAgLy8gb3RoZXIgV2Vi
R0wgb2JqZWN0cy4KKyAgICBpZiAoIW9iamVjdC0+b2JqZWN0KCkpIHsKKyAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfVkFMVUUsIGZ1bmN0aW9uTmFt
ZSwgImF0dGVtcHQgdG8gdXNlIGEgZGVsZXRlZCBwcm9ncmFtIG9yIHNoYWRlciIpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghb2JqZWN0LT52YWxpZGF0ZShjb250ZXh0
R3JvdXAoKSwgKnRoaXMpKSB7CkBAIC0yNzI3LDcgKzI3NTAsNyBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdlbmVyYXRlTWlwbWFwKEdDR0xlbnVtIHRhcmdldCkKIAogUmVmUHRy
PFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlQXR0
cmliKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0NHTHVpbnQgaW5kZXgpCiB7Ci0gICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0QWN0aXZl
QXR0cmliIiwgcHJvZ3JhbSkpCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAh
dmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigiZ2V0QWN0aXZlQXR0cmliIiwgcHJvZ3JhbSkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdyYXBoaWNzQ29udGV4dEdMOjpBY3RpdmVJ
bmZvIGluZm87CiAgICAgaWYgKCFtX2NvbnRleHQtPmdldEFjdGl2ZUF0dHJpYihvYmplY3RPclpl
cm8ocHJvZ3JhbSksIGluZGV4LCBpbmZvKSkKQEAgLTI3NDAsNyArMjc2Myw3IEBAIFJlZlB0cjxX
ZWJHTEFjdGl2ZUluZm8+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEFjdGl2ZUF0dHJp
YihXZWJHTFByb2dyYW0qCiAKIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQ0dM
dWludCBpbmRleCkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxp
ZGF0ZVdlYkdMT2JqZWN0KCJnZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCisgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigi
Z2V0QWN0aXZlVW5pZm9ybSIsIHByb2dyYW0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBHcmFwaGljc0NvbnRleHRHTDo6QWN0aXZlSW5mbyBpbmZvOwogICAgIGlmICghbV9jb250ZXh0
LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQpA
QCAtMjc1Nyw3ICsyNzgwLDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIAogT3B0aW9uYWw8
VmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+PiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRBdHRhY2hlZFNoYWRlcnMoV2ViR0xQcm9ncmFtKiBwcm9ncmFtKQogewotICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldEF0dGFjaGVk
U2hhZGVycyIsIHByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwg
IXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImdldEF0dGFjaGVkU2hhZGVycyIsIHByb2dy
YW0pKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgY29uc3QgR0NHTGVudW0g
c2hhZGVyVHlwZXNbXSA9IHsKQEAgLTI3NzUsNyArMjc5OCw3IEBAIE9wdGlvbmFsPFZlY3RvcjxS
ZWZQdHI8V2ViR0xTaGFkZXI+Pj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNo
ZWRTaGFkCiAKIEdDR0xpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0cmliTG9j
YXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0
QXR0cmliTG9jYXRpb24iLCBwcm9ncmFtKSkKKyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJnZXRBdHRyaWJMb2NhdGlvbiIs
IHByb2dyYW0pKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgaWYgKCF2YWxpZGF0ZUxvY2F0aW9u
TGVuZ3RoKCJnZXRBdHRyaWJMb2NhdGlvbiIsIG5hbWUpKQogICAgICAgICByZXR1cm4gLTE7CkBA
IC0zMTE5LDcgKzMxNDIsNyBAQCBXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRQYXJhbWV0ZXIoR0NHTGVudW0gcG5hbWUpCiAKIFdlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQ0dM
ZW51bSBwbmFtZSkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxp
ZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9ncmFtUGFyYW1ldGVyIiwgcHJvZ3JhbSkpCisgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRl
cigiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIHByb2dyYW0pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIEdDR0xpbnQgdmFsdWUgPSAwOwpAQCAtMzE2Myw3ICszMTg2LDcgQEAgV2ViR0xB
bnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFBy
b2dyYW0qIHByb2dyYW0sIEcKIAogU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKIHsKLSAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9ncmFtSW5m
b0xvZyIsIHByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImdldFByb2dyYW1JbmZvTG9nIiwgcHJvZ3JhbSkp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2Nv
bnRleHQtPmdldFByb2dyYW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQpAQCAt
MzIzNSw3ICszMjU4LDcgQEAgV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDR0xlbnVtIHRhcmdldCwgR0MKIAogV2ViR0xBbnkgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiBz
aGFkZXIsIEdDR0xlbnVtIHBuYW1lKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFNoYWRlclBhcmFtZXRlciIsIHNoYWRlcikp
CisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dy
YW1PclNoYWRlcigiZ2V0U2hhZGVyUGFyYW1ldGVyIiwgc2hhZGVyKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgR0NHTGludCB2YWx1ZSA9IDA7CiAgICAgc3dpdGNoIChwbmFtZSkgewpA
QCAtMzI1NSw3ICszMjc4LDcgQEAgV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIsIEdDR0wKIAogU3RyaW5nIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlckluZm9Mb2coV2ViR0xTaGFkZXIqIHNo
YWRlcikKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdl
YkdMT2JqZWN0KCJnZXRTaGFkZXJJbmZvTG9nIiwgc2hhZGVyKSkKKyAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJnZXRTaGFk
ZXJJbmZvTG9nIiwgc2hhZGVyKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIHJldHVy
biBlbnN1cmVOb3ROdWxsKG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhvYmplY3RPclplcm8o
c2hhZGVyKSkpOwogfQpAQCAtMzI5Myw3ICszMzE2LDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0PiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQcmVjaXNp
b24KIAogU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclNvdXJjZShX
ZWJHTFNoYWRlciogc2hhZGVyKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkg
fHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFNoYWRlclNvdXJjZSIsIHNoYWRlcikpCisgICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNo
YWRlcigiZ2V0U2hhZGVyU291cmNlIiwgc2hhZGVyKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKHNoYWRlci0+Z2V0U291cmNlKCkpOwogfQpAQCAt
MzMyOSw3ICszMzUyLDcgQEAgV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VGV4UGFyYW1ldGVyKEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gcG4KIAogV2ViR0xBbnkgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0s
IGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiB1bmlmb3JtTG9jYXRpb24pCiB7Ci0gICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5p
Zm9ybSIsIHByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImdldFVuaWZvcm0iLCBwcm9ncmFtKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCF1bmlmb3JtTG9jYXRpb24gfHwgdW5pZm9ybUxv
Y2F0aW9uLT5wcm9ncmFtKCkgIT0gcHJvZ3JhbSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRVbmlmb3JtIiwgIm5v
IHVuaWZvcm1sb2NhdGlvbiBvciBub3QgdmFsaWQgZm9yIHRoaXMgcHJvZ3JhbSIpOwpAQCAtMzUy
Nyw3ICszNTUwLDcgQEAgV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5p
Zm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkcKIAogUmVmUHRyPFdlYkdMVW5p
Zm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRp
b24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5p
Zm9ybUxvY2F0aW9uIiwgcHJvZ3JhbSkpCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmco
KSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigiZ2V0VW5pZm9ybUxvY2F0aW9uIiwg
cHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICghdmFsaWRhdGVMb2Nh
dGlvbkxlbmd0aCgiZ2V0VW5pZm9ybUxvY2F0aW9uIiwgbmFtZSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtMzc3Nyw3ICszODAwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpsaW5rUHJvZ3JhbShXZWJHTFByb2dyYW0qIHByb2dyYW0pCiAKIGJvb2wgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6bGlua1Byb2dyYW1XaXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9j
YXRpb25zKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJsaW5rUHJvZ3JhbSIsIHByb2dyYW0p
KQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xQcm9n
cmFtT3JTaGFkZXIoImxpbmtQcm9ncmFtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4gdmVydGV4U2hhZGVyID0gcHJvZ3JhbS0+Z2V0
QXR0YWNoZWRTaGFkZXIoR3JhcGhpY3NDb250ZXh0R0w6OlZFUlRFWF9TSEFERVIpOwpAQCAtNDI3
NCw3ICs0Mjk3LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzY2lzc29yKEdD
R0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEcKIAogdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpzaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlciwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAh
dmFsaWRhdGVXZWJHTE9iamVjdCgic2hhZGVyU291cmNlIiwgc2hhZGVyKSkKKyAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJz
aGFkZXJTb3VyY2UiLCBzaGFkZXIpKQogICAgICAgICByZXR1cm47CiAjaWYgVVNFKEFOR0xFKQog
ICAgIG1fY29udGV4dC0+c2hhZGVyU291cmNlKG9iamVjdE9yWmVybyhzaGFkZXIpLCBzdHJpbmcp
OwpAQCAtNTc4Nyw3ICs1ODEwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1
c2VQcm9ncmFtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjp2YWxpZGF0ZVByb2dyYW0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtKQogewotICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoInZh
bGlkYXRlUHJvZ3JhbSIsIHByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoInZhbGlkYXRlUHJvZ3JhbSIsIHBy
b2dyYW0pKQogICAgICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0LT52YWxpZGF0ZVByb2dyYW0o
b2JqZWN0T3JaZXJvKHByb2dyYW0pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA3MTFlY2QxMGE1YzYz
NjIxNjllNTNmN2ZjYjYzOGIyNDZmMzI1YmQ1Li45YzA5YTA1NDZmMjhjNGJmMzY3ZGE2ZTlhZWMx
ODQ5ZGU4NGQ3YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC00NjEsNiArNDYxLDcgQEAgcHJvdGVjdGVk
OgogICAgIGJvb2wgdmFsaWRhdGVWZXJ0ZXhBdHRyaWJ1dGVzKHVuc2lnbmVkIGVsZW1lbnRDb3Vu
dCwgdW5zaWduZWQgcHJpbWl0aXZlQ291bnQgPSAwKTsKIAogICAgIGJvb2wgdmFsaWRhdGVXZWJH
TE9iamVjdChjb25zdCBjaGFyKiwgV2ViR0xPYmplY3QqKTsKKyAgICBib29sIHZhbGlkYXRlV2Vi
R0xQcm9ncmFtT3JTaGFkZXIoY29uc3QgY2hhciosIFdlYkdMT2JqZWN0Kik7CiAKICNpZiAhVVNF
KEFOR0xFKQogICAgIGJvb2wgdmFsaWRhdGVEcmF3QXJyYXlzKGNvbnN0IGNoYXIqIGZ1bmN0aW9u
TmFtZSwgR0NHTGVudW0gbW9kZSwgR0NHTGludCBmaXJzdCwgR0NHTHNpemVpIGNvdW50LCBHQ0dM
c2l6ZWkgcHJpbWNvdW50KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>