<?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>43232</bug_id>
          
          <creation_ts>2010-07-29 21:29:07 -0700</creation_ts>
          <short_desc>Replace plugins/npruntime/bindings-test.html with a more sophisticated test</short_desc>
          <delta_ts>2010-08-10 22:50:40 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>258052</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-29 21:29:07 -0700</bug_when>
    <thetext>Replace plugins/npruntime/bindings-test.html with a more sophisticated test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258059</commentid>
    <comment_count>1</comment_count>
      <attachid>63031</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-29 21:40:05 -0700</bug_when>
    <thetext>Created attachment 63031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258060</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-29 21:41:40 -0700</bug_when>
    <thetext>Attachment 63031 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKitTools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:57:  PluginTest::NPP_GetValue is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:63:  PluginTest::NPN_CreateObject is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/DumpRenderTree/TestNetscapePlugIn/Tests/PluginScriptableNPObjectInvokeDefault.cpp:26:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/DumpRenderTree/TestNetscapePlugIn/Tests/PluginScriptableNPObjectInvokeDefault.cpp:49:  One space before end of line comments  [whitespace/comments] [5]
WebKitTools/DumpRenderTree/TestNetscapePlugIn/Tests/PluginScriptableNPObjectInvokeDefault.cpp:65:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 5 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258209</commentid>
    <comment_count>3</comment_count>
      <attachid>63031</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-30 08:39:48 -0700</bug_when>
    <thetext>Comment on attachment 63031
Patch

&gt;  2010-07-29  Anders Carlsson  &lt;andersca@apple.com&gt;
&gt;  
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Replace plugins/npruntime/bindings-test.html with a more sophisticated test
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=43232
&gt; +
&gt; +        * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
&gt; +        * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp:
&gt; +        (pluginInvoke):
&gt; +        * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
&gt; +        (PluginTest::create):
&gt; +        (PluginTest::NPP_GetValue):
&gt; +        (PluginTest::NPN_CreateObject):
&gt; +        (PluginTest::createTestFunctions):
&gt; +        * DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
&gt; +        (PluginTest::identifier):
&gt; +        * DumpRenderTree/TestNetscapePlugIn/Tests/DocumentOpenInDestroyStream.cpp:
&gt; +        (DocumentOpenInDestroyStream::DocumentOpenInDestroyStream):
&gt; +        * DumpRenderTree/TestNetscapePlugIn/main.cpp:
&gt; +        (NPP_GetValue):
&gt; +        * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj:
&gt; +        * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
&gt; +        * DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp:
&gt; +        (webkit_test_plugin_get_value):
&gt; +        * GNUmakefile.am:

Can you describe the changes a bit?

&gt; -static bool removeDefaultMethod(PluginObject*, const NPVariant* args, uint32_t argCount, NPVariant* result)
&gt; -{
&gt; -    pluginClass.invokeDefault = 0;
&gt; -    VOID_TO_NPVARIANT(*result);
&gt; -    return true;
&gt; -}

Is it worthwhile to test that a plugin can dynamically remove its invokeDefault implementation? You&apos;ve lost that aspect of the test.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258269</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-30 10:25:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 63031 [details])
&gt; &gt;  2010-07-29  Anders Carlsson  &lt;andersca@apple.com&gt;
&gt; &gt;  
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Replace plugins/npruntime/bindings-test.html with a more sophisticated test
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=43232
&gt; &gt; +
&gt; &gt; +        * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
&gt; &gt; +        * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp:
&gt; &gt; +        (pluginInvoke):
&gt; &gt; +        * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
&gt; &gt; +        (PluginTest::create):
&gt; &gt; +        (PluginTest::NPP_GetValue):
&gt; &gt; +        (PluginTest::NPN_CreateObject):
&gt; &gt; +        (PluginTest::createTestFunctions):
&gt; &gt; +        * DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
&gt; &gt; +        (PluginTest::identifier):
&gt; &gt; +        * DumpRenderTree/TestNetscapePlugIn/Tests/DocumentOpenInDestroyStream.cpp:
&gt; &gt; +        (DocumentOpenInDestroyStream::DocumentOpenInDestroyStream):
&gt; &gt; +        * DumpRenderTree/TestNetscapePlugIn/main.cpp:
&gt; &gt; +        (NPP_GetValue):
&gt; &gt; +        * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj:
&gt; &gt; +        * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
&gt; &gt; +        * DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp:
&gt; &gt; +        (webkit_test_plugin_get_value):
&gt; &gt; +        * GNUmakefile.am:
&gt; 
&gt; Can you describe the changes a bit?
&gt; 

Sure!

&gt; &gt; -static bool removeDefaultMethod(PluginObject*, const NPVariant* args, uint32_t argCount, NPVariant* result)
&gt; &gt; -{
&gt; &gt; -    pluginClass.invokeDefault = 0;
&gt; &gt; -    VOID_TO_NPVARIANT(*result);
&gt; &gt; -    return true;
&gt; &gt; -}
&gt; 
&gt; Is it worthwhile to test that a plugin can dynamically remove its invokeDefault implementation? You&apos;ve lost that aspect of the test.

I don&apos;t think it is, especially not in an OOP model.
&gt; 
&gt; r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258276</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-30 10:35:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64359 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263037</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-10 22:50:40 -0700</bug_when>
    <thetext>Appears to have been landed in http://trac.webkit.org/changeset/64359</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63031</attachid>
            <date>2010-07-29 21:40:05 -0700</date>
            <delta_ts>2010-07-30 08:39:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43232-20100729214003.patch</filename>
            <type>text/plain</type>
            <size>26850</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzM2U5ODdjNWZjZmY0YzRlYmQwMjdkMGNlNzZjZGQ3NzJmZGFlNjdjLi4xNmY2Mjdl
