<?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>198037</bug_id>
          
          <creation_ts>2019-05-20 05:31:36 -0700</creation_ts>
          <short_desc>[GLIB] Crash when instantiating a js object registered with jsc_context_register_class on window object cleared</short_desc>
          <delta_ts>2019-05-20 07:54:52 -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>JavaScriptCore</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>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agomez</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1537562</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-20 05:31:36 -0700</bug_when>
    <thetext>This happens because JSCClass is keeping a pointer to the JSCContext used when the class is registered, and the context can be destroyed before the class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537563</commentid>
    <comment_count>1</comment_count>
      <attachid>370249</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-20 05:43:26 -0700</bug_when>
    <thetext>Created attachment 370249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537564</commentid>
    <comment_count>2</comment_count>
      <attachid>370249</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-20 06:19:01 -0700</bug_when>
    <thetext>Comment on attachment 370249
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370249&amp;action=review

&gt; Source/JavaScriptCore/API/glib/JSCClass.cpp:346
&gt; -            static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
&gt; +            static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)));

Nothing like a good API break to make a change exciting.

I think we can get away with this, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537567</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-20 06:48:11 -0700</bug_when>
    <thetext>Committed r245514: &lt;https://trac.webkit.org/changeset/245514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537568</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-20 06:49:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/50944708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537579</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-05-20 07:54:52 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Comment on attachment 370249 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370249&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/API/glib/JSCClass.cpp:346
&gt; &gt; -            static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
&gt; &gt; +            static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)));
&gt; 
&gt; Nothing like a good API break to make a change exciting.
&gt; 
&gt; I think we can get away with this, though.

Well, if people were using the API that allows registering JS
classes in the wild, we would have had a bug report for this
much earlier. So not many people are using this *for now*, and
I also think this change won&apos;t bite anybody ;-]</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370249</attachid>
            <date>2019-05-20 05:43:26 -0700</date>
            <delta_ts>2019-05-20 06:19:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jsc-class-context.diff</filename>
            <type>text/plain</type>
            <size>16533</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1
bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1
bmN0aW9uLmNwcAppbmRleCA3YmQyYzFhN2I1Yy4uZTIyMmE0MDU3YTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAK
QEAgLTIwNyw3ICsyMDcsNyBAQCBKU09iamVjdFJlZiBKU0NDYWxsYmFja0Z1bmN0aW9uOjpjb25z
dHJ1Y3QoSlNDb250ZXh0UmVmIGNhbGxlckNvbnRleHQsIHNpemVfdCBhcgogICAgIGNhc2UgR19U
WVBFX0JPWEVEOgogICAgIGNhc2UgR19UWVBFX09CSkVDVDoKICAgICAgICAgaWYgKGF1dG8qIHB0
ciA9IHJldHVyblZhbHVlLmRhdGFbMF0udl9wb2ludGVyKQotICAgICAgICAgICAgcmV0dXJuIHRv
UmVmKGpzY0NsYXNzR2V0T3JDcmVhdGVKU1dyYXBwZXIobV9jbGFzcy5nZXQoKSwgcHRyKSk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9SZWYoanNjQ2xhc3NHZXRPckNyZWF0ZUpTV3JhcHBlcihtX2Ns
YXNzLmdldCgpLCBjb250ZXh0LmdldCgpLCBwdHIpKTsKICAgICAgICAgKmV4Y2VwdGlvbiA9IHRv
UmVmKEpTQzo6Y3JlYXRlVHlwZUVycm9yKHRvSlMoanNDb250ZXh0KSwgImNvbnN0cnVjdG9yIHJl
dHVybmVkIG51bGwiX3MpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDbGFzcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3MuY3BwCmluZGV4IDNjMGZhZWQ3YTFjLi40
YzA1NGJlYWI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pT
Q0NsYXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3Mu
Y3BwCkBAIC01NiwxNCArNTYsMTMgQEAgZW51bSB7CiB9OwogCiB0eXBlZGVmIHN0cnVjdCBfSlND
Q2xhc3NQcml2YXRlIHsKLSAgICBKU0NDb250ZXh0KiBjb250ZXh0OworICAgIEpTR2xvYmFsQ29u
dGV4dFJlZiBjb250ZXh0OwogICAgIENTdHJpbmcgbmFtZTsKICAgICBKU0NsYXNzUmVmIGpzQ2xh
c3M7CiAgICAgSlNDQ2xhc3NWVGFibGUqIHZ0YWJsZTsKICAgICBHRGVzdHJveU5vdGlmeSBkZXN0
cm95RnVuY3Rpb247CiAgICAgSlNDQ2xhc3MqIHBhcmVudENsYXNzOwogICAgIEpTQzo6V2VhazxK
U0M6OkpTT2JqZWN0PiBwcm90b3R5cGU7Ci0gICAgSGFzaE1hcDxDU3RyaW5nLCBKU0M6OldlYWs8
SlNDOjpKU09iamVjdD4+IGNvbnN0cnVjdG9yczsKIH0gSlNDQ2xhc3NQcml2YXRlOwogCiBzdHJ1
Y3QgX0pTQ0NsYXNzIHsKQEAgLTI4Myw5ICsyODIsNiBAQCBzdGF0aWMgdm9pZCBqc2NDbGFzc0dl
dFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElELCBHVmFsdWUqIHZhbHVlLCBH
UAogICAgIEpTQ0NsYXNzKiBqc2NDbGFzcyA9IEpTQ19DTEFTUyhvYmplY3QpOwogCiAgICAgc3dp
dGNoIChwcm9wSUQpIHsKLSAgICBjYXNlIFBST1BfQ09OVEVYVDoKLSAgICAgICAgZ192YWx1ZV9z
ZXRfb2JqZWN0KHZhbHVlLCBqc2NDbGFzcy0+cHJpdi0+Y29udGV4dCk7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUFJPUF9OQU1FOgogICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IGpzY0NsYXNzLT5wcml2LT5uYW1lLmRhdGEoKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzAzLDcg
KzI5OSw3IEBAIHN0YXRpYyB2b2lkIGpzY0NsYXNzU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0
LCBndWludCBwcm9wSUQsIGNvbnN0IEdWYWx1ZSogdmFsCiAKICAgICBzd2l0Y2ggKHByb3BJRCkg
ewogICAgIGNhc2UgUFJPUF9DT05URVhUOgotICAgICAgICBqc2NDbGFzcy0+cHJpdi0+Y29udGV4
dCA9IEpTQ19DT05URVhUKGdfdmFsdWVfZ2V0X29iamVjdCh2YWx1ZSkpOworICAgICAgICBqc2ND
bGFzcy0+cHJpdi0+Y29udGV4dCA9IGpzY0NvbnRleHRHZXRKU0NvbnRleHQoSlNDX0NPTlRFWFQo
Z192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBS
T1BfTkFNRToKICAgICAgICAganNjQ2xhc3MtPnByaXYtPm5hbWUgPSBnX3ZhbHVlX2dldF9zdHJp
bmcodmFsdWUpOwpAQCAtMzQ3LDcgKzM0Myw3IEBAIHN0YXRpYyB2b2lkIGpzY19jbGFzc19jbGFz
c19pbml0KEpTQ0NsYXNzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgIkpTQ0NvbnRleHQiLAog
ICAgICAgICAgICAgIkpTQyBDb250ZXh0IiwKICAgICAgICAgICAgIEpTQ19UWVBFX0NPTlRFWFQs
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURX
UklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7CisgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9DT05TVFJVQ1Rf
T05MWSkpKTsKIAogICAgIC8qKgogICAgICAqIEpTQ0NsYXNzOm5hbWU6CkBAIC00OTIsMTEgKzQ4
OCwxMSBAQCBHUmVmUHRyPEpTQ0NsYXNzPiBqc2NDbGFzc0NyZWF0ZShKU0NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBjaGFyKiBuYW1lLCBKU0NDbGFzcwogICAgIEpTQ2xhc3NEZWZpbml0aW9uIHBy
b3RvdHlwZURlZmluaXRpb24gPSBrSlNDbGFzc0RlZmluaXRpb25FbXB0eTsKICAgICBwcm90b3R5
cGVEZWZpbml0aW9uLmNsYXNzTmFtZSA9IHByb3RvdHlwZU5hbWUuZ2V0KCk7CiAgICAgSlNDbGFz
c1JlZiBwcm90b3R5cGVDbGFzcyA9IEpTQ2xhc3NDcmVhdGUoJnByb3RvdHlwZURlZmluaXRpb24p
OwotICAgIHByaXYtPnByb3RvdHlwZSA9IGpzY0NvbnRleHRHZXRPckNyZWF0ZUpTV3JhcHBlcihw
cml2LT5jb250ZXh0LCBwcm90b3R5cGVDbGFzcyk7CisgICAgcHJpdi0+cHJvdG90eXBlID0ganNj
Q29udGV4dEdldE9yQ3JlYXRlSlNXcmFwcGVyKGNvbnRleHQsIHByb3RvdHlwZUNsYXNzKTsKICAg
ICBKU0NsYXNzUmVsZWFzZShwcm90b3R5cGVDbGFzcyk7CiAKICAgICBpZiAocHJpdi0+cGFyZW50
Q2xhc3MpCi0gICAgICAgIEpTT2JqZWN0U2V0UHJvdG90eXBlKGpzY0NvbnRleHRHZXRKU0NvbnRl
eHQocHJpdi0+Y29udGV4dCksIHRvUmVmKHByaXYtPnByb3RvdHlwZS5nZXQoKSksIHRvUmVmKHBy
aXYtPnBhcmVudENsYXNzLT5wcml2LT5wcm90b3R5cGUuZ2V0KCkpKTsKKyAgICAgICAgSlNPYmpl
Y3RTZXRQcm90b3R5cGUoanNjQ29udGV4dEdldEpTQ29udGV4dChjb250ZXh0KSwgdG9SZWYocHJp
di0+cHJvdG90eXBlLmdldCgpKSwgdG9SZWYocHJpdi0+cGFyZW50Q2xhc3MtPnByaXYtPnByb3Rv
dHlwZS5nZXQoKSkpOwogICAgIHJldHVybiBqc2NDbGFzczsKIH0KIApAQCAtNTA1LDE2ICs1MDEs
MTYgQEAgSlNDbGFzc1JlZiBqc2NDbGFzc0dldEpTQ2xhc3MoSlNDQ2xhc3MqIGpzY0NsYXNzKQog
ICAgIHJldHVybiBqc2NDbGFzcy0+cHJpdi0+anNDbGFzczsKIH0KIAotSlNDOjpKU09iamVjdCog
anNjQ2xhc3NHZXRPckNyZWF0ZUpTV3JhcHBlcihKU0NDbGFzcyoganNjQ2xhc3MsIGdwb2ludGVy
IHdyYXBwZWRPYmplY3QpCitKU0M6OkpTT2JqZWN0KiBqc2NDbGFzc0dldE9yQ3JlYXRlSlNXcmFw
cGVyKEpTQ0NsYXNzKiBqc2NDbGFzcywgSlNDQ29udGV4dCogY29udGV4dCwgZ3BvaW50ZXIgd3Jh
cHBlZE9iamVjdCkKIHsKICAgICBKU0NDbGFzc1ByaXZhdGUqIHByaXYgPSBqc2NDbGFzcy0+cHJp
djsKLSAgICByZXR1cm4ganNjQ29udGV4dEdldE9yQ3JlYXRlSlNXcmFwcGVyKHByaXYtPmNvbnRl
eHQsIHByaXYtPmpzQ2xhc3MsIHRvUmVmKHByaXYtPnByb3RvdHlwZS5nZXQoKSksIHdyYXBwZWRP
YmplY3QsIHByaXYtPmRlc3Ryb3lGdW5jdGlvbik7CisgICAgcmV0dXJuIGpzY0NvbnRleHRHZXRP
ckNyZWF0ZUpTV3JhcHBlcihjb250ZXh0LCBwcml2LT5qc0NsYXNzLCB0b1JlZihwcml2LT5wcm90
b3R5cGUuZ2V0KCkpLCB3cmFwcGVkT2JqZWN0LCBwcml2LT5kZXN0cm95RnVuY3Rpb24pOwogfQog
Ci1KU0dsb2JhbENvbnRleHRSZWYganNjQ2xhc3NDcmVhdGVDb250ZXh0V2l0aEpTV3JhcHBlcihK
U0NDbGFzcyoganNjQ2xhc3MsIGdwb2ludGVyIHdyYXBwZWRPYmplY3QpCitKU0dsb2JhbENvbnRl
eHRSZWYganNjQ2xhc3NDcmVhdGVDb250ZXh0V2l0aEpTV3JhcHBlcihKU0NDbGFzcyoganNjQ2xh
c3MsIEpTQ0NvbnRleHQqIGNvbnRleHQsIGdwb2ludGVyIHdyYXBwZWRPYmplY3QpCiB7CiAgICAg
SlNDQ2xhc3NQcml2YXRlKiBwcml2ID0ganNjQ2xhc3MtPnByaXY7Ci0gICAgcmV0dXJuIGpzY0Nv
bnRleHRDcmVhdGVDb250ZXh0V2l0aEpTV3JhcHBlcihwcml2LT5jb250ZXh0LCBwcml2LT5qc0Ns
YXNzLCB0b1JlZihwcml2LT5wcm90b3R5cGUuZ2V0KCkpLCB3cmFwcGVkT2JqZWN0LCBwcml2LT5k
ZXN0cm95RnVuY3Rpb24pOworICAgIHJldHVybiBqc2NDb250ZXh0Q3JlYXRlQ29udGV4dFdpdGhK
U1dyYXBwZXIoY29udGV4dCwgcHJpdi0+anNDbGFzcywgdG9SZWYocHJpdi0+cHJvdG90eXBlLmdl
dCgpKSwgd3JhcHBlZE9iamVjdCwgcHJpdi0+ZGVzdHJveUZ1bmN0aW9uKTsKIH0KIAogdm9pZCBq
c2NDbGFzc0ludmFsaWRhdGUoSlNDQ2xhc3MqIGpzY0NsYXNzKQpAQCAtNTYyLDE3ICs1NTgsMTcg
QEAgc3RhdGljIEdSZWZQdHI8SlNDVmFsdWU+IGpzY0NsYXNzQ3JlYXRlQ29uc3RydWN0b3IoSlND
Q2xhc3MqIGpzY0NsYXNzLCBjb25zdCBjaGEKICAgICBlbHNlCiAgICAgICAgIGNsb3N1cmUgPSBh
ZG9wdEdSZWYoZ19jY2xvc3VyZV9uZXcoY2FsbGJhY2ssIHVzZXJEYXRhLCByZWludGVycHJldF9j
YXN0PEdDbG9zdXJlTm90aWZ5PihyZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGVzdHJveU5v
dGlmeSkpKSk7CiAgICAgSlNDQ2xhc3NQcml2YXRlKiBwcml2ID0ganNjQ2xhc3MtPnByaXY7Ci0g
ICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGpzY0NvbnRleHRHZXRKU0NvbnRleHQocHJp
di0+Y29udGV4dCkpOworICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhwcml2LT5jb250
ZXh0KTsKICAgICBKU0M6OlZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9ja2VyKHZtKTsKICAgICBhdXRvKiBmdW5jdGlvbk9iamVjdCA9IEpTQzo6SlNDQ2FsbGJh
Y2tGdW5jdGlvbjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIFN0cmlu
Zzo6ZnJvbVVURjgobmFtZSksCiAgICAgICAgIEpTQzo6SlNDQ2FsbGJhY2tGdW5jdGlvbjo6VHlw
ZTo6Q29uc3RydWN0b3IsIGpzY0NsYXNzLCBXVEZNb3ZlKGNsb3N1cmUpLCByZXR1cm5UeXBlLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpKTsKLSAgICBhdXRvIGNvbnN0cnVjdG9yID0ganNjQ29udGV4dEdl
dE9yQ3JlYXRlVmFsdWUocHJpdi0+Y29udGV4dCwgdG9SZWYoZnVuY3Rpb25PYmplY3QpKTsKLSAg
ICBHUmVmUHRyPEpTQ1ZhbHVlPiBwcm90b3R5cGUgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGVWYWx1
ZShwcml2LT5jb250ZXh0LCB0b1JlZihwcml2LT5wcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBhdXRv
IGNvbnRleHQgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGUocHJpdi0+Y29udGV4dCk7CisgICAgYXV0
byBjb25zdHJ1Y3RvciA9IGpzY0NvbnRleHRHZXRPckNyZWF0ZVZhbHVlKGNvbnRleHQuZ2V0KCks
IHRvUmVmKGZ1bmN0aW9uT2JqZWN0KSk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcHJvdG90eXBl
ID0ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUoY29udGV4dC5nZXQoKSwgdG9SZWYocHJpdi0+
cHJvdG90eXBlLmdldCgpKSk7CiAgICAgYXV0byBub25FbnVtZXJhYmxlID0gc3RhdGljX2Nhc3Q8
SlNDVmFsdWVQcm9wZXJ0eUZsYWdzPihKU0NfVkFMVUVfUFJPUEVSVFlfQ09ORklHVVJBQkxFIHwg
SlNDX1ZBTFVFX1BST1BFUlRZX1dSSVRBQkxFKTsKICAgICBqc2NfdmFsdWVfb2JqZWN0X2RlZmlu
ZV9wcm9wZXJ0eV9kYXRhKGNvbnN0cnVjdG9yLmdldCgpLCAicHJvdG90eXBlIiwgbm9uRW51bWVy
YWJsZSwgcHJvdG90eXBlLmdldCgpKTsKICAgICBqc2NfdmFsdWVfb2JqZWN0X2RlZmluZV9wcm9w
ZXJ0eV9kYXRhKHByb3RvdHlwZS5nZXQoKSwgImNvbnN0cnVjdG9yIiwgbm9uRW51bWVyYWJsZSwg
Y29uc3RydWN0b3IuZ2V0KCkpOwotICAgIHByaXYtPmNvbnN0cnVjdG9ycy5zZXQobmFtZSwgZnVu
Y3Rpb25PYmplY3QpOwogICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKIH0KIApAQCAtNzExLDEzICs3
MDcsMTQgQEAgc3RhdGljIHZvaWQganNjQ2xhc3NBZGRNZXRob2QoSlNDQ2xhc3MqIGpzY0NsYXNz
LCBjb25zdCBjaGFyKiBuYW1lLCBHQ2FsbGJhY2sgY2EKIHsKICAgICBKU0NDbGFzc1ByaXZhdGUq
IHByaXYgPSBqc2NDbGFzcy0+cHJpdjsKICAgICBHUmVmUHRyPEdDbG9zdXJlPiBjbG9zdXJlID0g
YWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRlcnByZXRf
Y2FzdDxHQ2xvc3VyZU5vdGlmeT4ocmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRlc3Ryb3lO
b3RpZnkpKSkpOwotICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhqc2NDb250ZXh0R2V0
SlNDb250ZXh0KHByaXYtPmNvbnRleHQpKTsKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IHRv
SlMocHJpdi0+Y29udGV4dCk7CiAgICAgSlNDOjpWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CiAgICAgYXV0byogZnVuY3Rpb25PYmplY3QgPSB0
b1JlZihKU0M6OkpTQ0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBTdHJpbmc6OmZyb21VVEY4KG5hbWUpLAogICAgICAgICBKU0M6OkpTQ0Nh
bGxiYWNrRnVuY3Rpb246OlR5cGU6Ok1ldGhvZCwganNjQ2xhc3MsIFdURk1vdmUoY2xvc3VyZSks
IHJldHVyblR5cGUsIFdURk1vdmUocGFyYW1ldGVycykpKTsKLSAgICBhdXRvIG1ldGhvZCA9IGpz
Y0NvbnRleHRHZXRPckNyZWF0ZVZhbHVlKHByaXYtPmNvbnRleHQsIGZ1bmN0aW9uT2JqZWN0KTsK
LSAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBwcm90b3R5cGUgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGVW
YWx1ZShwcml2LT5jb250ZXh0LCB0b1JlZihwcml2LT5wcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGUocHJpdi0+Y29udGV4dCk7CisgICAg
YXV0byBtZXRob2QgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGVWYWx1ZShjb250ZXh0LmdldCgpLCBm
dW5jdGlvbk9iamVjdCk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcHJvdG90eXBlID0ganNjQ29u
dGV4dEdldE9yQ3JlYXRlVmFsdWUoY29udGV4dC5nZXQoKSwgdG9SZWYocHJpdi0+cHJvdG90eXBl
LmdldCgpKSk7CiAgICAgYXV0byBub25FbnVtZXJhYmxlID0gc3RhdGljX2Nhc3Q8SlNDVmFsdWVQ
cm9wZXJ0eUZsYWdzPihKU0NfVkFMVUVfUFJPUEVSVFlfQ09ORklHVVJBQkxFIHwgSlNDX1ZBTFVF
X1BST1BFUlRZX1dSSVRBQkxFKTsKICAgICBqc2NfdmFsdWVfb2JqZWN0X2RlZmluZV9wcm9wZXJ0
eV9kYXRhKHByb3RvdHlwZS5nZXQoKSwgbmFtZSwgbm9uRW51bWVyYWJsZSwgbWV0aG9kLmdldCgp
KTsKIH0KQEAgLTg2Miw2ICs4NTksNyBAQCB2b2lkIGpzY19jbGFzc19hZGRfcHJvcGVydHkoSlND
Q2xhc3MqIGpzY0NsYXNzLCBjb25zdCBjaGFyKiBuYW1lLCBHVHlwZSBwcm9wZXJ0eQogICAgIEpT
Q0NsYXNzUHJpdmF0ZSogcHJpdiA9IGpzY0NsYXNzLT5wcml2OwogICAgIGdfcmV0dXJuX2lmX2Zh
aWwocHJpdi0+Y29udGV4dCk7CiAKLSAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBwcm90b3R5cGUgPSBq
c2NDb250ZXh0R2V0T3JDcmVhdGVWYWx1ZShwcml2LT5jb250ZXh0LCB0b1JlZihwcml2LT5wcm90
b3R5cGUuZ2V0KCkpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGUo
cHJpdi0+Y29udGV4dCk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcHJvdG90eXBlID0ganNjQ29u
dGV4dEdldE9yQ3JlYXRlVmFsdWUoY29udGV4dC5nZXQoKSwgdG9SZWYocHJpdi0+cHJvdG90eXBl
LmdldCgpKSk7CiAgICAganNjX3ZhbHVlX29iamVjdF9kZWZpbmVfcHJvcGVydHlfYWNjZXNzb3Io
cHJvdG90eXBlLmdldCgpLCBuYW1lLCBKU0NfVkFMVUVfUFJPUEVSVFlfQ09ORklHVVJBQkxFLCBw
cm9wZXJ0eVR5cGUsIGdldHRlciwgc2V0dGVyLCB1c2VyRGF0YSwgZGVzdHJveU5vdGlmeSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3NQcml2
YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3NQcml2YXRlLmgK
aW5kZXggODRhNWQ0YjA4YTYuLjYwNWRhZjUyNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3NQcml2YXRlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9nbGliL0pTQ0NsYXNzUHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw2IEBACiAKIEdS
ZWZQdHI8SlNDQ2xhc3M+IGpzY0NsYXNzQ3JlYXRlKEpTQ0NvbnRleHQqLCBjb25zdCBjaGFyKiwg
SlNDQ2xhc3MqLCBKU0NDbGFzc1ZUYWJsZSosIEdEZXN0cm95Tm90aWZ5KTsKIEpTQ2xhc3NSZWYg
anNjQ2xhc3NHZXRKU0NsYXNzKEpTQ0NsYXNzKik7Ci1KU0M6OkpTT2JqZWN0KiBqc2NDbGFzc0dl
dE9yQ3JlYXRlSlNXcmFwcGVyKEpTQ0NsYXNzKiwgZ3BvaW50ZXIpOwotSlNHbG9iYWxDb250ZXh0
UmVmIGpzY0NsYXNzQ3JlYXRlQ29udGV4dFdpdGhKU1dyYXBwZXIoSlNDQ2xhc3MqLCBncG9pbnRl
cik7CitKU0M6OkpTT2JqZWN0KiBqc2NDbGFzc0dldE9yQ3JlYXRlSlNXcmFwcGVyKEpTQ0NsYXNz
KiwgSlNDQ29udGV4dCosIGdwb2ludGVyKTsKK0pTR2xvYmFsQ29udGV4dFJlZiBqc2NDbGFzc0Ny
ZWF0ZUNvbnRleHRXaXRoSlNXcmFwcGVyKEpTQ0NsYXNzKiwgSlNDQ29udGV4dCosIGdwb2ludGVy
KTsKIHZvaWQganNjQ2xhc3NJbnZhbGlkYXRlKEpTQ0NsYXNzKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5jcHAKaW5kZXggMzdlYWVlYmIzYTguLmUwMWU5
NzBjN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQu
Y3BwCkBAIC04NzgsNyArODc4LDcgQEAgSlNDVmFsdWUqIGpzY19jb250ZXh0X2V2YWx1YXRlX2lu
X29iamVjdChKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjb2RlLAogICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKG9iamVjdCAmJiAhKm9iamVjdCwgbnVsbHB0cik7CiAKICAgICBKU1Jl
dGFpblB0cjxKU0dsb2JhbENvbnRleHRSZWY+IG9iamVjdENvbnRleHQoQWRvcHQsCi0gICAgICAg
IGluc3RhbmNlID8ganNjQ2xhc3NDcmVhdGVDb250ZXh0V2l0aEpTV3JhcHBlcihvYmplY3RDbGFz
cywgaW5zdGFuY2UpIDogSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChqc2NWaXJ0dWFsTWFj
aGluZUdldENvbnRleHRHcm91cChjb250ZXh0LT5wcml2LT52bS5nZXQoKSksIG51bGxwdHIpKTsK
KyAgICAgICAgaW5zdGFuY2UgPyBqc2NDbGFzc0NyZWF0ZUNvbnRleHRXaXRoSlNXcmFwcGVyKG9i
amVjdENsYXNzLCBjb250ZXh0LCBpbnN0YW5jZSkgOiBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdy
b3VwKGpzY1ZpcnR1YWxNYWNoaW5lR2V0Q29udGV4dEdyb3VwKGNvbnRleHQtPnByaXYtPnZtLmdl
dCgpKSwgbnVsbHB0cikpOwogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhvYmplY3RD
b250ZXh0LmdldCgpKTsKICAgICBKU0M6OlZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byog
anNPYmplY3QgPSB2bS52bUVudHJ5R2xvYmFsT2JqZWN0KGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5jcHAKaW5kZXggNzZiODkyZmVhMzAuLjVlMTc3NDk1
ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5jcHAKQEAg
LTYwMiw3ICs2MDIsNyBAQCBKU0NWYWx1ZSoganNjX3ZhbHVlX25ld19vYmplY3QoSlNDQ29udGV4
dCogY29udGV4dCwgZ3BvaW50ZXIgaW5zdGFuY2UsIEpTQ0NsYXNzKgogICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKEpTQ19JU19DT05URVhUKGNvbnRleHQpLCBudWxscHRyKTsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCghaW5zdGFuY2UgfHwgSlNDX0lTX0NMQVNTKGpzY0NsYXNzKSwgbnVsbHB0
cik7CiAKLSAgICByZXR1cm4ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUoY29udGV4dCwgaW5z
dGFuY2UgPyB0b1JlZihqc2NDbGFzc0dldE9yQ3JlYXRlSlNXcmFwcGVyKGpzY0NsYXNzLCBpbnN0
YW5jZSkpIDogSlNPYmplY3RNYWtlKGpzY0NvbnRleHRHZXRKU0NvbnRleHQoY29udGV4dCksIG51
bGxwdHIsIG51bGxwdHIpKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuIGpzY0NvbnRleHRHZXRPckNy
ZWF0ZVZhbHVlKGNvbnRleHQsIGluc3RhbmNlID8gdG9SZWYoanNjQ2xhc3NHZXRPckNyZWF0ZUpT
V3JhcHBlcihqc2NDbGFzcywgY29udGV4dCwgaW5zdGFuY2UpKSA6IEpTT2JqZWN0TWFrZShqc2ND
b250ZXh0R2V0SlNDb250ZXh0KGNvbnRleHQpLCBudWxscHRyLCBudWxscHRyKSkubGVha1JlZigp
OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDExNDQwMDkwMjI2Li44Y2M5
ODA0NDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTkt
MDUtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHTElCXSBDcmFzaCB3aGVuIGluc3RhbnRpYXRpbmcgYSBqcyBvYmplY3QgcmVnaXN0ZXJl
ZCB3aXRoIGpzY19jb250ZXh0X3JlZ2lzdGVyX2NsYXNzIG9uIHdpbmRvdyBvYmplY3QgY2xlYXJl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MDM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBo
YXBwZW5zIGJlY2F1c2UgSlNDQ2xhc3MgaXMga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIEpTQ0Nv
bnRleHQgdXNlZCB3aGVuIHRoZSBjbGFzcyBpcyByZWdpc3RlcmVkLCBhbmQgdGhlCisgICAgICAg
IGNvbnRleHQgY2FuIGJlIGRlc3Ryb3llZCBiZWZvcmUgdGhlIGNsYXNzLiBXZSBjYW4ndCBhIHJl
ZmVyZW5jZSB0byB0aGUgY29udGV4dCwgYmVjYXVzZSB3ZSBkb24ndCByZWFsbHkgd2FudCB0bwor
ICAgICAgICBrZWVwIGl0IGFsaXZlLiBUaGUgbGlmZSBvZiB0aGUgSlNDQ2xhc3MgaXMgbm90IGF0
dGFjaGVkIHRvIHRoZSBKU0NDb250ZXh0LCBidXQgdG8gaXRzIHdyYXBwZWQgZ2xvYmFsIGNvbnRl
eHQsIHNvCisgICAgICAgIHdlIGNhbiBrZWVwIGEgcG9pbnRlciB0byB0aGUgSlNHbG9iYWxDb250
ZXh0UmVmIGluc3RlYWQgYW5kIGNyZWF0ZSBhIG5ldyBKU0NDb250ZXh0IHdyYXBwaW5nIGl0IHdo
ZW4KKyAgICAgICAgbmVlZGVkLiBUaGlzIHBhdGNoIGlzIGFsc28gbWFraW5nIHRoZSBjb250ZXh0
IHByb3BlcnR5IG9mIEpTQ0NsYXNzIG5vbi1yZWFkYWJsZSwgd2hpY2ggd2FzIGFsd2F5cyB0aGUg
aW50ZW50aW9uLAorICAgICAgICB0aGF0J3Mgd2h5IHRoZXJlIGlzbid0IGEgcHVibGljIGdldHRl
ciBpbiB0aGUgQVBJLgorCisgICAgICAgICogQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkpTQ0NhbGxiYWNrRnVuY3Rpb246OmNvbnN0cnVjdCk6IFBhc3Mg
dGhlIGNvbnRleHQgdG8ganNjQ2xhc3NHZXRPckNyZWF0ZUpTV3JhcHBlcigpLgorICAgICAgICAq
IEFQSS9nbGliL0pTQ0NsYXNzLmNwcDoKKyAgICAgICAgKGpzY0NsYXNzR2V0UHJvcGVydHkpOiBS
ZW1vdmUgdGhlIGdldHRlciBmb3IgY29udGV4dCBwcm9wZXJ0eS4KKyAgICAgICAgKGpzY0NsYXNz
U2V0UHJvcGVydHkpOiBHZXQgdGhlIEpTR2xvYmFsQ29udGV4dFJlZiBmcm9tIHRoZSBnaXZlbiBK
U0NDb250ZXh0LgorICAgICAgICAoanNjX2NsYXNzX2NsYXNzX2luaXQpOiBNYWtlIGNvbnRleHQg
d3JpdGFibGUgb25seS4KKyAgICAgICAgKGpzY0NsYXNzQ3JlYXRlKTogVXNlIHRoZSBwYXNzZWQg
aW4gY29udGV4dCBpbnN0ZWFkIG9mIHRoZSBtZW1iZXIuCisgICAgICAgIChqc2NDbGFzc0dldE9y
Q3JlYXRlSlNXcmFwcGVyKTogSXQgcmVjZWl2ZXMgbm93IHRoZSBjb250ZXh0IGFzIHBhcmFtZXRl
ci4KKyAgICAgICAgKGpzY0NsYXNzQ3JlYXRlQ29udGV4dFdpdGhKU1dyYXBwZXIpOiBEaXR0by4K
KyAgICAgICAgKGpzY0NsYXNzQ3JlYXRlQ29uc3RydWN0b3IpOiBHZXQgb3IgY3JlYXRlIGEgSlND
Q29udGV4dCBmb3Igb3VyIEpTR2xvYmFsQ29udGV4dFJlZi4KKyAgICAgICAgKGpzY0NsYXNzQWRk
TWV0aG9kKTogRGl0dG8uCisgICAgICAgIChqc2NfY2xhc3NfYWRkX3Byb3BlcnR5KTogRGl0dG8u
CisgICAgICAgICogQVBJL2dsaWIvSlNDQ2xhc3NQcml2YXRlLmg6CisgICAgICAgICogQVBJL2ds
aWIvSlNDQ29udGV4dC5jcHA6CisgICAgICAgIChqc2NfY29udGV4dF9ldmFsdWF0ZV9pbl9vYmpl
Y3QpOiBQYXNzIHRoZSBjb250ZXh0IHRvIGpzY0NsYXNzQ3JlYXRlQ29udGV4dFdpdGhKU1dyYXBw
ZXIoKS4KKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NWYWx1ZS5jcHA6CisgICAgICAgIChqc2NfdmFs
dWVfbmV3X29iamVjdCk6IFBhc3MgdGhlIGNvbnRleHQgdG8ganNjQ2xhc3NHZXRPckNyZWF0ZUpT
V3JhcHBlcigpLgorCiAyMDE5LTA1LTE5ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciAlcGlkIGluIGR1bXBKSVRNZW1vcnlQYXRo
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2Fk
NDMzN2NmYmEuLjlhNzc0YTljYzc0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDUtMjAgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBDcmFzaCB3
aGVuIGluc3RhbnRpYXRpbmcgYSBqcyBvYmplY3QgcmVnaXN0ZXJlZCB3aXRoIGpzY19jb250ZXh0
X3JlZ2lzdGVyX2NsYXNzIG9uIHdpbmRvdyBvYmplY3QgY2xlYXJlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MDM3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCBjYXNlIHRvIGNoZWNr
IHRoZSBjcmFzaCBpcyBmaXhlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHA6CisgICAgICAgICh0ZXN0V2ViRXh0ZW5zaW9u
V2luZG93T2JqZWN0Q2xlYXJlZCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwOgorICAgICAgICAod2luZG93T2JqZWN0Q2xlYXJl
ZCk6CisKIDIwMTktMDUtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHTElCXSBSZXBlYXRpbmcgdGltZXIgaXMgbm90IHN0b3BwZWQgd2hl
biBzdG9wIGlzIGNhbGxlZCBmcm9tIHRoZSBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5k
ZXggOTgxMGE0ZDFkZDguLmY4ZWExODg2YWEwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKQEAgLTE3
OSw2ICsxNzksMTMgQEAgc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbldpbmRvd09iamVjdENs
ZWFyZWQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIKICAgICBnX2Fzc2VydF9ub19l
cnJvcihlcnJvci5nZXQoKSk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiB2YWx1ZVN0cmluZyhXZWJW
aWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CiAg
ICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgIkZvbyIpOworCisgICAg
amF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hl
ZCgidmFyIGYgPSBuZXcgR0ZpbGUoJy4nKTsgZi5wYXRoKCk7IiwgJmVycm9yLm91dFB0cigpKTsK
KyAgICBnX2Fzc2VydF9ub25udWxsKGphdmFzY3JpcHRSZXN1bHQpOworICAgIGdfYXNzZXJ0X25v
X2Vycm9yKGVycm9yLmdldCgpKTsKKyAgICB2YWx1ZVN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6
amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgR1VuaXF1
ZVB0cjxjaGFyPiBjdXJyZW50RGlyZWN0b3J5KGdfZ2V0X2N1cnJlbnRfZGlyKCkpOworICAgIGdf
YXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwgPT0sIGN1cnJlbnREaXJlY3RvcnkuZ2V0
KCkpOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gc2NyaXB0RGlhbG9nQ2FsbGJhY2soV2ViS2l0V2Vi
VmlldyosIFdlYktpdFNjcmlwdERpYWxvZyogZGlhbG9nLCBncG9pbnRlcikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0
LmNwcAppbmRleCA2YmRhZDQ3OWE1Zi4uZWE0NmNjY2ZkMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAK
QEAgLTQyNyw2ICs0MjcsMTEgQEAgc3RhdGljIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZChXZWJL
aXRTY3JpcHRXb3JsZCogd29ybGQsIFdlYktpdFdlYlBhZ2UqIHBhZ2UsIFcKICAgICBnX2Fzc2Vy
dF90cnVlKEpTQ19JU19DT05URVhUKGpzQ29udGV4dC5nZXQoKSkpOwogICAgIEdSZWZQdHI8SlND
VmFsdWU+IGZ1bmN0aW9uID0gYWRvcHRHUmVmKGpzY192YWx1ZV9uZXdfZnVuY3Rpb24oanNDb250
ZXh0LmdldCgpLCAiZWNobyIsIEdfQ0FMTEJBQ0soZWNob0NhbGxiYWNrKSwgTlVMTCwgTlVMTCwg
R19UWVBFX1NUUklORywgMSwgR19UWVBFX1NUUklORykpOwogICAgIGpzY19jb250ZXh0X3NldF92
YWx1ZShqc0NvbnRleHQuZ2V0KCksICJlY2hvIiwgZnVuY3Rpb24uZ2V0KCkpOworCisgICAgYXV0
byogZmlsZUNsYXNzID0ganNjX2NvbnRleHRfcmVnaXN0ZXJfY2xhc3MoanNDb250ZXh0LmdldCgp
LCAiR0ZpbGUiLCBudWxscHRyLCBudWxscHRyLCBzdGF0aWNfY2FzdDxHRGVzdHJveU5vdGlmeT4o
Z19vYmplY3RfdW5yZWYpKTsKKyAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBjb25zdHJ1Y3RvciA9IGFk
b3B0R1JlZihqc2NfY2xhc3NfYWRkX2NvbnN0cnVjdG9yKGZpbGVDbGFzcywgIkdGaWxlIiwgR19D
QUxMQkFDSyhnX2ZpbGVfbmV3X2Zvcl9wYXRoKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX09C
SkVDVCwgMSwgR19UWVBFX1NUUklORykpOworICAgIGpzY19jbGFzc19hZGRfbWV0aG9kKGZpbGVD
bGFzcywgInBhdGgiLCBHX0NBTExCQUNLKGdfZmlsZV9nZXRfcGF0aCksIG51bGxwdHIsIG51bGxw
dHIsIEdfVFlQRV9TVFJJTkcsIDAsIEdfVFlQRV9OT05FKTsKKyAgICBqc2NfY29udGV4dF9zZXRf
dmFsdWUoanNDb250ZXh0LmdldCgpLCAiR0ZpbGUiLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CiB9CiAK
IHN0YXRpYyBXZWJLaXRXZWJQYWdlKiBnZXRXZWJQYWdlKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uLCB1aW50NjRfdCBwYWdlSUQsIEdEQnVzTWV0aG9kSW52b2NhdGlvbiogaW52b2NhdGlv
bikK
</data>
<flag name="review"
          id="386228"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>