<?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>84670</bug_id>
          
          <creation_ts>2012-04-23 23:15:50 -0700</creation_ts>
          <short_desc>[EFL][DRT] &quot;resource,request,willsend&quot; signal needs to provide more information</short_desc>
          <delta_ts>2012-05-06 22:52:30 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81891</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>608377</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-23 23:15:50 -0700</bug_when>
    <thetext>The &quot;resource,request,willsend&quot; signal only provide some information about the network request currently. This information is not enough to support LayoutTestController&apos;s dumpResourceLoadCallbacks() in EFL&apos;s DumpRenderTree. We need to provide more information about the network request as well as information about the possible redirect response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608379</commentid>
    <comment_count>1</comment_count>
      <attachid>138497</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-23 23:24:26 -0700</bug_when>
    <thetext>Created attachment 138497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609520</commentid>
    <comment_count>2</comment_count>
      <attachid>138497</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-25 00:38:55 -0700</bug_when>
    <thetext>Comment on attachment 138497
Patch

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

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:200
&gt; +        redirectResponse = &amp;responseBuffer;

I wonder why you don&apos;t use redirectResponse directly in order to send messages to application via signal.

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:201
&gt; +    }

Add blank line to here.

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:203
&gt; +

It is better to remove blank line.

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:205
&gt; +

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609538</commentid>
    <comment_count>3</comment_count>
      <attachid>138756</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-25 01:13:22 -0700</bug_when>
    <thetext>Created attachment 138756
Patch

Fix blank lines issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609551</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-25 01:50:45 -0700</bug_when>
    <thetext>One more question. Is there any unskip test by this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609552</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-25 01:53:24 -0700</bug_when>
    <thetext>Gyuyoung: No. As explained, the patch is split in several parts (84670, 	81891, 84129). On its own, it does not allow unskipping test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609554</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-25 01:54:34 -0700</bug_when>
    <thetext>Bug 81891 has unskip tests. Ok. LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610392</commentid>
    <comment_count>7</comment_count>
      <attachid>138756</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 00:08:50 -0700</bug_when>
    <thetext>Comment on attachment 138756
Patch

Clearing flags on attachment: 138756

Committed r115294: &lt;http://trac.webkit.org/changeset/115294&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610393</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 00:09:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138497</attachid>
            <date>2012-04-23 23:24:26 -0700</date>
            <delta_ts>2012-04-25 01:13:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>84670_extend_willsend.path</filename>
            <type>text/plain</type>
            <size>16880</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3NDQzZmY1Li43YjQ3YThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjggQEAKIDIwMTItMDQtMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhl
LmR1bWV6QGludGVsLmNvbT4KIAorICAgICAgICBbRUZMXVtEUlRdICJyZXNvdXJjZSxyZXF1ZXN0
LHdpbGxzZW5kIiBzaWduYWwgbmVlZHMgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY3MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSAicmVzb3VyY2Us
cmVxdWVzdCx3aWxsc2VuZCIgc2lnbmFsIG5vdyBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uCisg
ICAgICAgIGFib3V0IHRoZSBuZXR3b3JrIHJlcXVlc3QgYXMgd2VsbCBhcyBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgcG9zc2libGUKKyAgICAgICAgcmVkaXJlY3QgcmVzcG9uc2UuIFRoaXMgZXh0cmEg
aW5mb3JtYXRpb24gd2lsbCBiZSBuZWVkZWQgdG8gc3VwcG9ydAorICAgICAgICBMYXlvdXRUZXN0
Q29udHJvbGxlcidzIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBpbiBFRkwncworICAgICAg
ICBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEVmbDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tf
ZnJhbWVfcmVxdWVzdF93aWxsX3NlbmQpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuaDoKKyAg
ICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwor
MjAxMi0wNC0yMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgorCiAgICAgICAgIFtFRkxdIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGlt
cGxlbWVudCBlbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDI1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
RWZsLmNwcAppbmRleCA4ZWFiYzAzLi5jYjJjYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0x
NzAsNyArMTcwLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWQKIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiBjb3JlUmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKQogewogICAgIENTdHJpbmcgdXJs
ID0gY29yZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpOwotICAgIERCRygiUmVzb3VyY2Ug
dXJsPSVzIiwgdXJsLmRhdGEoKSk7CisgICAgQ1N0cmluZyBmaXJzdFBhcnR5ID0gY29yZVJlcXVl
c3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKS5zdHJpbmcoKS51dGY4KCk7CisgICAgQ1N0cmluZyBo
dHRwTWV0aG9kID0gY29yZVJlcXVlc3QuaHR0cE1ldGhvZCgpLnV0ZjgoKTsKKyAgICBEQkcoIlJl
c291cmNlIHVybD0lcywgZmlyc3RfcGFydHk9JXMsIGh0dHBfbWV0aG9kPSVzIiwgdXJsLmRhdGEo
KSwgZmlyc3RQYXJ0eS5kYXRhKCksIGh0dHBNZXRob2QuZGF0YSgpKTsKIAogICAgIC8vIFdlIHdh
bnQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHJlcXVlc3QgZm9yIGEgZG9jdW1lbnQgdG8gYmUg
bG9hZGVkIGludG8KICAgICAvLyB0aGUgbWFpbiBmcmFtZSwgYSBzdWItZnJhbWUsIG9yIHRoZSBz
dWItb2JqZWN0cyBpbiB0aGF0IGRvY3VtZW50LgpAQCAtMTgwLDE0ICsxODIsMjggQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgdW5zaWcKICAgICAgICAgICAgIGlzTWFpbkZyYW1lUmVxdWVzdCA9IChsb2Fk
ZXIgPT0gZnJhbWVMb2FkZXItPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSAmJiBmcmFtZUxv
YWRlci0+aXNMb2FkaW5nTWFpbkZyYW1lKCkpOwogICAgIH0KIAotICAgIEV3a19GcmFtZV9SZXNv
dXJjZV9SZXF1ZXN0IHJlcXVlc3QgPSB7IDAsIGlkZW50aWZpZXIsIG1fZnJhbWUsIGlzTWFpbkZy
YW1lUmVxdWVzdCB9OworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0IHJlcXVlc3QgPSB7
IDAsIGZpcnN0UGFydHkuZGF0YSgpLCBodHRwTWV0aG9kLmRhdGEoKSwgaWRlbnRpZmllciwgbV9m
cmFtZSwgaXNNYWluRnJhbWVSZXF1ZXN0IH07CiAgICAgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVl
c3Qgb3JpZyA9IHJlcXVlc3Q7IC8qIEluaXRpYWxpemUgY29uc3QgZmllbGRzLiAqLwogCiAgICAg
b3JpZy51cmwgPSByZXF1ZXN0LnVybCA9IHVybC5kYXRhKCk7CiAKLSAgICBld2tfZnJhbWVfcmVx
dWVzdF93aWxsX3NlbmQobV9mcmFtZSwgJnJlcXVlc3QpOworICAgIEV3a19GcmFtZV9SZXNvdXJj
ZV9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZTsKKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVz
cG9uc2UgcmVzcG9uc2VCdWZmZXI7CisgICAgQ1N0cmluZyByZWRpcmVjdFVybDsKIAotICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92aWV3LCAicmVzb3VyY2UscmVxdWVzdCx3
aWxsc2VuZCIsICZyZXF1ZXN0KTsKKyAgICBpZiAoY29yZVJlc3BvbnNlLmlzTnVsbCgpKQorICAg
ICAgICByZWRpcmVjdFJlc3BvbnNlID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgcmVkaXJlY3RV
cmwgPSBjb3JlUmVzcG9uc2UudXJsKCkuc3RyaW5nKCkudXRmOCgpOworICAgICAgICByZXNwb25z
ZUJ1ZmZlci51cmwgPSByZWRpcmVjdFVybC5kYXRhKCk7CisgICAgICAgIHJlc3BvbnNlQnVmZmVy
LnN0YXR1c19jb2RlID0gY29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CisgICAgICAgIHJl
ZGlyZWN0UmVzcG9uc2UgPSAmcmVzcG9uc2VCdWZmZXI7CisgICAgfQorICAgIEV3a19GcmFtZV9S
ZXNvdXJjZV9NZXNzYWdlcyBtZXNzYWdlcyA9IHsgJnJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Ug
fTsKKworICAgIGV3a19mcmFtZV9yZXF1ZXN0X3dpbGxfc2VuZChtX2ZyYW1lLCAmbWVzc2FnZXMp
OworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcsICJyZXNvdXJj
ZSxyZXF1ZXN0LHdpbGxzZW5kIiwgJm1lc3NhZ2VzKTsKIAogICAgIGlmIChyZXF1ZXN0LnVybCAh
PSBvcmlnLnVybCkgewogICAgICAgICBjb3JlUmVxdWVzdC5zZXRVUkwoS1VSTChLVVJMKCksIHJl
cXVlc3QudXJsKSk7CkBAIC0yMDcsNyArMjIzLDkgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZAog
dm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVl
c3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIGNvcmVSZXF1ZXN0KQogewogICAgIENTdHJpbmcgdXJsID0gY29y
ZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpOwotICAgIERCRygiUmVzb3VyY2UgdXJsPSVz
IiwgdXJsLmRhdGEoKSk7CisgICAgQ1N0cmluZyBmaXJzdFBhcnR5ID0gY29yZVJlcXVlc3QuZmly
c3RQYXJ0eUZvckNvb2tpZXMoKS5zdHJpbmcoKS51dGY4KCk7CisgICAgQ1N0cmluZyBodHRwTWV0
aG9kID0gY29yZVJlcXVlc3QuaHR0cE1ldGhvZCgpLnV0ZjgoKTsKKyAgICBEQkcoIlJlc291cmNl
IHVybD0lcywgRmlyc3QgcGFydHk9JXMsIEhUVFAgbWV0aG9kPSVzIiwgdXJsLmRhdGEoKSwgZmly
c3RQYXJ0eS5kYXRhKCksIGh0dHBNZXRob2QuZGF0YSgpKTsKIAogICAgIGJvb2wgaXNNYWluRnJh
bWVSZXF1ZXN0ID0gZmFsc2U7CiAgICAgaWYgKGxvYWRlcikgewpAQCAtMjE1LDcgKzIzMyw3IEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpCiAgICAgICAgICAgICBpc01haW5GcmFtZVJlcXVlc3Qg
PSAobG9hZGVyID09IGZyYW1lTG9hZGVyLT5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkgJiYg
ZnJhbWVMb2FkZXItPmlzTG9hZGluZ01haW5GcmFtZSgpKTsKICAgICB9CiAKLSAgICBFd2tfRnJh
bWVfUmVzb3VyY2VfUmVxdWVzdCByZXF1ZXN0ID0geyAwLCBpZGVudGlmaWVyLCBtX2ZyYW1lLCBp
c01haW5GcmFtZVJlcXVlc3QgfTsKKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCByZXF1
ZXN0ID0geyB1cmwuZGF0YSgpLCBmaXJzdFBhcnR5LmRhdGEoKSwgaHR0cE1ldGhvZC5kYXRhKCks
IGlkZW50aWZpZXIsIG1fZnJhbWUsIGlzTWFpbkZyYW1lUmVxdWVzdCB9OwogICAgIGV3a19mcmFt
ZV9yZXF1ZXN0X2Fzc2lnbl9pZGVudGlmaWVyKG1fZnJhbWUsICZyZXF1ZXN0KTsKIH0KIApAQCAt
Mjk4LDEwICszMTYsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnUKIAogICAgIC8vIGlmIG5v
dCBhY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCAtIGxvb2sgYXQgUXQgLT4gUG9saWN5SWdub3JlOwog
ICAgIC8vIEZJWE1FOiBkbyBwcm9wZXIgY2hlY2sgYW5kIG9ubHkgcmVzZXQgZm9ybXMgd2hlbiBv
biBQb2xpY3lJZ25vcmUKLSAgICBjaGFyKiB1cmwgPSBzdHJkdXAocmVzb3VyY2VSZXF1ZXN0LnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1
ZXN0IHJlcXVlc3QgPSB7IHVybCwgMCwgbV9mcmFtZSwgZmFsc2UgfTsKKyAgICBDU3RyaW5nIHVy
bCA9IHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCk7CisgICAgQ1N0cmluZyBm
aXJzdFBhcnR5ID0gcmVzb3VyY2VSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuc3RyaW5n
KCkudXRmOCgpOworICAgIENTdHJpbmcgaHR0cE1ldGhvZCA9IHJlc291cmNlUmVxdWVzdC5odHRw
TWV0aG9kKCkudXRmOCgpOworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0IHJlcXVlc3Qg
PSB7IHVybC5kYXRhKCksIGZpcnN0UGFydHkuZGF0YSgpLCBodHRwTWV0aG9kLmRhdGEoKSwgMCwg
bV9mcmFtZSwgZmFsc2UgfTsKICAgICBib29sIHJldCA9IGV3a192aWV3X25hdmlnYXRpb25fcG9s
aWN5X2RlY2lzaW9uKG1fdmlldywgJnJlcXVlc3QpOwotICAgIGZyZWUodXJsKTsKIAogICAgIFBv
bGljeUFjdGlvbiBwb2xpY3k7CiAgICAgaWYgKCFyZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuY3BwCmluZGV4IDZjNmY2NjguLmY3YzM5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJh
bWUuY3BwCkBAIC0xMjMwLDE1ICsxMjMwLDE1IEBAIHZvaWQgZXdrX2ZyYW1lX3JlZGlyZWN0X2Nh
bmNlbGxlZChFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgKiBjaGFuZ2luZyB2YWx1ZXMgaW4gQHBh
cmFtIHJlcXVlc3QuCiAgKgogICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1lLgotICogQHBhcmFtIHJl
cXVlc3QgUmVxdWVzdCBkZXRhaWxzIHRoYXQgdXNlciBtYXkgb3ZlcnJpZGUuIFdoZW5ldmVyIHZh
bHVlcyBvbgotICogdGhpcyBzdHJ1Y3QgY2hhbmdlcywgaXQgbXVzdCBiZSBwcm9wZXJseSBtYWxs
b2MnZCBhcyBpdCB3aWxsIGJlIGZyZWVkCi0gKiBhZnRlcndhcmRzLgorICogQHBhcmFtIEBwYXJh
bSBtZXNzYWdlcyBNZXNzYWdlcyBjb250YWluaW5nIHRoZSByZXF1ZXN0IGRldGFpbHMgdGhhdCB1
c2VyIG1heSBvdmVycmlkZSBhbmQgYQorICogcG9zc2libGUgcmVkaXJlY3QgcmVwb25zZS4gV2hl
bmV2ZXIgdmFsdWVzIG9uIHRoaXMgc3RydWN0IGNoYW5nZXMsIGl0IG11c3QgYmUgcHJvcGVybHkK
KyAqIG1hbGxvYydkIGFzIGl0IHdpbGwgYmUgZnJlZWQgYWZ0ZXJ3YXJkcy4KICAqCiAgKiBFbWl0
cyBzaWduYWw6ICJyZXNvdXJjZSxyZXF1ZXN0LHdpbGxzZW5kIgogICovCi12b2lkIGV3a19mcmFt
ZV9yZXF1ZXN0X3dpbGxfc2VuZChFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19GcmFtZV9SZXNv
dXJjZV9SZXF1ZXN0KiByZXF1ZXN0KQordm9pZCBld2tfZnJhbWVfcmVxdWVzdF93aWxsX3NlbmQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMqIG1lc3Nh
Z2VzKQogewotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrRnJhbWUsICJy
ZXNvdXJjZSxyZXF1ZXN0LHdpbGxzZW5kIiwgcmVxdWVzdCk7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBt
ZXNzYWdlcyk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDQwOWEw
MTEuLmIxNjg3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTU5LDggKzU5LDgg
QEAKICAqICAtICJyZWRpcmVjdCxjYW5jZWxsZWQiLCB2b2lkOiBjbGllbnQgcmVkaXJlY3Qgd2Fz
IGNhbmNlbGxlZC4KICAqICAtICJyZXNvdXJjZSxyZXF1ZXN0LG5ldyIsIEV3a19GcmFtZV9SZXNv
dXJjZV9SZXF1ZXN0KjogcmVwb3J0cyB0aGF0CiAgKiAgICB0aGVyZSdzIGEgbmV3IHJlc291cmNl
IHJlcXVlc3QuCi0gKiAgLSAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9S
ZXNvdXJjZV9SZXF1ZXN0KjogYSByZXNvdXJjZSB3aWxsCi0gKiAgICBiZSByZXF1ZXN0ZWQuCisg
KiAgLSAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9NZXNz
YWdlcyo6IGEgcmVzb3VyY2Ugd2lsbCBiZSByZXF1ZXN0ZWQuCisgKiAgICBhbmQgdGhlIHBvc3Np
YmxlIHJlZGlyZWN0IHJlc3BvbnNlLgogICogIC0gInN0YXRlLHNhdmUiLCB2b2lkOiBmcmFtZSdz
IHN0YXRlIHdpbGwgYmUgc2F2ZWQgYXMgYSBoaXN0b3J5IGl0ZW0uCiAgKiAgLSAidGl0bGUsY2hh
bmdlZCIsIGNvbnN0IGNoYXIqOiB0aXRsZSBvZiB0aGUgbWFpbiBmcmFtZSB3YXMgY2hhbmdlZC4K
ICAqICAtICJ1cmksY2hhbmdlZCIsIGNvbnN0IGNoYXIqOiB1cmkgb2YgdGhlIG1haW4gZnJhbWUg
d2FzIGNoYW5nZWQuCkBAIC0xMDIsMTkgKzEwMiw0MiBAQCBzdHJ1Y3QgX0V3a19GcmFtZV9Mb2Fk
X0Vycm9yIHsKIC8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0ZyYW1lX1Jlc291cmNl
X1JlcXVlc3QuCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QgRXdr
X0ZyYW1lX1Jlc291cmNlX1JlcXVlc3Q7CiAvKioKLSAqIEBicmllZiAgIFN0cnVjdHVyZSB1c2Vk
IHRvIHJlcG9ydCByZXNvdXJjZSByZXF1ZXN0LgorICogQGJyaWVmICAgU3RydWN0dXJlIGNvbnRh
aW5pbmcgZGV0YWlscyBhYm91dCBhIHJlc291cmNlIHJlcXVlc3QuCiAgKgotICogRGV0YWlscyBn
aXZlbiBiZWZvcmUgYSByZXNvdXJjZSBpcyBsb2FkZWQgb24gYSBnaXZlbiBmcmFtZS4gSXQncyB1
c2VkIGJ5Ci0gKiBld2tfZnJhbWVfcmVxdWVzdF93aWxsX3NlbmQoKSB0byBpbmZvcm0gdGhlIGRl
dGFpbHMgb2YgYSB0by1iZS1sb2FkZWQKLSAqIHJlc291cmNlLCBhbGxvd2luZyB0aGVtIHRvIGJl
IG92ZXJyaWRkZW4uCisgKiBEZXRhaWxzIGdpdmVuIGJlZm9yZSBhIHJlc291cmNlIGlzIGxvYWRl
ZCBvbiBhIGdpdmVuIGZyYW1lLiBJdCdzIHVzZWQgaW4KKyAqIEV3a19GcmFtZV9SZXNvdXJjZV9N
ZXNzYWdlcyB0byBpbmZvcm0gYWJvdXQgdGhlIGRldGFpbHMgb2YgYSByZXNvdXJjZSByZXF1ZXN0
LgogICovCiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0IHsKICAgICBjb25zdCBj
aGFyICp1cmw7IC8qKjwgdXJsIG9mIHRoZSByZXNvdXJjZSAqLworICAgIGNvbnN0IGNoYXIgKmZp
cnN0X3BhcnR5OyAvKio8IGZpcnN0IHBhcnR5IGZvciBjb29raWVzLCBjYW4gbm90IGJlIGNoYW5n
ZWQgKi8KKyAgICBjb25zdCBjaGFyICpodHRwX21ldGhvZDsgLyoqPCBodHRwIG1ldGhvZCwgY2Fu
IG5vdCBiZSBjaGFuZ2VkICovCiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyOyAv
Kio8IGlkZW50aWZpZXIgb2YgcmVzb3VyY2UsIGNhbiBub3QgYmUgY2hhbmdlZCAqLwogICAgIEV2
YXNfT2JqZWN0ICpmcmFtZTsgLyoqPCBmcmFtZSB3aGVyZSB0aGUgcmVzb3VyY2UgaXMgcmVxdWVz
dGVkICovCiAgICAgRWluYV9Cb29sIGlzX21haW5fZnJhbWVfcmVxdWVzdDsgLyoqIDwgaW5kaWNh
dGVzIGlmIHRoZSByZXF1ZXN0IGlzIGZvciB0aGUgbWFpbiBmcmFtZSAqLwogfTsKIAorLy8vIENy
ZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9uc2UuCit0eXBl
ZGVmIHN0cnVjdCBfRXdrX0ZyYW1lX1Jlc291cmNlX1Jlc3BvbnNlIEV3a19GcmFtZV9SZXNvdXJj
ZV9SZXNwb25zZTsKKworLyoqCisgKiBAYnJpZWYgU3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWls
cyBhYm91dCBhIHJlc3BvbnNlIHRvIGEgcmVzb3VyY2UgcmVxdWVzdC4KKyAqCisgKiBEZXRhaWxz
IGdpdmVuIGluIHRoZSByZXNwb25zZSB0byBhIHJlc291cmNlIHJlcXVlc3QuIEl0J3MgdXNlZCBi
eQorICogZXdrX2ZyYW1lX3Jlc3BvbnNlX3JlY2VpdmVkKCkgdG8gaW5mb3JtIGFib3V0IHRoZSBk
ZXRhaWxzIG9mIGEgcmVzcG9uc2UuCisgKi8KK3N0cnVjdCBfRXdrX0ZyYW1lX1Jlc291cmNlX1Jl
c3BvbnNlIHsKKyAgICBjb25zdCBjaGFyICp1cmw7IC8qKjwgdXJsIG9mIHRoZSByZXNvdXJjZSAq
LworICAgIGludCBzdGF0dXNfY29kZTsgLyoqPCBodHRwIHN0YXR1cyBjb2RlICovCit9OworCisv
Ly8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcy4K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMgRXdrX0ZyYW1lX1Jl
c291cmNlX01lc3NhZ2VzOworCitzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyB7
CisgICAgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QgKnJlcXVlc3Q7IC8qKjwgcmVzb3VyY2Ug
cmVxdWVzdCAqLworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSAqcmVkaXJlY3RfcmVz
cG9uc2U7IC8qKjwgcmVkaXJlY3QgcmVzcG9uc2UsIGNhbiBub3QgYmUgY2hhbmdlZCAqLworfTsK
KwogLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19GcmFtZV9Yc3NfTm90aWZpY2F0aW9u
LgogdHlwZWRlZiBzdHJ1Y3QgX0V3a19GcmFtZV9Yc3NfTm90aWZpY2F0aW9uIEV3a19GcmFtZV9Y
c3NfTm90aWZpY2F0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IGY0
Yjk5YWNlLi40ODA4Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApAQCAtMjI0
LDcgKzIyNCw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xvYWRfZXJyb3IoRXZhc19PYmplY3QqIGV3a0Zy
YW1lLCBjb25zdCBjaGFyKiBlcnJvckRvbWFpbiwgaW50IGVyCiB2b2lkIGV3a19mcmFtZV9sb2Fk
X3Byb2dyZXNzX2NoYW5nZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIAogdm9pZCBld2tfZnJh
bWVfcmVkaXJlY3RfY2FuY2VsbGVkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7Ci12b2lkIGV3a19m
cmFtZV9yZXF1ZXN0X3dpbGxfc2VuZChFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19GcmFtZV9S
ZXNvdXJjZV9SZXF1ZXN0KiByZXF1ZXN0KTsKK3ZvaWQgZXdrX2ZyYW1lX3JlcXVlc3Rfd2lsbF9z
ZW5kKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzKiBt
ZXNzYWdlcyk7CiB2b2lkIGV3a19mcmFtZV9yZXF1ZXN0X2Fzc2lnbl9pZGVudGlmaWVyKEV2YXNf
T2JqZWN0KiBld2tGcmFtZSwgY29uc3QgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QqIHJlcXVl
c3QpOwogdm9pZCBld2tfZnJhbWVfdmlld19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSwgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CmluZGV4IGYyZjBiZTEuLjQyYzRkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC02
OCw4ICs2OCw4IEBACiAgKiAgLSAibWl4ZWRjb250ZW50LHJ1biIsIHZvaWQ6IGFueSBvZiB0aGUg
Y29udGFpbmluZyBmcmFtZXMgaGFzIGxvYWRlZCBhbmQgcnVuIG1peGVkIGNvbnRlbnQuCiAgKiAg
LSAib25sb2FkLGV2ZW50IiwgRXZhc19PYmplY3QqOiBhIGZyYW1lIG9ubG9hZCBldmVudCBoYXMg
YmVlbiByZWNlaXZlZC4KICAqICAtICJyZWFkeSIsIHZvaWQ6IHBhZ2UgaXMgZnVsbHkgbG9hZGVk
LgotICogIC0gInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBFd2tfRnJhbWVfUmVzb3VyY2Vf
UmVxdWVzdCo6IGEgcmVzb3VyY2Ugd2lsbAotICogICAgYmUgcmVxdWVzdGVkLgorICogIC0gInJl
c291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBFd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMqOiBh
IHJlc291cmNlIHdpbGwgYmUgcmVxdWVzdGVkLgorICogICAgYW5kIHRoZSBwb3NzaWJsZSByZWRp
cmVjdCByZXNwb25zZS4KICAqICAtICJzY3JvbGxiYXJzLHZpc2libGUsZ2V0IiwgRWluYV9Cb29s
ICo6IGV4cGVjdHMgYSBAYyBFSU5BX1RSVUUgaWYgc2Nyb2xsYmFycwogICogICAgYXJlIHZpc2li
bGU7IEBjIEVJTkFfRkFMU0UsIG90aGVyd2lzZS4KICAqICAtICJzY3JvbGxiYXJzLHZpc2libGUs
c2V0IiwgRWluYV9Cb29sOiBzZXRzIHNjcm9sbGJhcnMgdmlzaWJpbGl0eS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTkzNWM1Li4wYTUyOWY5
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTItMDQtMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1
bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdICJyZXNvdXJjZSxyZXF1ZXN0LHdp
bGxzZW5kIiBzaWduYWwgbmVlZHMgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY3MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSBpbiBFRkwncyBE
dW1wUmVuZGVyVHJlZSB0aGUgbmV3IEV3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyBub3cKKyAg
ICAgICAgcGFzc2VkIHdpdGggdGhlICJyZXNvdXJjZSxyZXF1ZXN0LHdpbGxzZW5kIiBzaWduYWwg
YW5kIGR1bXAKKyAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ldHdvcmsgcmVxdWVzdCBh
bmQgdGhlIHBvc3NpYmxlIG5ldHdvcmsKKyAgICAgICAgcmVzcG9uc2UgaWYgTGF5b3V0VGVzdENv
bnRyb2xsZXIncyBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgcmV0dXJucworICAgICAgICB0
cnVlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcDoKKyAgICAgICAgKHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAgICAodXJs
U3VpdGFibGVGb3JUZXN0UmVzdWx0KToKKyAgICAgICAgKGRlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldpbGxTZW5kUmVx
dWVzdCk6CisKIDIwMTItMDQtMjMgIEVyaXEgQXVndXN0aW5lICA8ZWF1Z3VzdGlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldHVybiB2YWx1ZSBmcm9tIGV4ZWN1dGVkIHNjcmlwdCBpbiBDaHJv
bWl1bS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuY3BwCmluZGV4IDE5NzAyMTEuLmUwOTc3ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMjE3LDYgKzIxNyw3MiBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVz
KCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNF
bmFibGVkKG1haW5WaWV3KCksIHRydWUpOwogfQogCitzdGF0aWMgQ1N0cmluZyBwYXRoU3VpdGFi
bGVGb3JUZXN0UmVzdWx0KGNvbnN0IGNoYXIqIHVyaVN0cmluZykKK3sKKyAgICBpZiAoIXVyaVN0
cmluZykKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKworICAgIEtVUkwgdXJpID0gS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHVyaVN0cmluZyk7CisKKyAgICBpZiAoIXVyaS5pc0xvY2FsRmlsZSgp
KQorICAgICAgICByZXR1cm4gdXJpLnN0cmluZygpLnV0ZjgoKTsKKworICAgIFN0cmluZyBwYXRo
U3RyaW5nID0gdXJpLnBhdGgoKTsKKyAgICBzaXplX3QgaW5kZXhCYXNlTmFtZSA9IHBhdGhTdHJp
bmcucmV2ZXJzZUZpbmQoJy8nKTsKKyAgICBTdHJpbmcgYmFzZU5hbWU7CisgICAgaWYgKGluZGV4
QmFzZU5hbWUgPT0gbm90Rm91bmQpCisgICAgICAgIGJhc2VOYW1lID0gcGF0aFN0cmluZzsKKyAg
ICBlbHNlCisgICAgICAgIGJhc2VOYW1lID0gcGF0aFN0cmluZy5zdWJzdHJpbmcoaW5kZXhCYXNl
TmFtZSArIDEpOworCisgICAgU3RyaW5nIGRpck5hbWU7CisgICAgaWYgKGluZGV4QmFzZU5hbWUg
IT0gbm90Rm91bmQpIHsKKyAgICAgICAgc2l6ZV90IGluZGV4RGlyTmFtZSA9IHBhdGhTdHJpbmcu
cmV2ZXJzZUZpbmQoJy8nLCBpbmRleEJhc2VOYW1lIC0gMSk7CisgICAgICAgIGlmIChpbmRleERp
ck5hbWUgIT0gbm90Rm91bmQpCisgICAgICAgICAgICBkaXJOYW1lID0gcGF0aFN0cmluZy5zdWJz
dHJpbmcoaW5kZXhEaXJOYW1lICsgMSwgaW5kZXhCYXNlTmFtZSAtIGluZGV4RGlyTmFtZSAtIDEp
OworICAgIH0KKworICAgIFN0cmluZyByZXQgPSBkaXJOYW1lICsgIi8iICsgYmFzZU5hbWU7Cisg
ICAgcmV0dXJuIHJldC51dGY4KCk7Cit9CisKK3N0YXRpYyBDU3RyaW5nIHVybFN1aXRhYmxlRm9y
VGVzdFJlc3VsdChjb25zdCBjaGFyKiB1cmlTdHJpbmcpCit7CisgICAgS1VSTCB1cmkgPSBLVVJM
KFBhcnNlZFVSTFN0cmluZywgdXJpU3RyaW5nKTsKKyAgICBpZiAoIXVyaS5pc0xvY2FsRmlsZSgp
KQorICAgICAgICByZXR1cm4gQ1N0cmluZyh1cmlTdHJpbmcpOworCisgICAgdW5zaWduZWQgc3Rh
cnRJbmRleCA9IHVyaS5wYXRoQWZ0ZXJMYXN0U2xhc2goKTsKKyAgICByZXR1cm4gdXJpLnN0cmlu
ZygpLnN1YnN0cmluZyhzdGFydEluZGV4KS51dGY4KCk7Cit9CisKK3N0YXRpYyBDU3RyaW5nIGRl
c2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0
KiByZXF1ZXN0KQoreworICAgIFN0cmluZyByZXQgPSAiPE5TVVJMUmVxdWVzdCBVUkwgIjsKKyAg
ICByZXQgKz0gcGF0aFN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LT51cmwpLmRhdGEoKTsK
KyAgICByZXQgKz0gIiwgbWFpbiBkb2N1bWVudCBVUkwgIjsKKyAgICByZXQgKz0gdXJsU3VpdGFi
bGVGb3JUZXN0UmVzdWx0KHJlcXVlc3QtPmZpcnN0X3BhcnR5KS5kYXRhKCk7CisgICAgcmV0ICs9
ICIsIGh0dHAgbWV0aG9kICI7CisgICAgcmV0ICs9IHJlcXVlc3QtPmh0dHBfbWV0aG9kID8gU3Ry
aW5nKHJlcXVlc3QtPmh0dHBfbWV0aG9kKSA6ICIobm9uZSkiOworICAgIHJldCArPSAiPiI7CisK
KyAgICByZXR1cm4gcmV0LnV0ZjgoKTsKK30KKworc3RhdGljIENTdHJpbmcgZGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3QgRXdrX0ZyYW1lX1Jlc291cmNlX1Jlc3BvbnNlKiBy
ZXNwb25zZSkKK3sKKyAgICBpZiAoIXJlc3BvbnNlKQorICAgICAgICByZXR1cm4gQ1N0cmluZygi
KG51bGwpIik7CisKKyAgICBTdHJpbmcgcmV0ID0gIjxOU1VSTFJlc3BvbnNlICI7CisgICAgcmV0
ICs9IHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UtPnVybCkuZGF0YSgpOworICAg
IHJldCArPSAiLCBodHRwIHN0YXR1cyBjb2RlICI7CisgICAgcmV0ICs9IFN0cmluZzo6bnVtYmVy
KHJlc3BvbnNlLT5zdGF0dXNfY29kZSk7CisgICAgcmV0ICs9ICI+IjsKKworICAgIHJldHVybiBy
ZXQudXRmOCgpOworfQorCiAvLyBTbWFydCBDYWxsYmFja3MKIC8vIC0tLS0tLS0tLS0tLS0tLQog
CkBAIC0zMTAsMjMgKzM3NiwyOSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkRvY3Vt
ZW50TG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZQogCiB2b2lkIER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldpbGxTZW5kUmVxdWVzdCh2b2lkKiwgRXZhc19PYmplY3Qq
LCB2b2lkKiBldmVudEluZm8pCiB7Ci0gICAgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QqIHJl
cXVlc3QgPSBzdGF0aWNfY2FzdDxFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCo+KGV2ZW50SW5m
byk7CisgICAgRXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzKiBtZXNzYWdlcyA9IHN0YXRpY19j
YXN0PEV3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyo+KGV2ZW50SW5mbyk7CisKKyAgICBpZiAo
IWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
KCkpCisgICAgICAgIHByaW50ZigiJXMgLSB3aWxsU2VuZFJlcXVlc3QgJXMgcmVkaXJlY3RSZXNw
b25zZSAlc1xuIiwKKyAgICAgICAgICAgICAgIHBhdGhTdWl0YWJsZUZvclRlc3RSZXN1bHQobWVz
c2FnZXMtPnJlcXVlc3QtPnVybCkuZGF0YSgpLAorICAgICAgICAgICAgICAgZGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQobWVzc2FnZXMtPnJlcXVlc3QpLmRhdGEoKSwKKyAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KG1lc3NhZ2VzLT5yZWRpcmVj
dF9yZXNwb25zZSkuZGF0YSgpKTsKIAogICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRy
b2xsZXItPndpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpIHsKICAgICAgICAgLy8gQXMgcmVx
dWVzdGVkIGJ5IHRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciwgZG9uJ3QgcGVyZm9ybSB0aGUgcmVx
dWVzdC4KLSAgICAgICAgcmVxdWVzdC0+dXJsID0gMDsKKyAgICAgICAgbWVzc2FnZXMtPnJlcXVl
c3QtPnVybCA9IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBLVVJMIHVybCA9IEtV
UkwoUGFyc2VkVVJMU3RyaW5nLCByZXF1ZXN0LT51cmwpOworICAgIEtVUkwgdXJsID0gS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIG1lc3NhZ2VzLT5yZXF1ZXN0LT51cmwpOwogCiAgICAgaWYgKHVybC5p
c1ZhbGlkKCkKICAgICAgICAgJiYgdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKQogICAgICAg
ICAmJiB1cmwuaG9zdCgpICE9ICIxMjcuMC4wLjEiCiAgICAgICAgICYmIHVybC5ob3N0KCkgIT0g
IjI1NS4yNTUuMjU1LjI1NSIKICAgICAgICAgJiYgdXJsLmhvc3QoKS5sb3dlcigpICE9ICJsb2Nh
bGhvc3QiKSB7Ci0gICAgICAgIHByaW50ZigiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
ICVzXG4iLCByZXF1ZXN0LT51cmwpOwotICAgICAgICByZXF1ZXN0LT51cmwgPSAwOworICAgICAg
ICBwcmludGYoIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAlc1xuIiwgbWVzc2FnZXMt
PnJlcXVlc3QtPnVybCk7CisgICAgICAgIG1lc3NhZ2VzLT5yZXF1ZXN0LT51cmwgPSAwOwogICAg
IH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138756</attachid>
            <date>2012-04-25 01:13:22 -0700</date>
            <delta_ts>2012-04-26 00:08:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>84670_extend_willsend.path</filename>
            <type>text/plain</type>
            <size>16879</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3NDQzZmY1Li5hMmEyMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDQtMjUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhl
LmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdICJyZXNvdXJjZSxyZXF1ZXN0
LHdpbGxzZW5kIiBzaWduYWwgbmVlZHMgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY3MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSAicmVzb3VyY2Us
cmVxdWVzdCx3aWxsc2VuZCIgc2lnbmFsIG5vdyBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uCisg
ICAgICAgIGFib3V0IHRoZSBuZXR3b3JrIHJlcXVlc3QgYXMgd2VsbCBhcyBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgcG9zc2libGUKKyAgICAgICAgcmVkaXJlY3QgcmVzcG9uc2UuIFRoaXMgZXh0cmEg
aW5mb3JtYXRpb24gd2lsbCBiZSBuZWVkZWQgdG8gc3VwcG9ydAorICAgICAgICBMYXlvdXRUZXN0
Q29udHJvbGxlcidzIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBpbiBFRkwncworICAgICAg
ICBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEVmbDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tf
ZnJhbWVfcmVxdWVzdF93aWxsX3NlbmQpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuaDoKKyAg
ICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwog
MjAxMi0wNC0yMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgogCiAgICAgICAgIFtFRkxdIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGlt
cGxlbWVudCBlbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
RWZsLmNwcAppbmRleCA4ZWFiYzAzLi4yMDFiMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0x
NzAsNyArMTcwLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWQKIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiBjb3JlUmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKQogewogICAgIENTdHJpbmcgdXJs
ID0gY29yZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpOwotICAgIERCRygiUmVzb3VyY2Ug
dXJsPSVzIiwgdXJsLmRhdGEoKSk7CisgICAgQ1N0cmluZyBmaXJzdFBhcnR5ID0gY29yZVJlcXVl
c3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKS5zdHJpbmcoKS51dGY4KCk7CisgICAgQ1N0cmluZyBo
dHRwTWV0aG9kID0gY29yZVJlcXVlc3QuaHR0cE1ldGhvZCgpLnV0ZjgoKTsKKyAgICBEQkcoIlJl
c291cmNlIHVybD0lcywgZmlyc3RfcGFydHk9JXMsIGh0dHBfbWV0aG9kPSVzIiwgdXJsLmRhdGEo
KSwgZmlyc3RQYXJ0eS5kYXRhKCksIGh0dHBNZXRob2QuZGF0YSgpKTsKIAogICAgIC8vIFdlIHdh
bnQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHJlcXVlc3QgZm9yIGEgZG9jdW1lbnQgdG8gYmUg
bG9hZGVkIGludG8KICAgICAvLyB0aGUgbWFpbiBmcmFtZSwgYSBzdWItZnJhbWUsIG9yIHRoZSBz
dWItb2JqZWN0cyBpbiB0aGF0IGRvY3VtZW50LgpAQCAtMTgwLDE0ICsxODIsMjcgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgdW5zaWcKICAgICAgICAgICAgIGlzTWFpbkZyYW1lUmVxdWVzdCA9IChsb2Fk
ZXIgPT0gZnJhbWVMb2FkZXItPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSAmJiBmcmFtZUxv
YWRlci0+aXNMb2FkaW5nTWFpbkZyYW1lKCkpOwogICAgIH0KIAotICAgIEV3a19GcmFtZV9SZXNv
dXJjZV9SZXF1ZXN0IHJlcXVlc3QgPSB7IDAsIGlkZW50aWZpZXIsIG1fZnJhbWUsIGlzTWFpbkZy
YW1lUmVxdWVzdCB9OworICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0IHJlcXVlc3QgPSB7
IDAsIGZpcnN0UGFydHkuZGF0YSgpLCBodHRwTWV0aG9kLmRhdGEoKSwgaWRlbnRpZmllciwgbV9m
cmFtZSwgaXNNYWluRnJhbWVSZXF1ZXN0IH07CiAgICAgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVl
c3Qgb3JpZyA9IHJlcXVlc3Q7IC8qIEluaXRpYWxpemUgY29uc3QgZmllbGRzLiAqLwogCiAgICAg
b3JpZy51cmwgPSByZXF1ZXN0LnVybCA9IHVybC5kYXRhKCk7CiAKLSAgICBld2tfZnJhbWVfcmVx
dWVzdF93aWxsX3NlbmQobV9mcmFtZSwgJnJlcXVlc3QpOworICAgIEV3a19GcmFtZV9SZXNvdXJj
ZV9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZTsKKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVz
cG9uc2UgcmVzcG9uc2VCdWZmZXI7CisgICAgQ1N0cmluZyByZWRpcmVjdFVybDsKIAotICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92aWV3LCAicmVzb3VyY2UscmVxdWVzdCx3
aWxsc2VuZCIsICZyZXF1ZXN0KTsKKyAgICBpZiAoY29yZVJlc3BvbnNlLmlzTnVsbCgpKQorICAg
ICAgICByZWRpcmVjdFJlc3BvbnNlID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgcmVkaXJlY3RV
cmwgPSBjb3JlUmVzcG9uc2UudXJsKCkuc3RyaW5nKCkudXRmOCgpOworICAgICAgICByZXNwb25z
ZUJ1ZmZlci51cmwgPSByZWRpcmVjdFVybC5kYXRhKCk7CisgICAgICAgIHJlc3BvbnNlQnVmZmVy
LnN0YXR1c19jb2RlID0gY29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CisgICAgICAgIHJl
ZGlyZWN0UmVzcG9uc2UgPSAmcmVzcG9uc2VCdWZmZXI7CisgICAgfQorCisgICAgRXdrX0ZyYW1l
X1Jlc291cmNlX01lc3NhZ2VzIG1lc3NhZ2VzID0geyAmcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25z
ZSB9OworICAgIGV3a19mcmFtZV9yZXF1ZXN0X3dpbGxfc2VuZChtX2ZyYW1lLCAmbWVzc2FnZXMp
OworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92aWV3LCAicmVzb3VyY2Us
cmVxdWVzdCx3aWxsc2VuZCIsICZtZXNzYWdlcyk7CiAKICAgICBpZiAocmVxdWVzdC51cmwgIT0g
b3JpZy51cmwpIHsKICAgICAgICAgY29yZVJlcXVlc3Quc2V0VVJMKEtVUkwoS1VSTCgpLCByZXF1
ZXN0LnVybCkpOwpAQCAtMjA3LDcgKzIyMiw5IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQKIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBjb3JlUmVxdWVzdCkKIHsKICAgICBDU3RyaW5nIHVybCA9IGNvcmVS
ZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKTsKLSAgICBEQkcoIlJlc291cmNlIHVybD0lcyIs
IHVybC5kYXRhKCkpOworICAgIENTdHJpbmcgZmlyc3RQYXJ0eSA9IGNvcmVSZXF1ZXN0LmZpcnN0
UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCkudXRmOCgpOworICAgIENTdHJpbmcgaHR0cE1ldGhv
ZCA9IGNvcmVSZXF1ZXN0Lmh0dHBNZXRob2QoKS51dGY4KCk7CisgICAgREJHKCJSZXNvdXJjZSB1
cmw9JXMsIEZpcnN0IHBhcnR5PSVzLCBIVFRQIG1ldGhvZD0lcyIsIHVybC5kYXRhKCksIGZpcnN0
UGFydHkuZGF0YSgpLCBodHRwTWV0aG9kLmRhdGEoKSk7CiAKICAgICBib29sIGlzTWFpbkZyYW1l
UmVxdWVzdCA9IGZhbHNlOwogICAgIGlmIChsb2FkZXIpIHsKQEAgLTIxNSw3ICsyMzIsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjphc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVz
dCh1bnNpZ25lZCBsb25nIGlkZW50aQogICAgICAgICAgICAgaXNNYWluRnJhbWVSZXF1ZXN0ID0g
KGxvYWRlciA9PSBmcmFtZUxvYWRlci0+cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpICYmIGZy
YW1lTG9hZGVyLT5pc0xvYWRpbmdNYWluRnJhbWUoKSk7CiAgICAgfQogCi0gICAgRXdrX0ZyYW1l
X1Jlc291cmNlX1JlcXVlc3QgcmVxdWVzdCA9IHsgMCwgaWRlbnRpZmllciwgbV9mcmFtZSwgaXNN
YWluRnJhbWVSZXF1ZXN0IH07CisgICAgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QgcmVxdWVz
dCA9IHsgdXJsLmRhdGEoKSwgZmlyc3RQYXJ0eS5kYXRhKCksIGh0dHBNZXRob2QuZGF0YSgpLCBp
ZGVudGlmaWVyLCBtX2ZyYW1lLCBpc01haW5GcmFtZVJlcXVlc3QgfTsKICAgICBld2tfZnJhbWVf
cmVxdWVzdF9hc3NpZ25faWRlbnRpZmllcihtX2ZyYW1lLCAmcmVxdWVzdCk7CiB9CiAKQEAgLTI5
OCwxMCArMzE1LDExIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVBvbGljeUZ1CiAKICAgICAvLyBpZiBub3Qg
YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QgLSBsb29rIGF0IFF0IC0+IFBvbGljeUlnbm9yZTsKICAg
ICAvLyBGSVhNRTogZG8gcHJvcGVyIGNoZWNrIGFuZCBvbmx5IHJlc2V0IGZvcm1zIHdoZW4gb24g
UG9saWN5SWdub3JlCi0gICAgY2hhciogdXJsID0gc3RyZHVwKHJlc291cmNlUmVxdWVzdC51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVz
dCByZXF1ZXN0ID0geyB1cmwsIDAsIG1fZnJhbWUsIGZhbHNlIH07CisgICAgQ1N0cmluZyB1cmwg
PSByZXNvdXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpOworICAgIENTdHJpbmcgZmly
c3RQYXJ0eSA9IHJlc291cmNlUmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLnN0cmluZygp
LnV0ZjgoKTsKKyAgICBDU3RyaW5nIGh0dHBNZXRob2QgPSByZXNvdXJjZVJlcXVlc3QuaHR0cE1l
dGhvZCgpLnV0ZjgoKTsKKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCByZXF1ZXN0ID0g
eyB1cmwuZGF0YSgpLCBmaXJzdFBhcnR5LmRhdGEoKSwgaHR0cE1ldGhvZC5kYXRhKCksIDAsIG1f
ZnJhbWUsIGZhbHNlIH07CiAgICAgYm9vbCByZXQgPSBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbihtX3ZpZXcsICZyZXF1ZXN0KTsKLSAgICBmcmVlKHVybCk7CiAKICAgICBQb2xp
Y3lBY3Rpb24gcG9saWN5OwogICAgIGlmICghcmV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcAppbmRleCA2YzZmNjY4Li5mN2MzOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmNwcApAQCAtMTIzMCwxNSArMTIzMCwxNSBAQCB2b2lkIGV3a19mcmFtZV9yZWRpcmVjdF9jYW5j
ZWxsZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICogY2hhbmdpbmcgdmFsdWVzIGluIEBwYXJh
bSByZXF1ZXN0LgogICoKICAqIEBwYXJhbSBld2tGcmFtZSBGcmFtZS4KLSAqIEBwYXJhbSByZXF1
ZXN0IFJlcXVlc3QgZGV0YWlscyB0aGF0IHVzZXIgbWF5IG92ZXJyaWRlLiBXaGVuZXZlciB2YWx1
ZXMgb24KLSAqIHRoaXMgc3RydWN0IGNoYW5nZXMsIGl0IG11c3QgYmUgcHJvcGVybHkgbWFsbG9j
J2QgYXMgaXQgd2lsbCBiZSBmcmVlZAotICogYWZ0ZXJ3YXJkcy4KKyAqIEBwYXJhbSBAcGFyYW0g
bWVzc2FnZXMgTWVzc2FnZXMgY29udGFpbmluZyB0aGUgcmVxdWVzdCBkZXRhaWxzIHRoYXQgdXNl
ciBtYXkgb3ZlcnJpZGUgYW5kIGEKKyAqIHBvc3NpYmxlIHJlZGlyZWN0IHJlcG9uc2UuIFdoZW5l
dmVyIHZhbHVlcyBvbiB0aGlzIHN0cnVjdCBjaGFuZ2VzLCBpdCBtdXN0IGJlIHByb3Blcmx5Cisg
KiBtYWxsb2MnZCBhcyBpdCB3aWxsIGJlIGZyZWVkIGFmdGVyd2FyZHMuCiAgKgogICogRW1pdHMg
c2lnbmFsOiAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIKICAqLwotdm9pZCBld2tfZnJhbWVf
cmVxdWVzdF93aWxsX3NlbmQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFd2tfRnJhbWVfUmVzb3Vy
Y2VfUmVxdWVzdCogcmVxdWVzdCkKK3ZvaWQgZXdrX2ZyYW1lX3JlcXVlc3Rfd2lsbF9zZW5kKEV2
YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzKiBtZXNzYWdl
cykKIHsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAicmVz
b3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIHJlcXVlc3QpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwoZXdrRnJhbWUsICJyZXNvdXJjZSxyZXF1ZXN0LHdpbGxzZW5kIiwgbWVz
c2FnZXMpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCA0MDlhMDEx
Li5iMTY4N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC01OSw4ICs1OSw4IEBA
CiAgKiAgLSAicmVkaXJlY3QsY2FuY2VsbGVkIiwgdm9pZDogY2xpZW50IHJlZGlyZWN0IHdhcyBj
YW5jZWxsZWQuCiAgKiAgLSAicmVzb3VyY2UscmVxdWVzdCxuZXciLCBFd2tfRnJhbWVfUmVzb3Vy
Y2VfUmVxdWVzdCo6IHJlcG9ydHMgdGhhdAogICogICAgdGhlcmUncyBhIG5ldyByZXNvdXJjZSBy
ZXF1ZXN0LgotICogIC0gInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBFd2tfRnJhbWVfUmVz
b3VyY2VfUmVxdWVzdCo6IGEgcmVzb3VyY2Ugd2lsbAotICogICAgYmUgcmVxdWVzdGVkLgorICog
IC0gInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBFd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2Fn
ZXMqOiBhIHJlc291cmNlIHdpbGwgYmUgcmVxdWVzdGVkLgorICogICAgYW5kIHRoZSBwb3NzaWJs
ZSByZWRpcmVjdCByZXNwb25zZS4KICAqICAtICJzdGF0ZSxzYXZlIiwgdm9pZDogZnJhbWUncyBz
dGF0ZSB3aWxsIGJlIHNhdmVkIGFzIGEgaGlzdG9yeSBpdGVtLgogICogIC0gInRpdGxlLGNoYW5n
ZWQiLCBjb25zdCBjaGFyKjogdGl0bGUgb2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCiAg
KiAgLSAidXJpLGNoYW5nZWQiLCBjb25zdCBjaGFyKjogdXJpIG9mIHRoZSBtYWluIGZyYW1lIHdh
cyBjaGFuZ2VkLgpAQCAtMTAyLDE5ICsxMDIsNDIgQEAgc3RydWN0IF9Fd2tfRnJhbWVfTG9hZF9F
cnJvciB7CiAvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19GcmFtZV9SZXNvdXJjZV9S
ZXF1ZXN0LgogdHlwZWRlZiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0IEV3a19G
cmFtZV9SZXNvdXJjZV9SZXF1ZXN0OwogLyoqCi0gKiBAYnJpZWYgICBTdHJ1Y3R1cmUgdXNlZCB0
byByZXBvcnQgcmVzb3VyY2UgcmVxdWVzdC4KKyAqIEBicmllZiAgIFN0cnVjdHVyZSBjb250YWlu
aW5nIGRldGFpbHMgYWJvdXQgYSByZXNvdXJjZSByZXF1ZXN0LgogICoKLSAqIERldGFpbHMgZ2l2
ZW4gYmVmb3JlIGEgcmVzb3VyY2UgaXMgbG9hZGVkIG9uIGEgZ2l2ZW4gZnJhbWUuIEl0J3MgdXNl
ZCBieQotICogZXdrX2ZyYW1lX3JlcXVlc3Rfd2lsbF9zZW5kKCkgdG8gaW5mb3JtIHRoZSBkZXRh
aWxzIG9mIGEgdG8tYmUtbG9hZGVkCi0gKiByZXNvdXJjZSwgYWxsb3dpbmcgdGhlbSB0byBiZSBv
dmVycmlkZGVuLgorICogRGV0YWlscyBnaXZlbiBiZWZvcmUgYSByZXNvdXJjZSBpcyBsb2FkZWQg
b24gYSBnaXZlbiBmcmFtZS4gSXQncyB1c2VkIGluCisgKiBFd2tfRnJhbWVfUmVzb3VyY2VfTWVz
c2FnZXMgdG8gaW5mb3JtIGFib3V0IHRoZSBkZXRhaWxzIG9mIGEgcmVzb3VyY2UgcmVxdWVzdC4K
ICAqLwogc3RydWN0IF9Fd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCB7CiAgICAgY29uc3QgY2hh
ciAqdXJsOyAvKio8IHVybCBvZiB0aGUgcmVzb3VyY2UgKi8KKyAgICBjb25zdCBjaGFyICpmaXJz
dF9wYXJ0eTsgLyoqPCBmaXJzdCBwYXJ0eSBmb3IgY29va2llcywgY2FuIG5vdCBiZSBjaGFuZ2Vk
ICovCisgICAgY29uc3QgY2hhciAqaHR0cF9tZXRob2Q7IC8qKjwgaHR0cCBtZXRob2QsIGNhbiBu
b3QgYmUgY2hhbmdlZCAqLwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcjsgLyoq
PCBpZGVudGlmaWVyIG9mIHJlc291cmNlLCBjYW4gbm90IGJlIGNoYW5nZWQgKi8KICAgICBFdmFz
X09iamVjdCAqZnJhbWU7IC8qKjwgZnJhbWUgd2hlcmUgdGhlIHJlc291cmNlIGlzIHJlcXVlc3Rl
ZCAqLwogICAgIEVpbmFfQm9vbCBpc19tYWluX2ZyYW1lX3JlcXVlc3Q7IC8qKiA8IGluZGljYXRl
cyBpZiB0aGUgcmVxdWVzdCBpcyBmb3IgdGhlIG1haW4gZnJhbWUgKi8KIH07CiAKKy8vLyBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0ZyYW1lX1Jlc291cmNlX1Jlc3BvbnNlLgordHlwZWRl
ZiBzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNwb25zZSBFd2tfRnJhbWVfUmVzb3VyY2Vf
UmVzcG9uc2U7CisKKy8qKgorICogQGJyaWVmIFN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbHMg
YWJvdXQgYSByZXNwb25zZSB0byBhIHJlc291cmNlIHJlcXVlc3QuCisgKgorICogRGV0YWlscyBn
aXZlbiBpbiB0aGUgcmVzcG9uc2UgdG8gYSByZXNvdXJjZSByZXF1ZXN0LiBJdCdzIHVzZWQgYnkK
KyAqIGV3a19mcmFtZV9yZXNwb25zZV9yZWNlaXZlZCgpIHRvIGluZm9ybSBhYm91dCB0aGUgZGV0
YWlscyBvZiBhIHJlc3BvbnNlLgorICovCitzdHJ1Y3QgX0V3a19GcmFtZV9SZXNvdXJjZV9SZXNw
b25zZSB7CisgICAgY29uc3QgY2hhciAqdXJsOyAvKio8IHVybCBvZiB0aGUgcmVzb3VyY2UgKi8K
KyAgICBpbnQgc3RhdHVzX2NvZGU7IC8qKjwgaHR0cCBzdGF0dXMgY29kZSAqLworfTsKKworLy8v
IENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMuCit0
eXBlZGVmIHN0cnVjdCBfRXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzIEV3a19GcmFtZV9SZXNv
dXJjZV9NZXNzYWdlczsKKworc3RydWN0IF9Fd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMgewor
ICAgIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0ICpyZXF1ZXN0OyAvKio8IHJlc291cmNlIHJl
cXVlc3QgKi8KKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9uc2UgKnJlZGlyZWN0X3Jlc3Bv
bnNlOyAvKio8IHJlZGlyZWN0IHJlc3BvbnNlLCBjYW4gbm90IGJlIGNoYW5nZWQgKi8KK307CisK
IC8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfRnJhbWVfWHNzX05vdGlmaWNhdGlvbi4K
IHR5cGVkZWYgc3RydWN0IF9Fd2tfRnJhbWVfWHNzX05vdGlmaWNhdGlvbiBFd2tfRnJhbWVfWHNz
X05vdGlmaWNhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19w
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCBmNGI5
OWFjZS4uNDgwODY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTIyNCw3
ICsyMjQsNyBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9yKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSwgY29uc3QgY2hhciogZXJyb3JEb21haW4sIGludCBlcgogdm9pZCBld2tfZnJhbWVfbG9hZF9w
cm9ncmVzc19jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAKIHZvaWQgZXdrX2ZyYW1l
X3JlZGlyZWN0X2NhbmNlbGxlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwotdm9pZCBld2tfZnJh
bWVfcmVxdWVzdF93aWxsX3NlbmQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFd2tfRnJhbWVfUmVz
b3VyY2VfUmVxdWVzdCogcmVxdWVzdCk7Cit2b2lkIGV3a19mcmFtZV9yZXF1ZXN0X3dpbGxfc2Vu
ZChFdmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19GcmFtZV9SZXNvdXJjZV9NZXNzYWdlcyogbWVz
c2FnZXMpOwogdm9pZCBld2tfZnJhbWVfcmVxdWVzdF9hc3NpZ25faWRlbnRpZmllcihFdmFzX09i
amVjdCogZXdrRnJhbWUsIGNvbnN0IEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KiByZXF1ZXN0
KTsKIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZShFdmFzX09iamVjdCogZXdrRnJhbWUs
IFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApp
bmRleCBmMmYwYmUxLi40MmM0ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtNjgs
OCArNjgsOCBAQAogICogIC0gIm1peGVkY29udGVudCxydW4iLCB2b2lkOiBhbnkgb2YgdGhlIGNv
bnRhaW5pbmcgZnJhbWVzIGhhcyBsb2FkZWQgYW5kIHJ1biBtaXhlZCBjb250ZW50LgogICogIC0g
Im9ubG9hZCxldmVudCIsIEV2YXNfT2JqZWN0KjogYSBmcmFtZSBvbmxvYWQgZXZlbnQgaGFzIGJl
ZW4gcmVjZWl2ZWQuCiAgKiAgLSAicmVhZHkiLCB2b2lkOiBwYWdlIGlzIGZ1bGx5IGxvYWRlZC4K
LSAqICAtICJyZXNvdXJjZSxyZXF1ZXN0LHdpbGxzZW5kIiwgRXdrX0ZyYW1lX1Jlc291cmNlX1Jl
cXVlc3QqOiBhIHJlc291cmNlIHdpbGwKLSAqICAgIGJlIHJlcXVlc3RlZC4KKyAqICAtICJyZXNv
dXJjZSxyZXF1ZXN0LHdpbGxzZW5kIiwgRXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzKjogYSBy
ZXNvdXJjZSB3aWxsIGJlIHJlcXVlc3RlZC4KKyAqICAgIGFuZCB0aGUgcG9zc2libGUgcmVkaXJl
Y3QgcmVzcG9uc2UuCiAgKiAgLSAic2Nyb2xsYmFycyx2aXNpYmxlLGdldCIsIEVpbmFfQm9vbCAq
OiBleHBlY3RzIGEgQGMgRUlOQV9UUlVFIGlmIHNjcm9sbGJhcnMKICAqICAgIGFyZSB2aXNpYmxl
OyBAYyBFSU5BX0ZBTFNFLCBvdGhlcndpc2UuCiAgKiAgLSAic2Nyb2xsYmFycyx2aXNpYmxlLHNl
dCIsIEVpbmFfQm9vbDogc2V0cyBzY3JvbGxiYXJzIHZpc2liaWxpdHkuCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjE3YzBjNS4uMjRmMGZmYSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTA0LTI1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1l
ekBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSAicmVzb3VyY2UscmVxdWVzdCx3aWxs
c2VuZCIgc2lnbmFsIG5lZWRzIHRvIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgaW4gRUZMJ3MgRHVt
cFJlbmRlclRyZWUgdGhlIG5ldyBFd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMgbm93CisgICAg
ICAgIHBhc3NlZCB3aXRoIHRoZSAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIgc2lnbmFsIGFu
ZCBkdW1wCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBuZXR3b3JrIHJlcXVlc3QgYW5k
IHRoZSBwb3NzaWJsZSBuZXR3b3JrCisgICAgICAgIHJlc3BvbnNlIGlmIExheW91dFRlc3RDb250
cm9sbGVyJ3MgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIHJldHVybnMKKyAgICAgICAgdHJ1
ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHA6CisgICAgICAgIChwYXRoU3VpdGFibGVGb3JUZXN0UmVzdWx0KToKKyAgICAgICAgKHVybFN1
aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAgICAgIChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVz
dFJlc3VsdCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XaWxsU2VuZFJlcXVl
c3QpOgorCiAyMDEyLTA0LTI1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFr
b3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gUmVzZXQgRFJUIHNldHRpbmdzIHRv
IHRoZWlyIGRlZmF1bHQgdmFsdWVzIGFmdGVyIGEgdGVzdGNhc2Ugd2FzIGV4ZWN1dGVkLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5k
ZXggYTE0OGE2Ni4uZDM4MzVjOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC0yNDAsNiArMjQwLDcyIEBAIHZvaWQgRHVtcFJl
bmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RWRpdGluZ0JlaGF2aW9yKG1haW5WaWV3KCksIGRl
ZmF1bHRFZGl0aW5nQmVoYXZpb3IoKSk7CiB9CiAKK3N0YXRpYyBDU3RyaW5nIHBhdGhTdWl0YWJs
ZUZvclRlc3RSZXN1bHQoY29uc3QgY2hhciogdXJpU3RyaW5nKQoreworICAgIGlmICghdXJpU3Ry
aW5nKQorICAgICAgICByZXR1cm4gQ1N0cmluZygpOworCisgICAgS1VSTCB1cmkgPSBLVVJMKFBh
cnNlZFVSTFN0cmluZywgdXJpU3RyaW5nKTsKKworICAgIGlmICghdXJpLmlzTG9jYWxGaWxlKCkp
CisgICAgICAgIHJldHVybiB1cmkuc3RyaW5nKCkudXRmOCgpOworCisgICAgU3RyaW5nIHBhdGhT
dHJpbmcgPSB1cmkucGF0aCgpOworICAgIHNpemVfdCBpbmRleEJhc2VOYW1lID0gcGF0aFN0cmlu
Zy5yZXZlcnNlRmluZCgnLycpOworICAgIFN0cmluZyBiYXNlTmFtZTsKKyAgICBpZiAoaW5kZXhC
YXNlTmFtZSA9PSBub3RGb3VuZCkKKyAgICAgICAgYmFzZU5hbWUgPSBwYXRoU3RyaW5nOworICAg
IGVsc2UKKyAgICAgICAgYmFzZU5hbWUgPSBwYXRoU3RyaW5nLnN1YnN0cmluZyhpbmRleEJhc2VO
YW1lICsgMSk7CisKKyAgICBTdHJpbmcgZGlyTmFtZTsKKyAgICBpZiAoaW5kZXhCYXNlTmFtZSAh
PSBub3RGb3VuZCkgeworICAgICAgICBzaXplX3QgaW5kZXhEaXJOYW1lID0gcGF0aFN0cmluZy5y
ZXZlcnNlRmluZCgnLycsIGluZGV4QmFzZU5hbWUgLSAxKTsKKyAgICAgICAgaWYgKGluZGV4RGly
TmFtZSAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIGRpck5hbWUgPSBwYXRoU3RyaW5nLnN1YnN0
cmluZyhpbmRleERpck5hbWUgKyAxLCBpbmRleEJhc2VOYW1lIC0gaW5kZXhEaXJOYW1lIC0gMSk7
CisgICAgfQorCisgICAgU3RyaW5nIHJldCA9IGRpck5hbWUgKyAiLyIgKyBiYXNlTmFtZTsKKyAg
ICByZXR1cm4gcmV0LnV0ZjgoKTsKK30KKworc3RhdGljIENTdHJpbmcgdXJsU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KGNvbnN0IGNoYXIqIHVyaVN0cmluZykKK3sKKyAgICBLVVJMIHVyaSA9IEtVUkwo
UGFyc2VkVVJMU3RyaW5nLCB1cmlTdHJpbmcpOworICAgIGlmICghdXJpLmlzTG9jYWxGaWxlKCkp
CisgICAgICAgIHJldHVybiBDU3RyaW5nKHVyaVN0cmluZyk7CisKKyAgICB1bnNpZ25lZCBzdGFy
dEluZGV4ID0gdXJpLnBhdGhBZnRlckxhc3RTbGFzaCgpOworICAgIHJldHVybiB1cmkuc3RyaW5n
KCkuc3Vic3RyaW5nKHN0YXJ0SW5kZXgpLnV0ZjgoKTsKK30KKworc3RhdGljIENTdHJpbmcgZGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3Qq
IHJlcXVlc3QpCit7CisgICAgU3RyaW5nIHJldCA9ICI8TlNVUkxSZXF1ZXN0IFVSTCAiOworICAg
IHJldCArPSBwYXRoU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3QtPnVybCkuZGF0YSgpOwor
ICAgIHJldCArPSAiLCBtYWluIGRvY3VtZW50IFVSTCAiOworICAgIHJldCArPSB1cmxTdWl0YWJs
ZUZvclRlc3RSZXN1bHQocmVxdWVzdC0+Zmlyc3RfcGFydHkpLmRhdGEoKTsKKyAgICByZXQgKz0g
IiwgaHR0cCBtZXRob2QgIjsKKyAgICByZXQgKz0gcmVxdWVzdC0+aHR0cF9tZXRob2QgPyBTdHJp
bmcocmVxdWVzdC0+aHR0cF9tZXRob2QpIDogIihub25lKSI7CisgICAgcmV0ICs9ICI+IjsKKwor
ICAgIHJldHVybiByZXQudXRmOCgpOworfQorCitzdGF0aWMgQ1N0cmluZyBkZXNjcmlwdGlvblN1
aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBFd2tfRnJhbWVfUmVzb3VyY2VfUmVzcG9uc2UqIHJl
c3BvbnNlKQoreworICAgIGlmICghcmVzcG9uc2UpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCIo
bnVsbCkiKTsKKworICAgIFN0cmluZyByZXQgPSAiPE5TVVJMUmVzcG9uc2UgIjsKKyAgICByZXQg
Kz0gcGF0aFN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZS0+dXJsKS5kYXRhKCk7CisgICAg
cmV0ICs9ICIsIGh0dHAgc3RhdHVzIGNvZGUgIjsKKyAgICByZXQgKz0gU3RyaW5nOjpudW1iZXIo
cmVzcG9uc2UtPnN0YXR1c19jb2RlKTsKKyAgICByZXQgKz0gIj4iOworCisgICAgcmV0dXJuIHJl
dC51dGY4KCk7Cit9CisKIC8vIFNtYXJ0IENhbGxiYWNrcwogLy8gLS0tLS0tLS0tLS0tLS0tCiAK
QEAgLTMzMywyMyArMzk5LDI5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRG9jdW1l
bnRMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlCiAKIHZvaWQgRHVt
cFJlbmRlclRyZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVjdCos
IHZvaWQqIGV2ZW50SW5mbykKIHsKLSAgICBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCogcmVx
dWVzdCA9IHN0YXRpY19jYXN0PEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0Kj4oZXZlbnRJbmZv
KTsKKyAgICBFd2tfRnJhbWVfUmVzb3VyY2VfTWVzc2FnZXMqIG1lc3NhZ2VzID0gc3RhdGljX2Nh
c3Q8RXdrX0ZyYW1lX1Jlc291cmNlX01lc3NhZ2VzKj4oZXZlbnRJbmZvKTsKKworICAgIGlmICgh
ZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
KSkKKyAgICAgICAgcHJpbnRmKCIlcyAtIHdpbGxTZW5kUmVxdWVzdCAlcyByZWRpcmVjdFJlc3Bv
bnNlICVzXG4iLAorICAgICAgICAgICAgICAgcGF0aFN1aXRhYmxlRm9yVGVzdFJlc3VsdChtZXNz
YWdlcy0+cmVxdWVzdC0+dXJsKS5kYXRhKCksCisgICAgICAgICAgICAgICBkZXNjcmlwdGlvblN1
aXRhYmxlRm9yVGVzdFJlc3VsdChtZXNzYWdlcy0+cmVxdWVzdCkuZGF0YSgpLAorICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQobWVzc2FnZXMtPnJlZGlyZWN0
X3Jlc3BvbnNlKS5kYXRhKCkpOwogCiAgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJv
bGxlci0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkgewogICAgICAgICAvLyBBcyByZXF1
ZXN0ZWQgYnkgdGhlIExheW91dFRlc3RDb250cm9sbGVyLCBkb24ndCBwZXJmb3JtIHRoZSByZXF1
ZXN0LgotICAgICAgICByZXF1ZXN0LT51cmwgPSAwOworICAgICAgICBtZXNzYWdlcy0+cmVxdWVz
dC0+dXJsID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEtVUkwgdXJsID0gS1VS
TChQYXJzZWRVUkxTdHJpbmcsIHJlcXVlc3QtPnVybCk7CisgICAgS1VSTCB1cmwgPSBLVVJMKFBh
cnNlZFVSTFN0cmluZywgbWVzc2FnZXMtPnJlcXVlc3QtPnVybCk7CiAKICAgICBpZiAodXJsLmlz
VmFsaWQoKQogICAgICAgICAmJiB1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpCiAgICAgICAg
ICYmIHVybC5ob3N0KCkgIT0gIjEyNy4wLjAuMSIKICAgICAgICAgJiYgdXJsLmhvc3QoKSAhPSAi
MjU1LjI1NS4yNTUuMjU1IgogICAgICAgICAmJiB1cmwuaG9zdCgpLmxvd2VyKCkgIT0gImxvY2Fs
aG9zdCIpIHsKLSAgICAgICAgcHJpbnRmKCJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
JXNcbiIsIHJlcXVlc3QtPnVybCk7Ci0gICAgICAgIHJlcXVlc3QtPnVybCA9IDA7CisgICAgICAg
IHByaW50ZigiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMICVzXG4iLCBtZXNzYWdlcy0+
cmVxdWVzdC0+dXJsKTsKKyAgICAgICAgbWVzc2FnZXMtPnJlcXVlc3QtPnVybCA9IDA7CiAgICAg
fQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>