NjYyNmMyMjY1NTZlNTY1ZDhkYTc5NTYyMjNlOTUxZGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDctMjkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHBsdWdp
bnMvbnBydW50aW1lL2JpbmRpbmdzLXRlc3QuaHRtbCB3aXRoIGEgbW9yZSBzb3BoaXN0aWNhdGVk
IHRlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQz
MjMyCisKKyAgICAgICAgKiBwbHVnaW5zL25wcnVudGltZS9iaW5kaW5ncy10ZXN0LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbHVnaW5zL25wcnVudGltZS9iaW5kaW5ncy10ZXN0
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGx1Z2lucy9ucHJ1bnRpbWUvcGx1Z2luLXNjcmlw
dGFibGUtb2JqZWN0LWludm9rZS1kZWZhdWx0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGx1Z2lucy9ucHJ1bnRpbWUvcGx1Z2luLXNjcmlwdGFibGUtb2JqZWN0LWludm9rZS1kZWZh
dWx0Lmh0bWw6IEFkZGVkLgorCiAyMDEwLTA3LTI5ICBWaWN0b3IgV2FuZyAgPHZpY3RvcndAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBjaHJvbWl1bSB0ZXN0IGV4
cGVjdGF0aW9ucyBmb3IgdGVzdDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvbnBy
dW50aW1lL2JpbmRpbmdzLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9u
cHJ1bnRpbWUvYmluZGluZ3MtdGVzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYyNGVkYzc5YTQ0OGIzY2JkZDY3N2Y3NzZlYjQ5ODNhODkzMjBiZWYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGx1
Z2lucy9ucHJ1bnRpbWUvYmluZGluZ3MtdGVzdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw3ICswLDAgQEAKLUFMRVJUOiB0eXBlb2YoY1BsdWdpbik9ZnVuY3Rpb24KLUFMRVJUOiBj
UGx1Z2luKCk9MQotQUxFUlQ6IHR5cGVvZihjUGx1Z2luKT1vYmplY3QKLUFMRVJUOiBjUGx1Z2lu
KCk9VHlwZUVycm9yCi1UaGlzIHBhZ2UgdGVzdHMgaW52b2tpbmcgYXMgZnVuY3Rpb25zIEphdmFT
Y3JpcHQgb2JqZWN0cyB0aGF0IGFyZSBwcm92aWRlZCBieSBwbHVnaW5zLgotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2JpbmRpbmdzLXRlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL2JpbmRpbmdzLXRlc3QuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ1YzVkZTVmYzFkOTJkYmFhZDc3ZDA4MDRiY2IxMGE1ZjFl
ODAzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbHVnaW5zL25wcnVudGltZS9iaW5kaW5ncy10ZXN0Lmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGRv
VGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgLy8gVGVzdCB0aGUgQyBw
bHVnaW4KLSAgICB2YXIgY1BsdWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q1Bs
dWdpbiIpOwotICAgIGlmIChjUGx1Z2luKSB7Ci0gICAgICAgIC8vIFR5cGUgc2hvdWxkIGJlICJm
dW5jdGlvbiIKLSAgICAgICAgYWxlcnQoInR5cGVvZihjUGx1Z2luKT0iICsgdHlwZW9mKGNQbHVn
aW4pKTsKLQotICAgICAgICAvLyBDYWxsaW5nIGNQbHVnaW4oKSBzaG91bGQgcmV0dXJuIDEKLSAg
ICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGNQ
bHVnaW4oKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgcmVzdWx0ID0gZS5u
YW1lOwotICAgICAgICB9Ci0gICAgICAgIGFsZXJ0KCJjUGx1Z2luKCk9IiArIHJlc3VsdCk7Ci0K
LSAgICAgICAgLy8gU3BlY2lhbCBmdW5jdGlvbiB0aGF0IHJlbW92ZXMgY1BsdWdpbidzIGRlZmF1
bHQgbWV0aG9kIGltcGxlbWVudGF0aW9uLiAgVGhlIHJ1bnRpbWUgc2hvdWxkIGNvbnNpZGVyCi0g
ICAgICAgIC8vIGNQbHVnaW4gYW4gIm9iamVjdCIgaWYgaXQgaGFzIG5vIGRlZmF1bHQgbWV0aG9k
LgotICAgICAgICBjUGx1Z2luLnJlbW92ZURlZmF1bHRNZXRob2QoKTsKLQotICAgICAgICAvLyBU
eXBlIHNob3VsZCBiZSAib2JqZWN0IgotICAgICAgICBhbGVydCgidHlwZW9mKGNQbHVnaW4pPSIg
KyB0eXBlb2YoY1BsdWdpbikpOwotCi0gICAgICAgIC8vIENhbGxpbmcgY1BsdWdpbigpIG5vdyBz
aG91bGQgcmFpc2UgYW4gZXhjZXB0aW9uCi0gICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgIHRy
eSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBjUGx1Z2luKCk7Ci0gICAgICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGUubmFtZTsKLSAgICAgICAgfQotICAgICAgICBhbGVy
dCgiY1BsdWdpbigpPSIgKyByZXN1bHQpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJkb1Rlc3QoKTsiPgotPHA+VGhpcyBwYWdlIHRlc3RzIGludm9raW5nIGFz
IGZ1bmN0aW9ucyBKYXZhU2NyaXB0IG9iamVjdHMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgcGx1Z2lu
cy48L3A+Ci08ZW1iZWQgaWQ9InRlc3RDUGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtp
dC10ZXN0LW5ldHNjYXBlIj48L2VtYmVkPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGx1Z2lucy9ucHJ1bnRpbWUvcGx1Z2luLXNjcmlwdGFibGUtb2JqZWN0LWlu
dm9rZS1kZWZhdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1l
L3BsdWdpbi1zY3JpcHRhYmxlLW9iamVjdC1pbnZva2UtZGVmYXVsdC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTdhOTQzYjc3ZWE1Mzg2OWUxYjY3ZDM1YTY3ZjgxZWViYjc0YzQ1OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL3BsdWdpbi1zY3JpcHRh
YmxlLW9iamVjdC1pbnZva2UtZGVmYXVsdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAor
IAorVGhpcyBwYWdlIHRlc3RzIGludm9raW5nIGFzIGZ1bmN0aW9ucyBKYXZhU2NyaXB0IG9iamVj
dHMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgcGx1Z2lucy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgdHlwZW9mKHBsdWdpbldpdGhJbnZva2VEZWZhdWx0KSBpcyAnZnVuY3Rp
b24nCitQQVNTIHBsdWdpbldpdGhJbnZva2VEZWZhdWx0KCkgaXMgMQorUEFTUyB0eXBlb2YocGx1
Z2luV2l0aG91dEludm9rZURlZmF1bHQpIGlzICdvYmplY3QnCitQQVNTIHBsdWdpbldpdGhvdXRJ
bnZva2VEZWZhdWx0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmVzdWx0IG9mIGV4cHJl
c3Npb24gJ3BsdWdpbldpdGhvdXRJbnZva2VEZWZhdWx0JyBbW29iamVjdCBIVE1MRW1iZWRFbGVt
ZW50XV0gaXMgbm90IGEgZnVuY3Rpb24uLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVn
aW5zL25wcnVudGltZS9wbHVnaW4tc2NyaXB0YWJsZS1vYmplY3QtaW52b2tlLWRlZmF1bHQuaHRt
bCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbnBydW50aW1lL3BsdWdpbi1zY3JpcHRhYmxlLW9iamVj
dC1pbnZva2UtZGVmYXVsdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5N2Y1NmExYzJlMjJiZGRkYWEyYmU3
N2M5OGQ2ZDZiN2UxNGFkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5z
L25wcnVudGltZS9wbHVnaW4tc2NyaXB0YWJsZS1vYmplY3QtaW52b2tlLWRlZmF1bHQuaHRtbApA
QCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBkZXNj
cmlwdGlvbignVGhpcyBwYWdlIHRlc3RzIGludm9raW5nIGFzIGZ1bmN0aW9ucyBKYXZhU2NyaXB0
IG9iamVjdHMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgcGx1Z2lucy4nKQorICAgIAorICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworICAgIHBsdWdpbldpdGhJbnZva2VEZWZhdWx0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3BsdWdpbi13aXRoLWludm9rZS1kZWZhdWx0Jyk7CisgICAgCisgICAg
c2hvdWxkQmUoInR5cGVvZihwbHVnaW5XaXRoSW52b2tlRGVmYXVsdCkiLCAiJ2Z1bmN0aW9uJyIp
OworICAgIHNob3VsZEJlKCJwbHVnaW5XaXRoSW52b2tlRGVmYXVsdCgpIiwgIjEiKQorCisgICAg
cGx1Z2luV2l0aG91dEludm9rZURlZmF1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGx1
Z2luLXdpdGhvdXQtaW52b2tlLWRlZmF1bHQnKTsKKyAgICBzaG91bGRCZSgidHlwZW9mKHBsdWdp
bldpdGhvdXRJbnZva2VEZWZhdWx0KSIsICInb2JqZWN0JyIpOworICAgIHNob3VsZFRocm93KCJw
bHVnaW5XaXRob3V0SW52b2tlRGVmYXVsdCgpIik7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0iZG9UZXN0KCk7Ij4KKzxlbWJlZCBpZD0icGx1Z2luLXdpdGgtaW52b2tlLWRl
ZmF1bHQiIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHRlc3Q9InBs
dWdpbi1zY3JpcHRhYmxlLW5wb2JqZWN0LWludm9rZS1kZWZhdWx0Ij48L2VtYmVkPgorPGVtYmVk
IGlkPSJwbHVnaW4td2l0aG91dC1pbnZva2UtZGVmYXVsdCIgdHlwZT0iYXBwbGljYXRpb24veC13
ZWJraXQtdGVzdC1uZXRzY2FwZSIgdGVzdD0icGx1Z2luLXNjcmlwdGFibGUtbnBvYmplY3Qtbm8t
aW52b2tlLWRlZmF1bHQiPjwvZW1iZWQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggM2ZhOTM2MjUy
OTFlNTI4OTMxNzMzNTAyMDQ4MTZlNzFhZTNlYzJlNy4uNzlhNDQ1ZTFlZGU0ODVkZTQxNGY1ZWZl
ZTY3NjA0ZjhmODgxZTc2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEwLTA3LTI5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBwbHVnaW5zL25wcnVudGltZS9iaW5k
aW5ncy10ZXN0Lmh0bWwgd2l0aCBhIG1vcmUgc29waGlzdGljYXRlZCB0ZXN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIzMgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0
LmNwcDoKKyAgICAgICAgKHBsdWdpbkludm9rZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
VGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuY3BwOgorICAgICAgICAoUGx1Z2luVGVzdDo6
Y3JlYXRlKToKKyAgICAgICAgKFBsdWdpblRlc3Q6Ok5QUF9HZXRWYWx1ZSk6CisgICAgICAgIChQ
bHVnaW5UZXN0OjpOUE5fQ3JlYXRlT2JqZWN0KToKKyAgICAgICAgKFBsdWdpblRlc3Q6OmNyZWF0
ZVRlc3RGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi9QbHVnaW5UZXN0Lmg6CisgICAgICAgIChQbHVnaW5UZXN0OjppZGVudGlmaWVyKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvRG9jdW1lbnRP
cGVuSW5EZXN0cm95U3RyZWFtLmNwcDoKKyAgICAgICAgKERvY3VtZW50T3BlbkluRGVzdHJveVN0
cmVhbTo6RG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHA6CisgICAgICAgIChOUFBfR2V0VmFsdWUp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi93aW4vVGVzdE5l
dHNjYXBlUGx1Z2luLnZjcHJvajoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0TmV0
c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnBybzoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS91bml4L1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4uY3BwOgorICAg
ICAgICAod2Via2l0X3Rlc3RfcGx1Z2luX2dldF92YWx1ZSk6CisgICAgICAgICogR05VbWFrZWZp
bGUuYW06CisKKzIwMTAtMDctMjkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KKwogICAgICAgICBBZGQgUGx1Z2luVGVzdC5jcHAKIAogICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3F0L1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucHJvOgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjgzZDdkOGRkYWQ2ZmVmMmEyYTk1
NWRkYmI1NzY1MzE5NDllYzM4My4uYmE0ZGRjMzdlYTRjZWI1MzM5YmE0YWVjMmU1MDgzY2VkNDYz
NGNkZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zOSw2ICsz
OSw3IEBACiAJCTFBQzZDODQ5MEQwNzYzODYwMENEMzE2MSAvKiBtYWluLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzZDNzdGMEQwNzU4OUIwMENE
MzE2MSAvKiBtYWluLmNwcCAqLzsgfTsKIAkJMUFDNkM4NEEwRDA3NjM4NjAwQ0QzMTYxIC8qIFBs
dWdpbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUM2Qzc4MDBEMDc1ODlCMDBDRDMxNjEgLyogUGx1Z2luT2JqZWN0LmNwcCAqLzsgfTsK
IAkJMUFDNkM4NEIwRDA3NjM4NjAwQ0QzMTYxIC8qIFRlc3RPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDNkM3ODEwRDA3NTg5QjAwQ0Qz
MTYxIC8qIFRlc3RPYmplY3QuY3BwICovOyB9OworCQkxQUQ5RDJGRTEyMDI4NDA5MDAxQTcwRDEg
LyogUGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SW52b2tlRGVmYXVsdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUQ5RDJGRDEyMDI4NDA5MDAxQTcw
RDEgLyogUGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SW52b2tlRGVmYXVsdC5jcHAgKi87IH07CiAJ
CTIzQkNCODkwMEVBNTc2MjMwMDNDNjI4OSAvKiBPcGVuR0wuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjNCQ0I4OEYwRUE1NzYyMzAw
M0M2Mjg5IC8qIE9wZW5HTC5mcmFtZXdvcmsgKi87IH07CiAJCTM3MTNFREUyMTE1QkUxOTMwMDcw
NTcyMCAvKiBDb2xvckJpdHMtQS5wbmcgaW4gQ29weSBGb250IEZpbGVzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MTNFRERGMTE1QkUxNkYwMDcwNTcyMCAvKiBDb2xvckJp
dHMtQS5wbmcgKi87IH07CiAJCTM3MTNFREUzMTE1QkUxOTMwMDcwNTcyMCAvKiBDb2xvckJpdHMu
dHRmIGluIENvcHkgRm9udCBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzNzEzRURFMDExNUJFMTZGMDA3MDU3MjAgLyogQ29sb3JCaXRzLnR0ZiAqLzsgfTsKQEAgLTE5
NSw2ICsxOTYsNyBAQAogCQkxQUM2Qzc3RjBEMDc1ODlCMDBDRDMxNjEgLyogbWFpbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBtYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFDNkM3ODAwRDA3NTg5QjAwQ0QzMTYxIC8qIFBsdWdpbk9iamVj
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5PYmplY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUM2Qzc4MTBEMDc1ODlCMDBDRDMx
NjEgLyogVGVzdE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUZXN0T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFEOUQyRkQx
MjAyODQwOTAwMUE3MEQxIC8qIFBsdWdpblNjcmlwdGFibGVOUE9iamVjdEludm9rZURlZmF1bHQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2luU2NyaXB0YWJs
ZU5QT2JqZWN0SW52b2tlRGVmYXVsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTIzQkNCODhGMEVBNTc2MjMwMDNDNjI4OSAvKiBPcGVuR0wuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBPcGVuR0wuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvT3BlbkdMLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMzJB
NzBBQUIwMzcwNUUxRjAwQzkxNzgzIC8qIER1bXBSZW5kZXJUcmVlUHJlZml4LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER1bXBSZW5kZXJUcmVlUHJlZml4Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MTNFRERGMTE1QkUxNkYwMDcwNTcyMCAvKiBDb2xvckJp
dHMtQS5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBpbWFnZS5wbmc7IG5hbWUgPSAiQ29sb3JCaXRzLUEucG5nIjsgcGF0aCA9ICJmb250cy9Db2xv
ckJpdHMtQS5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM0LDYgKzQzNiw3
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBMjE1QTc1MTFG
MjYwNzIwMDhBRDBGNSAvKiBEb2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0uY3BwICovLAorCQkJ
CTFBRDlEMkZEMTIwMjg0MDkwMDFBNzBEMSAvKiBQbHVnaW5TY3JpcHRhYmxlTlBPYmplY3RJbnZv
a2VEZWZhdWx0LmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gVGVzdHM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtNzA0LDYgKzcwNyw3IEBACiAJCQkJMEYzN0E0QTcxMUU2NjI4NzAw
Mjc1RjU0IC8qIFBsdWdpbk9iamVjdE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMjE1QTgx
MTFGMjYwOUMwMDhBRDBGNSAvKiBQbHVnaW5UZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
MjE1QkU3MTFGMjc2NTgwMDhBRDBGNSAvKiBEb2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMUFEOUQyRkUxMjAyODQwOTAwMUE3MEQxIC8qIFBsdWdpblNj
cmlwdGFibGVOUE9iamVjdEludm9rZURlZmF1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2lu
T2JqZWN0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJ
bi9QbHVnaW5PYmplY3QuY3BwCmluZGV4IDcyNDc1ZTBjOTBjODZhMmFjYTk5MzI3NTQ2OGI2MzJi
YTVlYjgyNzEuLjBkNTU2YjEyZmYxZjNiNTQ0ZDUxZWI5MTc3YzQzNzZmMmYyOTI1NDIgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVn
aW5PYmplY3QuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwCkBAIC05OSw3ICs5OSw2IEBAIHN0YXRpYyBib29sIHBs
dWdpbkhhc01ldGhvZChOUE9iamVjdCosIE5QSWRlbnRpZmllciBuYW1lKTsKIHN0YXRpYyBib29s
IHBsdWdpbkdldFByb3BlcnR5KE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG5hbWUsIE5QVmFyaWFu
dCopOwogc3RhdGljIGJvb2wgcGx1Z2luU2V0UHJvcGVydHkoTlBPYmplY3QqLCBOUElkZW50aWZp
ZXIgbmFtZSwgY29uc3QgTlBWYXJpYW50Kik7CiBzdGF0aWMgYm9vbCBwbHVnaW5JbnZva2UoTlBP
YmplY3QqLCBOUElkZW50aWZpZXIgbmFtZSwgY29uc3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJf
dCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQpOwotc3RhdGljIGJvb2wgcGx1Z2luSW52b2tl
RGVmYXVsdChOUE9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291
bnQsIE5QVmFyaWFudCogcmVzdWx0KTsKIHN0YXRpYyBOUE9iamVjdCogcGx1Z2luQWxsb2NhdGUo
TlBQIG5wcCwgTlBDbGFzcyopOwogc3RhdGljIHZvaWQgcGx1Z2luRGVhbGxvY2F0ZShOUE9iamVj
dCopOwogCkBAIC0xMTIsNyArMTExLDcgQEAgc3RhdGljIE5QQ2xhc3MgcGx1Z2luQ2xhc3MgPSB7
CiAgICAgcGx1Z2luSW52YWxpZGF0ZSwKICAgICBwbHVnaW5IYXNNZXRob2QsCiAgICAgcGx1Z2lu
SW52b2tlLAotICAgIHBsdWdpbkludm9rZURlZmF1bHQsCisgICAgMCwgLy8gTlBDbGFzczo6aW52
b2tlRGVmYXVsdCwKICAgICBwbHVnaW5IYXNQcm9wZXJ0eSwKICAgICBwbHVnaW5HZXRQcm9wZXJ0
eSwKICAgICBwbHVnaW5TZXRQcm9wZXJ0eSwKQEAgLTE2MSw3ICsxNjAsNiBAQCBzdGF0aWMgY29u
c3QgTlBVVEY4ICpwbHVnaW5Qcm9wZXJ0eUlkZW50aWZpZXJOYW1lc1tOVU1fUFJPUEVSVFlfSURF
TlRJRklFUlNdID0gewogZW51bSB7CiAgICAgSURfVEVTVF9DQUxMQkFDS19NRVRIT0QgPSAwLAog
ICAgIElEX1RFU1RfR0VUVVJMLAotICAgIElEX1JFTU9WRV9ERUZBVUxUX01FVEhPRCwKICAgICBJ
RF9URVNUX0RPTV9BQ0NFU1MsCiAgICAgSURfVEVTVF9HRVRfVVJMX05PVElGWSwKICAgICBJRF9U
RVNUX0lOVk9LRV9ERUZBVUxULApAQCAtMTk4LDcgKzE5Niw2IEBAIHN0YXRpYyBOUElkZW50aWZp
ZXIgcGx1Z2luTWV0aG9kSWRlbnRpZmllcnNbTlVNX01FVEhPRF9JREVOVElGSUVSU107CiBzdGF0
aWMgY29uc3QgTlBVVEY4ICpwbHVnaW5NZXRob2RJZGVudGlmaWVyTmFtZXNbTlVNX01FVEhPRF9J
REVOVElGSUVSU10gPSB7CiAgICAgInRlc3RDYWxsYmFjayIsCiAgICAgImdldFVSTCIsCi0gICAg
InJlbW92ZURlZmF1bHRNZXRob2QiLAogICAgICJ0ZXN0RE9NQWNjZXNzIiwKICAgICAiZ2V0VVJM
Tm90aWZ5IiwKICAgICAidGVzdEludm9rZURlZmF1bHQiLApAQCAtNDY1LDEzICs0NjIsNiBAQCBz
dGF0aWMgYm9vbCBnZXRVUkwoUGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCogYXJn
cywgdWludDMyX3QgYXJnQ291bnQsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgYm9v
bCByZW1vdmVEZWZhdWx0TWV0aG9kKFBsdWdpbk9iamVjdCosIGNvbnN0IE5QVmFyaWFudCogYXJn
cywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQotewotICAgIHBsdWdpbkNs
YXNzLmludm9rZURlZmF1bHQgPSAwOwotICAgIFZPSURfVE9fTlBWQVJJQU5UKCpyZXN1bHQpOwot
ICAgIHJldHVybiB0cnVlOwotfQotCiBzdGF0aWMgYm9vbCBnZXRVUkxOb3RpZnkoUGx1Z2luT2Jq
ZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFy
aWFudCogcmVzdWx0KQogewogICAgIGlmIChhcmdDb3VudCAhPSAzIHx8ICFOUFZBUklBTlRfSVNf
U1RSSU5HKGFyZ3NbMF0pCkBAIC04NjAsOCArODUwLDYgQEAgc3RhdGljIGJvb2wgcGx1Z2luSW52
b2tlKE5QT2JqZWN0KiBoZWFkZXIsIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlhbnQq
IGEKICAgICAgICAgcmV0dXJuIHRlc3RDYWxsYmFjayhwbHVnaW4sIGFyZ3MsIGFyZ0NvdW50LCBy
ZXN1bHQpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9kSWRlbnRpZmllcnNbSURf
VEVTVF9HRVRVUkxdKQogICAgICAgICByZXR1cm4gZ2V0VVJMKHBsdWdpbiwgYXJncywgYXJnQ291
bnQsIHJlc3VsdCk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBwbHVnaW5NZXRob2RJZGVudGlmaWVy
c1tJRF9SRU1PVkVfREVGQVVMVF9NRVRIT0RdKQotICAgICAgICByZXR1cm4gcmVtb3ZlRGVmYXVs
dE1ldGhvZChwbHVnaW4sIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOwogICAgIGVsc2UgaWYgKG5h
bWUgPT0gcGx1Z2luTWV0aG9kSWRlbnRpZmllcnNbSURfVEVTVF9ET01fQUNDRVNTXSkKICAgICAg
ICAgcmV0dXJuIHRlc3RET01BY2Nlc3MocGx1Z2luLCBhcmdzLCBhcmdDb3VudCwgcmVzdWx0KTsK
ICAgICBlbHNlIGlmIChuYW1lID09IHBsdWdpbk1ldGhvZElkZW50aWZpZXJzW0lEX1RFU1RfR0VU
X1VSTF9OT1RJRlldKQpAQCAtOTQ0LDEyICs5MzIsNiBAQCBzdGF0aWMgYm9vbCBwbHVnaW5JbnZv
a2UoTlBPYmplY3QqIGhlYWRlciwgTlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFudCog
YQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgcGx1Z2luSW52b2tlRGVmYXVs
dChOUE9iamVjdCogb2JqLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50
LCBOUFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBJTlQzMl9UT19OUFZBUklBTlQoMSwgKnJlc3Vs
dCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHN0YXRpYyB2b2lkIHBsdWdpbkludmFsaWRhdGUo
TlBPYmplY3QqIGhlYWRlcikKIHsKICAgICBQbHVnaW5PYmplY3QqIHBsdWdpbiA9IHJlaW50ZXJw
cmV0X2Nhc3Q8UGx1Z2luT2JqZWN0Kj4oaGVhZGVyKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmNwcApp
bmRleCBlYzNhMmQ3NzlhNGVmNmNiOTBhMWFiYWE1M2YyN2MzMjVmZDRmOTM3Li5jMTQyYWMwZDAw
ZDU1ZDVjNWY0YjNiOTQ5OWM3MjlmNjVkOGZhMTY2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuY3Bw
CkBAIC0zMCw2ICszMCwxNSBAQAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIGV4dGVybiBOUE5ldHNj
YXBlRnVuY3MgKmJyb3dzZXI7CiAKK1BsdWdpblRlc3QqIFBsdWdpblRlc3Q6OmNyZWF0ZShOUFAg
bnBwLCBjb25zdCBzdHJpbmcmIGlkZW50aWZpZXIpCit7CisgICAgQ3JlYXRlVGVzdEZ1bmN0aW9u
IGNyZWF0ZVRlc3RGdW5jdGlvbiA9IGNyZWF0ZVRlc3RGdW5jdGlvbnMoKVtpZGVudGlmaWVyXTsK
KyAgICBpZiAoY3JlYXRlVGVzdEZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEZ1
bmN0aW9uKG5wcCwgaWRlbnRpZmllcik7CisKKyAgICByZXR1cm4gbmV3IFBsdWdpblRlc3QobnBw
LCBpZGVudGlmaWVyKTsKK30KKwogUGx1Z2luVGVzdDo6UGx1Z2luVGVzdChOUFAgbnBwLCBjb25z
dCBzdHJpbmcmIGlkZW50aWZpZXIpCiAgICAgOiBtX25wcChucHApCiAgICAgLCBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKQEAgLTQ1LDEzICs1NCwxNyBAQCBOUEVycm9yIFBsdWdpblRlc3Q6Ok5Q
UF9EZXN0cm95U3RyZWFtKE5QU3RyZWFtICpzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikKICAgICBy
ZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKLXN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBQbHVnaW5U
ZXN0OjpDcmVhdGVUZXN0RnVuY3Rpb24+JiBQbHVnaW5UZXN0OjpjcmVhdGVUZXN0RnVuY3Rpb25z
KCkKK05QRXJyb3IgUGx1Z2luVGVzdDo6TlBQX0dldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxl
LCB2b2lkICp2YWx1ZSkKIHsKLSAgICBzdGF0aWMgc3RkOjptYXA8c3RkOjpzdHJpbmcsIENyZWF0
ZVRlc3RGdW5jdGlvbj4gdGVzdEZ1bmN0aW9uczsKLSAgICAKLSAgICByZXR1cm4gdGVzdEZ1bmN0
aW9uczsKKyAgICAvLyBXZSBkb24ndCBrbm93IGFueXRoaW5nIGFib3V0IHBsdWctaW4gdmFsdWVz
IHNvIGp1c3QgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1IuCisgICAgcmV0dXJuIE5QRVJSX0dF
TkVSSUNfRVJST1I7CiB9CiAKK05QT2JqZWN0KiBQbHVnaW5UZXN0OjpOUE5fQ3JlYXRlT2JqZWN0
KE5QQ2xhc3MqIG5wQ2xhc3MpCit7CisgICAgcmV0dXJuIGJyb3dzZXItPmNyZWF0ZW9iamVjdCht
X25wcCwgbnBDbGFzcyk7Cit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKIHZv
aWQgUGx1Z2luVGVzdDo6cmVnaXN0ZXJDcmVhdGVUZXN0RnVuY3Rpb24oY29uc3Qgc3RyaW5nJiBp
ZGVudGlmaWVyLCBDcmVhdGVUZXN0RnVuY3Rpb24gY3JlYXRlVGVzdEZ1bmN0aW9uKQogewogICAg
IGFzc2VydCghY3JlYXRlVGVzdEZ1bmN0aW9ucygpLmNvdW50KGlkZW50aWZpZXIpKTsKQEAgLTU5
LDExICs3Miw5IEBAIHZvaWQgUGx1Z2luVGVzdDo6cmVnaXN0ZXJDcmVhdGVUZXN0RnVuY3Rpb24o
Y29uc3Qgc3RyaW5nJiBpZGVudGlmaWVyLCBDcmVhdGVUZXN0CiAgICAgY3JlYXRlVGVzdEZ1bmN0
aW9ucygpW2lkZW50aWZpZXJdID0gY3JlYXRlVGVzdEZ1bmN0aW9uOwogfQogCi1QbHVnaW5UZXN0
KiBQbHVnaW5UZXN0OjpjcmVhdGUoTlBQIG5wcCwgY29uc3Qgc3RyaW5nJiBpZGVudGlmaWVyKQor
c3RkOjptYXA8c3RkOjpzdHJpbmcsIFBsdWdpblRlc3Q6OkNyZWF0ZVRlc3RGdW5jdGlvbj4mIFBs
dWdpblRlc3Q6OmNyZWF0ZVRlc3RGdW5jdGlvbnMoKQogewotICAgIENyZWF0ZVRlc3RGdW5jdGlv
biBjcmVhdGVUZXN0RnVuY3Rpb24gPSBjcmVhdGVUZXN0RnVuY3Rpb25zKClbaWRlbnRpZmllcl07
Ci0gICAgaWYgKGNyZWF0ZVRlc3RGdW5jdGlvbikKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RG
dW5jdGlvbihucHAsIGlkZW50aWZpZXIpOwotCi0gICAgcmV0dXJuIG5ldyBQbHVnaW5UZXN0KG5w
cCwgaWRlbnRpZmllcik7CisgICAgc3RhdGljIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBDcmVhdGVU
ZXN0RnVuY3Rpb24+IHRlc3RGdW5jdGlvbnM7CisgICAgCisgICAgcmV0dXJuIHRlc3RGdW5jdGlv
bnM7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4vUGx1Z2luVGVzdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5l
dHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuaAppbmRleCA0OTE1OWNlMTkwNTk0Yzg3OTQ3YTA3MWFj
Mjc0M2NlNjIwNzA0ZDIwLi4yMzQ5MzdiNWNiZjFjZjVkMTUyMzE0ZDBjMzlkMjAzZWVjMzk1YTYx
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVn
SW4vUGx1Z2luVGVzdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRz
Y2FwZVBsdWdJbi9QbHVnaW5UZXN0LmgKQEAgLTM3LDYgKzM3LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gQWRkIG1vcmUgTlBQIGZ1bmN0aW9ucyBoZXJlIGlmIG5lZWRlZC4KICAgICB2aXJ0dWFsIE5Q
RXJyb3IgTlBQX0Rlc3Ryb3lTdHJlYW0oTlBTdHJlYW0gKnN0cmVhbSwgTlBSZWFzb24gcmVhc29u
KTsKKyAgICB2aXJ0dWFsIE5QRXJyb3IgTlBQX0dldFZhbHVlKE5QUFZhcmlhYmxlLCB2b2lkICp2
YWx1ZSk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUZXN0Q2xhc3NUeT4gY2xhc3MgUmVnaXN0
ZXIgewogICAgIHB1YmxpYzoKQEAgLTU2LDEwICs1NywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgUGx1
Z2luVGVzdChOUFAgbnBwLCBjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcik7CiAKICAgICAv
LyBOUE4gZnVuY3Rpb25zLgorICAgIE5QT2JqZWN0KiBOUE5fQ3JlYXRlT2JqZWN0KE5QQ2xhc3Mq
KTsKIAogICAgIC8vIEZJWE1FOiBBIHBsdWctaW4gdGVzdCBzaG91bGRuJ3QgbmVlZCB0byBrbm93
IGFib3V0IGl0J3MgTlBQLiBNYWtlIHRoaXMgcHJpdmF0ZS4KICAgICBOUFAgbV9ucHA7CiAKKyAg
ICBjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQorCiBwcml2YXRlOgogICAgIHR5cGVkZWYgUGx1Z2luVGVzdCogKCpDcmVhdGVUZXN0
RnVuY3Rpb24pKE5QUCwgY29uc3Qgc3RkOjpzdHJpbmcmKTsKICAgICAKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9Eb2N1bWVu
dE9wZW5JbkRlc3Ryb3lTdHJlYW0uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0RvY3VtZW50T3BlbkluRGVzdHJveVN0cmVhbS5jcHAKaW5k
ZXggZTAwYTgxMGVhMmEzYTRiNGNkNzA3MDNiZmU4NTEyNmIxNTFlZmI4Yi4uMTBmZjI2MzNhNTE4
NDFkMmQ2OGUxMGVkYzYwZTcxMjRjZmE4ZDZhOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL0RvY3VtZW50T3BlbkluRGVzdHJv
eVN0cmVhbS5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luL1Rlc3RzL0RvY3VtZW50T3BlbkluRGVzdHJveVN0cmVhbS5jcHAKQEAgLTI1LDExICsy
NSwxNSBAQAogCiAjaW5jbHVkZSAiUGx1Z2luVGVzdC5oIgogCit1c2luZyBuYW1lc3BhY2Ugc3Rk
OworCiBleHRlcm4gYm9vbCB0ZXN0RG9jdW1lbnRPcGVuKE5QUCBucHApOwogCisvLyBDYWxsIGRv
Y3VtZW50Lm9wZW4gZnJvbSBOUFBfRGVzdHJveVN0cmVhbS4KKwogY2xhc3MgRG9jdW1lbnRPcGVu
SW5EZXN0cm95U3RyZWFtIDogcHVibGljIFBsdWdpblRlc3QgewogcHVibGljOgotICAgIERvY3Vt
ZW50T3BlbkluRGVzdHJveVN0cmVhbShOUFAgbnBwLCBjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRp
ZmllcikKKyAgICBEb2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0oTlBQIG5wcCwgY29uc3Qgc3Ry
aW5nJiBpZGVudGlmaWVyKQogICAgICAgICA6IFBsdWdpblRlc3QobnBwLCBpZGVudGlmaWVyKQog
ICAgICAgICAsIG1fc2hvdWxkT3Blbih0cnVlKQogICAgIHsKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9QbHVnaW5TY3JpcHRh
YmxlTlBPYmplY3RJbnZva2VEZWZhdWx0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9QbHVnaW5TY3JpcHRhYmxlTlBPYmplY3RJbnZva2VE
ZWZhdWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGM0NjNiN2I1OThkYzViNDQxZTE5Y2Q1ZmMzNDFlYmQ2
ZWY3MDhlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE5ldHNjYXBlUGx1Z0luL1Rlc3RzL1BsdWdpblNjcmlwdGFibGVOUE9iamVjdEludm9rZURlZmF1
bHQuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUGx1Z2luVGVz
dC5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCitzdGF0aWMgYm9vbCBpbnZva2VEZWZhdWx0
KE5QT2JqZWN0KiwgY29uc3QgTlBWYXJpYW50KiwgdWludDMyX3QsIE5QVmFyaWFudCogcmVzdWx0
KQoreworICAgIElOVDMyX1RPX05QVkFSSUFOVCgxLCAqcmVzdWx0KTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworc3RhdGljIE5QQ2xhc3MgbnBDbGFzc1dpdGhJbnZva2VEZWZhdWx0ID0geyAKKyAg
ICBOUF9DTEFTU19TVFJVQ1RfVkVSU0lPTiwgCisgICAgMCwgLy8gTlBDbGFzczo6YWxsb2NhdGUK
KyAgICAwLCAvLyBOUENsYXNzOjpkZWFsbG9jYXRlCisgICAgMCwgLy8gTlBDbGFzczo6aW52YWxp
ZGF0ZQorICAgIDAsIC8vIE5QQ2xhc3M6Omhhc01ldGhvZAorICAgIDAsIC8vIE5QQ2xhc3M6Omlu
dm9rZQorICAgIGludm9rZURlZmF1bHQsCisgICAgMCwgLy8gTlBDbGFzczo6aGFzUHJvcGVydHkK
KyAgICAwLCAvLyBOUENsYXNzOjpnZXRQcm9wZXJ0eQorICAgIDAsIC8vIE5QQ2xhc3M6OnNldFBy
b3BlcnR5CisgICAgMCwgLy8gTlBDbGFzczo6cmVtb3ZlUHJvcGVydHkKKyAgICAwLCAvLyBOUENs
YXNzOjplbnVtZXJhdGUKKyAgICAwICAvLyBOUENsYXNzOjpjb25zdHJ1Y3QKK307CisKK3N0YXRp
YyBOUENsYXNzIG5wQ2xhc3NXaXRob3V0SW52b2tlRGVmYXVsdCA9IHsgCisgICAgTlBfQ0xBU1Nf
U1RSVUNUX1ZFUlNJT04sIAorICAgIDAsIC8vIE5QQ2xhc3M6OmFsbG9jYXRlCisgICAgMCwgLy8g
TlBDbGFzczo6ZGVhbGxvY2F0ZQorICAgIDAsIC8vIE5QQ2xhc3M6OmludmFsaWRhdGUKKyAgICAw
LCAvLyBOUENsYXNzOjpoYXNNZXRob2QKKyAgICAwLCAvLyBOUENsYXNzOjppbnZva2UKKyAgICAw
LCAvLyBOUENsYXNzOjppbnZva2VEZWZhdWx0LAorICAgIDAsIC8vIE5QQ2xhc3M6Omhhc1Byb3Bl
cnR5CisgICAgMCwgLy8gTlBDbGFzczo6Z2V0UHJvcGVydHkKKyAgICAwLCAvLyBOUENsYXNzOjpz
ZXRQcm9wZXJ0eQorICAgIDAsIC8vIE5QQ2xhc3M6OnJlbW92ZVByb3BlcnR5CisgICAgMCwgLy8g
TlBDbGFzczo6ZW51bWVyYXRlCisgICAgMCAgLy8gTlBDbGFzczo6Y29uc3RydWN0Cit9OworCisv
LyBBIHRlc3Qgd2hlcmUgdGhlIHBsdWctaW5zIHNjcmlwdGFibGUgb2JqZWN0IGVpdGhlciBoYXMg
b3IgZG9lc24ndCBoYXZlIGFuIGludm9rZURlZmF1bHQgZnVuY3Rpb24uCitjbGFzcyBQbHVnaW5T
Y3JpcHRhYmxlTlBPYmplY3RJbnZva2VEZWZhdWx0IDogcHVibGljIFBsdWdpblRlc3QgeworcHVi
bGljOgorICAgIFBsdWdpblNjcmlwdGFibGVOUE9iamVjdEludm9rZURlZmF1bHQoTlBQIG5wcCwg
Y29uc3Qgc3RyaW5nJiBpZGVudGlmaWVyKQorICAgICAgICA6IFBsdWdpblRlc3QobnBwLCBpZGVu
dGlmaWVyKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBOUEVycm9yIE5Q
UF9HZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpCisgICAgeworICAg
ICAgICBpZiAodmFyaWFibGUgIT0gTlBQVnBsdWdpblNjcmlwdGFibGVOUE9iamVjdCkKKyAgICAg
ICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworCisgICAgICAgIE5QQ2xhc3MqIG5w
Q2xhc3M7CisgICAgICAgIGlmIChpZGVudGlmaWVyKCkgPT0gInBsdWdpbi1zY3JpcHRhYmxlLW5w
b2JqZWN0LWludm9rZS1kZWZhdWx0IikKKyAgICAgICAgICAgIG5wQ2xhc3MgPSAmbnBDbGFzc1dp
dGhJbnZva2VEZWZhdWx0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBucENsYXNzID0gJm5w
Q2xhc3NXaXRob3V0SW52b2tlRGVmYXVsdDsKKyAgICAgICAgCisgICAgICAgICooTlBPYmplY3Qq
Kil2YWx1ZSA9IE5QTl9DcmVhdGVPYmplY3QobnBDbGFzcyk7CisgICAgICAgIAorICAgICAgICBy
ZXR1cm4gTlBFUlJfTk9fRVJST1I7CisgICAgfQorCisgICAgTlBPYmplY3QqIG1fc2NyaXB0YWJs
ZU9iamVjdDsKK307CisKK3N0YXRpYyBQbHVnaW5UZXN0OjpSZWdpc3RlcjxQbHVnaW5TY3JpcHRh
YmxlTlBPYmplY3RJbnZva2VEZWZhdWx0PiBwbHVnaW5TY3JpcHRhYmxlTlBPYmplY3RJbnZva2VE
ZWZhdWx0KCJwbHVnaW4tc2NyaXB0YWJsZS1ucG9iamVjdC1pbnZva2UtZGVmYXVsdCIpOworc3Rh
dGljIFBsdWdpblRlc3Q6OlJlZ2lzdGVyPFBsdWdpblNjcmlwdGFibGVOUE9iamVjdEludm9rZURl
ZmF1bHQ+IHBsdWdpblNjcmlwdGFibGVOUE9iamVjdE5vSW52b2tlRGVmYXVsdCgicGx1Z2luLXNj
cmlwdGFibGUtbnBvYmplY3Qtbm8taW52b2tlLWRlZmF1bHQiKTsKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAppbmRleCBh
YjFjYzNmNjUwMTExN2MzNGE2ZTUxMTUwZDdkMTIxYmE1YzYwZDk3Li5mY2RhNTBiYzdkN2ZlODUz
ZmI5YWYzMjgzYWU0YzQ1NDk4NGI5Mjk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwCkBAIC01MjksNiArNTI5LDEw
IEBAIE5QRXJyb3IgTlBQX0dldFZhbHVlKE5QUCBpbnN0YW5jZSwgTlBQVmFyaWFibGUgdmFyaWFi
bGUsIHZvaWQgKnZhbHVlKQogewogICAgIFBsdWdpbk9iamVjdCogb2JqID0gc3RhdGljX2Nhc3Q8
UGx1Z2luT2JqZWN0Kj4oaW5zdGFuY2UtPnBkYXRhKTsKIAorICAgIC8vIEZpcnN0LCBjaGVjayBp
ZiB0aGUgUGx1Z2luVGVzdCBvYmplY3Qgc3VwcG9ydHMgZ2V0dGluZyB0aGlzIHZhbHVlLgorICAg
IGlmIChvYmotPnBsdWdpblRlc3QtPk5QUF9HZXRWYWx1ZSh2YXJpYWJsZSwgdmFsdWUpID09IE5Q
RVJSX05PX0VSUk9SKQorICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CisKICAgICBpZiAo
dmFyaWFibGUgPT0gTlBQVnBsdWdpblNjcmlwdGFibGVOUE9iamVjdCkgewogICAgICAgICB2b2lk
ICoqdiA9ICh2b2lkICoqKXZhbHVlOwogICAgICAgICAvLyBSZXR1cm4gdmFsdWUgaXMgZXhwZWN0
ZWQgdG8gYmUgcmV0YWluZWQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi93aW4vVGVzdE5ldHNjYXBlUGx1Z2luLnZjcHJvaiBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi93aW4vVGVzdE5ldHNjYXBl
UGx1Z2luLnZjcHJvagppbmRleCA4N2RmNjAyODYwNzY2OWQyMDY5NTI5NTJkOWZlM2Y2NTAzYzBj
OWFkLi41MDBkYWU3YTc4NWEyMGE3MWZlMmFlMzRhNGFkNmRiY2E0NmVlMWU0IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vd2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi52Y3Byb2oKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE5ldHNjYXBlUGx1Z0luL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4udmNwcm9qCkBAIC00NjMsNiAr
NDYzLDEwIEBACiAgICAgCQkgIFJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcRG9jdW1lbnRPcGVuSW5E
ZXN0cm95U3RyZWFtLmNwcCINCiAgICAgCQk+DQogICAgIAkgIDwvRmlsZT4NCisJCSAgPEZpbGUN
CisgICAgCQkgIFJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcUGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0
SW52b2tlRGVmYXVsdC5jcHAiDQorICAgIAkJPg0KKyAgICAJICA8L0ZpbGU+DQogCQk8L0ZpbHRl
cj4NCiAJPC9GaWxlcz4NCiAJPEdsb2JhbHM+DQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5wcm8g
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5l
dHNjYXBlUGx1Z2luLnBybwppbmRleCBkODAzYmRiYTQ1YzM4ZjE4ZTdiZWU5ZjkzMjRhZDc5OWM1
MDNkYzVkLi5mMjkyNmFiMzQ0ZDI2ZTU5YjhlMmI1ZWQ5ZDZkN2EyZjk1NzI5ZWI3IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVz
dE5ldHNjYXBlUGx1Z2luLnBybworKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnBybwpAQCAtMjgsNyArMjgsOCBA
QCBJTkNMVURFUEFUSCArPSAuLi8uLi8uLi8uLi9KYXZhU2NyaXB0Q29yZSBcCiBTT1VSQ0VTID0g
UGx1Z2luT2JqZWN0LmNwcCBcCiAgICAgICAgICAgUGx1Z2luVGVzdC5jcHAgXAogICAgICAgICAg
IFRlc3RPYmplY3QuY3BwIFwKLSAgICAgICAgICBUZXN0cy9Eb2N1bWVudE9wZW5JbkRlc3Ryb3lT
dHJlYW0uY3BwCisgICAgICAgICAgVGVzdHMvRG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtLmNw
cCBcCisgICAgICAgICAgVGVzdHMvUGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SW52b2tlRGVmYXVs
dC5jcHAKIAogbWFjIHsKICAgICBTT1VSQ0VTICs9IC4uLy4uL1Rlc3ROZXRzY2FwZVBsdWdJbi9t
YWluLmNwcApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvdW5peC9UZXN0
TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3VuaXgvVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5jcHAK
aW5kZXggMjk5MzAyOGZiYzgyMGIxZTNhNzZhY2ZlYTA4YTY0MTM2YTg1NzdkNi4uZDU2YzlhMzE1
Y2RlMjY1ZGNhMTk1YmU5ZTFiNjE3MDAzZDRhYTk0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvdW5peC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2lu
LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRzY2FwZVBs
dWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4uY3BwCkBAIC0yODYsNiArMjg2LDEyIEBAIHdlYmtpdF90
ZXN0X3BsdWdpbl91cmxfbm90aWZ5KE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogdXJsLCBOUFJl
YXNvbiByZWFzb24sIHZvCiBzdGF0aWMgTlBFcnJvcgogd2Via2l0X3Rlc3RfcGx1Z2luX2dldF92
YWx1ZShOUFAgaW5zdGFuY2UsIE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkICp2YWx1ZSkKIHsK
KyAgICBQbHVnaW5PYmplY3QqIG9iaiA9IHN0YXRpY19jYXN0PFBsdWdpbk9iamVjdCo+KGluc3Rh
bmNlLT5wZGF0YSk7CisKKyAgICAvLyBGaXJzdCwgY2hlY2sgaWYgdGhlIFBsdWdpblRlc3Qgb2Jq
ZWN0IHN1cHBvcnRzIGdldHRpbmcgdGhpcyB2YWx1ZS4KKyAgICBpZiAob2JqLT5wbHVnaW5UZXN0
LT5OUFBfR2V0VmFsdWUodmFyaWFibGUsIHZhbHVlKSA9PSBOUEVSUl9OT19FUlJPUikKKyAgICAg
ICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgIAogICAgIE5QRXJyb3IgZXJyID0gTlBFUlJf
Tk9fRVJST1I7CiAKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CkBAIC0zMTEsNyArMzE3LDYgQEAg
d2Via2l0X3Rlc3RfcGx1Z2luX2dldF92YWx1ZShOUFAgaW5zdGFuY2UsIE5QUFZhcmlhYmxlIHZh
cmlhYmxlLCB2b2lkICp2YWx1ZSkKIAogICAgIGlmICh2YXJpYWJsZSA9PSBOUFBWcGx1Z2luU2Ny
aXB0YWJsZU5QT2JqZWN0KSB7CiAgICAgICAgIHZvaWQgKip2ID0gKHZvaWQgKiopdmFsdWU7Ci0g
ICAgICAgIFBsdWdpbk9iamVjdCogb2JqID0gc3RhdGljX2Nhc3Q8UGx1Z2luT2JqZWN0Kj4oaW5z
dGFuY2UtPnBkYXRhKTsKICAgICAgICAgYnJvd3Nlci0+cmV0YWlub2JqZWN0KChOUE9iamVjdCAq
KW9iaik7CiAgICAgICAgICp2ID0gb2JqOwogICAgICAgICBlcnIgPSBOUEVSUl9OT19FUlJPUjsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtIGIvV2ViS2l0VG9vbHMvR05V
bWFrZWZpbGUuYW0KaW5kZXggMGVmZjEzOTg3YmViZTBjOWIyYWMzNTlkMzU3OTllMWY1NmM1NTAw
YS4uMzJjZTMwOTRlZjQyZmZjOTgzYWNkMjhkZjVjZWI4ZTkzZmIyNjc1ZCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUu
YW0KQEAgLTE1OSw2ICsxNTksNyBAQCBUZXN0TmV0c2NhcGVQbHVnaW5fbGlidGVzdG5ldHNjYXBl
cGx1Z2luX2xhX1NPVVJDRVMgPSBcCiAJV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvdW5peC9U
ZXN0TmV0c2NhcGVQbHVnaW4vRm9yd2FyZGluZ0hlYWRlcnMvV2ViS2l0L25wcnVudGltZS5oIFwK
IAlXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS91bml4L1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0
TmV0c2NhcGVQbHVnaW4uY3BwIFwKIAlXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4vVGVzdHMvRG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtLmNwcCBcCisJV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL1BsdWdpblNj
cmlwdGFibGVOUE9iamVjdEludm9rZURlZmF1bHQuY3BwIFwKIAlXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5jcHAgXAogCVdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmggXAogCVdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3Bw
IFwK
</data>
<flag name="review"
          id="51313"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>