<?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>39393</bug_id>
          
          <creation_ts>2010-05-19 17:49:49 -0700</creation_ts>
          <short_desc>JSFunction need not be a subclass of InternalFunction.</short_desc>
          <delta_ts>2010-05-31 15:33:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228110</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-05-19 17:49:49 -0700</bug_when>
    <thetext>This may prevent us from introducing a more useful parent class to JSFunction, e.g. a JSObject that holds an executable, which could also reference an eval or program executable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228112</commentid>
    <comment_count>1</comment_count>
      <attachid>56541</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-05-19 17:51:13 -0700</bug_when>
    <thetext>Created attachment 56541
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228113</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 17:52:02 -0700</bug_when>
    <thetext>Attachment 56541 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
JavaScriptCore/runtime/FunctionPrototype.cpp:90:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>228115</commentid>
    <comment_count>3</comment_count>
      <attachid>56541</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-05-19 17:55:25 -0700</bug_when>
    <thetext>Comment on attachment 56541
The patch

r=me if you fix the style error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228118</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-05-19 18:01:17 -0700</bug_when>
    <thetext>Transmitting file data ...........
Committed revision 59800.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232527</commentid>
    <comment_count>5</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-31 15:26:27 -0700</bug_when>
    <thetext>this breaks something like this:

    if (!value.inherits(&amp;InternalFunction::info)) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232532</commentid>
    <comment_count>6</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2010-05-31 15:33:43 -0700</bug_when>
    <thetext>bug created: bug 39971</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56541</attachid>
            <date>2010-05-19 17:51:13 -0700</date>
            <delta_ts>2010-05-19 17:55:25 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>patch.notInternal.txt</filename>
            <type>text/plain</type>
            <size>15945</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU5Nzk4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDUtMTkgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAzOTM5MyAtIEpTRnVuY3Rpb24gbmVlZCBu
b3QgYmUgYSBzdWJjbGFzcyBvZiBJbnRlcm5hbEZ1bmN0aW9uLgorCisgICAgICAgIFRoaXMgbWF5
IHByZXZlbnQgdXMgZnJvbSBpbnRyb2R1Y2luZyBhIG1vcmUgdXNlZnVsIHBhcmVudCBjbGFzcyB0
bworICAgICAgICBKU0Z1bmN0aW9uLCBlLmcuIGEgSlNPYmplY3QgdGhhdCBob2xkcyBhbiBleGVj
dXRhYmxlLCB3aGljaCBjb3VsZAorICAgICAgICBhbHNvIHJlZmVyZW5jZSBhbiBldmFsIG9yIHBy
b2dyYW0gZXhlY3V0YWJsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpyZXRyaWV2ZUNhbGxlcik6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpmaW5kRnVu
Y3Rpb25DYWxsRnJhbWUpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6Cisg
ICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6
Y3JlYXRlQ2FsbElkZW50aWZpZXIpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAg
ICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjopOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6
bmFtZSk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmRpc3BsYXlOYW1lKToKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6Y2FsY3VsYXRlZERpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50
aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5jcHA6CisgICAgICAg
IChKU0M6OnNldFVwU3RhdGljRnVuY3Rpb25TbG90KToKKwogMjAxMC0wNS0xOSAgT2xpdmVyIEh1
bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdh
cmVuLgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gNTk3OTgpCisr
KyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
NCw2ICsyNjQsNyBAQCBfX1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKIF9fWk4z
SlNDOEpTT2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3Bl
cnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4SlNPYmplY3QxN2Ny
ZWF0ZUluaGVyaXRvcklERXYKIF9fWk4zSlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JF
YgorX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBO
U18xMEpTRnVuY3Rpb25FagogX19aTjNKU0M4SlNPYmplY3QxN3B1dERpcmVjdEZ1bmN0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xNkludGVybmFsRnVuY3Rpb25FagogX19aTjNKU0M4SlNPYmplY3Qx
N3B1dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdK
U1ZhbHVlRWoKIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqYlJOU18xNVB1dFByb3BlcnR5U2xv
dEUKQEAgLTQ1Miw3ICs0NTMsNiBAQCBfX1pON1dlYkNvcmVwbEVQS2NSS05TXzZTdHJpbmdFCiBf
X1pON1dlYkNvcmVwbEVSS05TXzZTdHJpbmdFUEtjCiBfX1pON1dlYkNvcmVwbEVSS05TXzZTdHJp
bmdFUzJfCiBfX1pOSzNKU0MxMEpTRnVuY3Rpb24yM2lzSG9zdEZ1bmN0aW9uTm9uSW5saW5lRXYK
LV9fWk5LM0pTQzExSW50ZXJwcmV0ZXIxNHJldHJpZXZlQ2FsbGVyRVBOU185RXhlY1N0YXRlRVBO
U18xNkludGVybmFsRnVuY3Rpb25FCiBfX1pOSzNKU0MxMUludGVycHJldGVyMThyZXRyaWV2ZUxh
c3RDYWxsZXJFUE5TXzlFeGVjU3RhdGVFUmlSbFJOU183VVN0cmluZ0VSTlNfN0pTVmFsdWVFCiBf
X1pOSzNKU0MxMlByb3BlcnR5U2xvdDE0ZnVuY3Rpb25HZXR0ZXJFUE5TXzlFeGVjU3RhdGVFCiBf
X1pOSzNKU0MxNEpTR2xvYmFsT2JqZWN0MTRpc0R5bmFtaWNTY29wZUVSYgpJbmRleDogSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gNTk3OTgpCisr
KyBKYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MjQsNyArNDQyNCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnJldHJpZXZlQXJn
dW1lbnRzKEMKICAgICByZXR1cm4gYXJndW1lbnRzOwogfQogCi1KU1ZhbHVlIEludGVycHJldGVy
OjpyZXRyaWV2ZUNhbGxlcihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW50ZXJuYWxGdW5jdGlvbiog
ZnVuY3Rpb24pIGNvbnN0CitKU1ZhbHVlIEludGVycHJldGVyOjpyZXRyaWV2ZUNhbGxlcihDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSlNGdW5jdGlvbiogZnVuY3Rpb24pIGNvbnN0CiB7CiAgICAgQ2Fs
bEZyYW1lKiBmdW5jdGlvbkNhbGxGcmFtZSA9IGZpbmRGdW5jdGlvbkNhbGxGcmFtZShjYWxsRnJh
bWUsIGZ1bmN0aW9uKTsKICAgICBpZiAoIWZ1bmN0aW9uQ2FsbEZyYW1lKQpAQCAtNDQ2Miw3ICs0
NDYyLDcgQEAgdm9pZCBJbnRlcnByZXRlcjo6cmV0cmlldmVMYXN0Q2FsbGVyKENhbAogICAgIGZ1
bmN0aW9uID0gY2FsbGVyRnJhbWUtPmNhbGxlZSgpOwogfQogCi1DYWxsRnJhbWUqIEludGVycHJl
dGVyOjpmaW5kRnVuY3Rpb25DYWxsRnJhbWUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEludGVybmFs
RnVuY3Rpb24qIGZ1bmN0aW9uKQorQ2FsbEZyYW1lKiBJbnRlcnByZXRlcjo6ZmluZEZ1bmN0aW9u
Q2FsbEZyYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbikKIHsK
ICAgICBmb3IgKENhbGxGcmFtZSogY2FuZGlkYXRlID0gY2FsbEZyYW1lOyBjYW5kaWRhdGU7IGNh
bmRpZGF0ZSA9IGNhbmRpZGF0ZS0+Y2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENhbGxGcmFtZUZs
YWcoKSkgewogICAgICAgICBpZiAoY2FuZGlkYXRlLT5jYWxsZWUoKSA9PSBmdW5jdGlvbikKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gNTk3
OTgpCisrKyBKYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw3ICs0NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIENvZGVC
bG9jazsKICAgICBjbGFzcyBFdmFsRXhlY3V0YWJsZTsKICAgICBjbGFzcyBGdW5jdGlvbkV4ZWN1
dGFibGU7Ci0gICAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbjsKICAgICBjbGFzcyBKU0Z1bmN0aW9u
OwogICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogICAgIGNsYXNzIFByb2dyYW1FeGVjdXRhYmxl
OwpAQCAtMTAxLDcgKzEwMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGV4
ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWxOb2RlLCBDYWxsRnJhbWUqIGV4ZWMsIEpTT2JqZWN0
KiB0aGlzT2JqLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbiwgSlNWYWx1ZSogZXhjZXB0aW9u
KTsKIAogICAgICAgICBKU1ZhbHVlIHJldHJpZXZlQXJndW1lbnRzKENhbGxGcmFtZSosIEpTRnVu
Y3Rpb24qKSBjb25zdDsKLSAgICAgICAgSlNWYWx1ZSByZXRyaWV2ZUNhbGxlcihDYWxsRnJhbWUq
LCBJbnRlcm5hbEZ1bmN0aW9uKikgY29uc3Q7CisgICAgICAgIEpTVmFsdWUgcmV0cmlldmVDYWxs
ZXIoQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiopIGNvbnN0OwogICAgICAgICB2b2lkIHJldHJpZXZl
TGFzdENhbGxlcihDYWxsRnJhbWUqLCBpbnQmIGxpbmVOdW1iZXIsIGludHB0cl90JiBzb3VyY2VJ
RCwgVVN0cmluZyYgc291cmNlVVJMLCBKU1ZhbHVlJiBmdW5jdGlvbikgY29uc3Q7CiAgICAgICAg
IAogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiom
LCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYgYXJndiwgaW50JiBh
cmdjKTsKQEAgLTE0Myw3ICsxNDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0
aWMgQUxXQVlTX0lOTElORSBDYWxsRnJhbWUqIHNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JDYWxsKENv
ZGVCbG9jayosIFJlZ2lzdGVyRmlsZSosIENhbGxGcmFtZSosIHNpemVfdCByZWdpc3Rlck9mZnNl
dCwgaW50IGFyZ2MpOwogCi0gICAgICAgIHN0YXRpYyBDYWxsRnJhbWUqIGZpbmRGdW5jdGlvbkNh
bGxGcmFtZShDYWxsRnJhbWUqLCBJbnRlcm5hbEZ1bmN0aW9uKik7CisgICAgICAgIHN0YXRpYyBD
YWxsRnJhbWUqIGZpbmRGdW5jdGlvbkNhbGxGcmFtZShDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKik7
CiAKICAgICAgICAgSlNWYWx1ZSBwcml2YXRlRXhlY3V0ZShFeGVjdXRpb25GbGFnLCBSZWdpc3Rl
ckZpbGUqLCBDYWxsRnJhbWUqLCBKU1ZhbHVlKiBleGNlcHRpb24pOwogCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXIuY3BwCShyZXZpc2lvbiA1OTc5OCkKKysrIEphdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgi
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIk5vZGVzLmgiCkBAIC0xNDYsNiArMTQ3LDggQEAgQ2FsbElkZW50aWZpZXIgUHJvZmls
ZXI6OmNyZWF0ZUNhbGxJZGVudAogICAgICAgICBpZiAoIWZ1bmN0aW9uLT5leGVjdXRhYmxlKCkt
PmlzSG9zdEZ1bmN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ2FsbElkZW50aWZp
ZXJGcm9tRnVuY3Rpb25JbXAoZXhlYywgZnVuY3Rpb24pOwogICAgIH0KKyAgICBpZiAoYXNPYmpl
Y3QoZnVuY3Rpb25WYWx1ZSktPmluaGVyaXRzKCZKU0Z1bmN0aW9uOjppbmZvKSkKKyAgICAgICAg
cmV0dXJuIENhbGxJZGVudGlmaWVyKHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihhc09iamVjdChm
dW5jdGlvblZhbHVlKSktPm5hbWUoZXhlYyksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5l
TnVtYmVyKTsKICAgICBpZiAoYXNPYmplY3QoZnVuY3Rpb25WYWx1ZSktPmluaGVyaXRzKCZJbnRl
cm5hbEZ1bmN0aW9uOjppbmZvKSkKICAgICAgICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKHN0YXRp
Y19jYXN0PEludGVybmFsRnVuY3Rpb24qPihhc09iamVjdChmdW5jdGlvblZhbHVlKSktPm5hbWUo
ZXhlYyksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVtYmVyKTsKICAgICByZXR1cm4g
Q2FsbElkZW50aWZpZXIobWFrZVN0cmluZygiKCIsIGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpLT5j
bGFzc05hbWUoKSwgIiBvYmplY3QpIiksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVt
YmVyKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
Y3BwCShyZXZpc2lvbiA1OTc5OCkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Q
cm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw5IEBAIEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY1QKIHsKICAgICBpZiAodGhpc1ZhbHVlLmluaGVy
aXRzKCZKU0Z1bmN0aW9uOjppbmZvKSkgewogICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9
IGFzRnVuY3Rpb24odGhpc1ZhbHVlKTsKLSAgICAgICAgaWYgKCFmdW5jdGlvbi0+aXNIb3N0RnVu
Y3Rpb24oKSkgeworICAgICAgICBpZiAoZnVuY3Rpb24tPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAg
ICAgICAgICByZXR1cm4ganNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCAiZnVuY3Rpb24gIiwg
ZnVuY3Rpb24tPm5hbWUoZXhlYyksICIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpOworICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9
IGZ1bmN0aW9uLT5qc0V4ZWN1dGFibGUoKTsKICAgICAgICAgICAgIFVTdHJpbmcgc291cmNlU3Ry
aW5nID0gZXhlY3V0YWJsZS0+c291cmNlKCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgIGluc2Vy
dFNlbWljb2xvbklmTmVlZGVkKHNvdXJjZVN0cmluZyk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDU5Nzk4KQorKysgSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0Z1bmN0aW9uKTsKIAot
Y29uc3QgQ2xhc3NJbmZvIEpTRnVuY3Rpb246OmluZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5h
bEZ1bmN0aW9uOjppbmZvLCAwLCAwIH07Citjb25zdCBDbGFzc0luZm8gSlNGdW5jdGlvbjo6aW5m
byA9IHsgIkZ1bmN0aW9uIiwgMCwgMCwgMCB9OwogCiBib29sIEpTRnVuY3Rpb246OmlzSG9zdEZ1
bmN0aW9uTm9uSW5saW5lKCkgY29uc3QKIHsKQEAgLTU4LDEyICs1OCwxMyBAQCBKU0Z1bmN0aW9u
OjpKU0Z1bmN0aW9uKE5vbk51bGxQYXNzUmVmUHRyCiB9CiAKIEpTRnVuY3Rpb246OkpTRnVuY3Rp
b24oRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgUGFzc1JlZlB0cjxOYXRpdmVF
eGVjdXRhYmxlPiB0aHVuaykKLSAgICA6IEJhc2UoJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0
dXJlLCBuYW1lKQorICAgIDogQmFzZShzdHJ1Y3R1cmUpCiAjaWYgRU5BQkxFKEpJVCkKICAgICAs
IG1fZXhlY3V0YWJsZSh0aHVuaykKICNlbmRpZgogICAgICwgbV9zY29wZUNoYWluKE5vU2NvcGVD
aGFpbigpKQogeworICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1l
cy0+bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5n
KCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAjaWYgRU5BQkxFKEpJVCkK
ICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhl
YywgbGVuZ3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogI2Vsc2UKQEAg
LTc0LDEyICs3NSwxMyBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
CiB9CiAKIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKLSAgICA6IEJhc2UoJmV4ZWMtPmdsb2JhbERh
dGEoKSwgc3RydWN0dXJlLCBuYW1lKQorICAgIDogQmFzZShzdHJ1Y3R1cmUpCiAjaWYgRU5BQkxF
KEpJVCkKICAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0
aW9uKGZ1bmMpKQogI2VuZGlmCiAgICAgLCBtX3Njb3BlQ2hhaW4oTm9TY29wZUNoYWluKCkpCiB7
CisgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBq
c1N0cmluZyhleGVjLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnRE
ZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICNpZiBFTkFCTEUoSklUKQogICAgIHB1dERp
cmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCBsZW5ndGgp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAjZWxzZQpAQCAtOTAsMTAgKzky
LDEyIEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCAKIH0KIAogSlNG
dW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPEZ1
bmN0aW9uRXhlY3V0YWJsZT4gZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5O
b2RlKQotICAgIDogQmFzZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPmZ1bmN0aW9uU3RydWN0dXJlKCksIGV4ZWN1dGFibGUtPm5hbWUoKSkKKyAgICA6
IEJhc2UoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblN0cnVjdHVyZSgpKQog
ICAgICwgbV9leGVjdXRhYmxlKGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4oc2NvcGVD
aGFpbk5vZGUpCiB7CisgICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSA9IHN0YXRpY19jYXN0PEZ1
bmN0aW9uRXhlY3V0YWJsZSo+KG1fZXhlY3V0YWJsZS5nZXQoKSktPm5hbWUoKTsKKyAgICBwdXRE
aXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGV4
ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5IHwgRG9udEVudW0pOwogfQogCiBKU0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigpCkBAIC0x
MTQsNiArMTE4LDMxIEBAIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkKICAgICB9CiB9CiAKK2Nv
bnN0IFVTdHJpbmcmIEpTRnVuY3Rpb246Om5hbWUoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJl
dHVybiBhc1N0cmluZyhnZXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMt
Pm5hbWUpKS0+dmFsdWUoZXhlYyk7Cit9CisKK2NvbnN0IFVTdHJpbmcgSlNGdW5jdGlvbjo6ZGlz
cGxheU5hbWUoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgZGlzcGxheU5hbWUgPSBn
ZXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmRpc3BsYXlOYW1lKTsK
KyAgICAKKyAgICBpZiAoZGlzcGxheU5hbWUgJiYgaXNKU1N0cmluZygmZXhlYy0+Z2xvYmFsRGF0
YSgpLCBkaXNwbGF5TmFtZSkpCisgICAgICAgIHJldHVybiBhc1N0cmluZyhkaXNwbGF5TmFtZSkt
PnZhbHVlKGV4ZWMpOworICAgIAorICAgIHJldHVybiBVU3RyaW5nOjpudWxsKCk7Cit9CisKK2Nv
bnN0IFVTdHJpbmcgSlNGdW5jdGlvbjo6Y2FsY3VsYXRlZERpc3BsYXlOYW1lKEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBjb25zdCBVU3RyaW5nIGV4cGxpY2l0TmFtZSA9IGRpc3BsYXlOYW1lKGV4
ZWMpOworICAgIAorICAgIGlmICghZXhwbGljaXROYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGV4cGxpY2l0TmFtZTsKKyAgICAKKyAgICByZXR1cm4gbmFtZShleGVjKTsKK30KKwogdm9p
ZCBKU0Z1bmN0aW9uOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCiB7CiAgICAg
QmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAkocmV2aXNpb24gNTk3OTgpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2lmbmRlZiBKU0Z1
bmN0aW9uX2gKICNkZWZpbmUgSlNGdW5jdGlvbl9oCiAKLSNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0
aW9uLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTM1
LDExICszNSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsK
ICAgICBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOwogCi0gICAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKKyAgICBjbGFzcyBKU0Z1bmN0aW9uIDogcHVibGljIEpT
T2JqZWN0IHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKICAgICAgICAgZnJpZW5kIGNsYXNz
IEpTR2xvYmFsRGF0YTsKIAotICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsK
KyAgICAgICAgdHlwZWRlZiBKU09iamVjdCBCYXNlOwogCiAgICAgcHVibGljOgogICAgICAgICBK
U0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4sIGludCBs
ZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBOYXRpdmVGdW5jdGlvbik7CkBAIC01MCw2ICs1MCwx
MCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNPYmplY3QqIGNvbnN0cnVjdChFeGVjU3Rh
dGUqLCBjb25zdCBBcmdMaXN0Jik7CiAgICAgICAgIEpTVmFsdWUgY2FsbChFeGVjU3RhdGUqLCBK
U1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgQXJnTGlzdCYpOwogCisgICAgICAgIGNvbnN0IFVTdHJp
bmcmIG5hbWUoRXhlY1N0YXRlKik7CisgICAgICAgIGNvbnN0IFVTdHJpbmcgZGlzcGxheU5hbWUo
RXhlY1N0YXRlKik7CisgICAgICAgIGNvbnN0IFVTdHJpbmcgY2FsY3VsYXRlZERpc3BsYXlOYW1l
KEV4ZWNTdGF0ZSopOworCiAgICAgICAgIFNjb3BlQ2hhaW4mIHNjb3BlKCkKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUKCFpc0hvc3RGdW5jdGlvbk5vbklubGluZSgpKTsKQEAgLTgwLDcg
Kzg0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoQ2FsbERhdGEmKTsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgY29uc3Qgc3RhdGlj
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEludGVybmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzOworICAg
ICAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNNYXJrQ2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNGdW5jdGlvbihOb25OdWxsUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+KTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCShyZXZp
c2lvbiA1OTc5OCkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGF0ZVByb3RvdHlwZS5oIgog
I2luY2x1ZGUgIkVycm9yQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
KyNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT2JqZWN0UHJvdG90
eXBlLmgiCkBAIC01MDksMTEgKzUxMCwyMSBAQCB2b2lkIEpTT2JqZWN0OjpwdXREaXJlY3RGdW5j
dGlvbihFeGVjU3RhCiAgICAgcHV0RGlyZWN0RnVuY3Rpb24oSWRlbnRpZmllcihleGVjLCBmdW5j
dGlvbi0+bmFtZShleGVjKSksIGZ1bmN0aW9uLCBhdHRyKTsKIH0KIAordm9pZCBKU09iamVjdDo6
cHV0RGlyZWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbiwg
dW5zaWduZWQgYXR0cikKK3sKKyAgICBwdXREaXJlY3RGdW5jdGlvbihJZGVudGlmaWVyKGV4ZWMs
IGZ1bmN0aW9uLT5uYW1lKGV4ZWMpKSwgZnVuY3Rpb24sIGF0dHIpOworfQorCiB2b2lkIEpTT2Jq
ZWN0OjpwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24sIHVuc2lnbmVkIGF0dHIpCiB7CiAgICAgcHV0RGly
ZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihJZGVudGlmaWVyKGV4ZWMsIGZ1bmN0aW9uLT5u
YW1lKGV4ZWMpKSwgZnVuY3Rpb24sIGF0dHIpOwogfQogCit2b2lkIEpTT2JqZWN0OjpwdXREaXJl
Y3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiog
ZnVuY3Rpb24sIHVuc2lnbmVkIGF0dHIpCit7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbihJZGVudGlmaWVyKGV4ZWMsIGZ1bmN0aW9uLT5uYW1lKGV4ZWMpKSwgZnVuY3Rp
b24sIGF0dHIpOworfQorCiBORVZFUl9JTkxJTkUgdm9pZCBKU09iamVjdDo6ZmlsbEdldHRlclBy
b3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3QsIEpTVmFsdWUqIGxvY2F0aW9uKQogewogICAg
IGlmIChKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24gPSBhc0dldHRlclNldHRlcigqbG9jYXRpb24p
LT5nZXR0ZXIoKSkgewpJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24g
NTk3OTgpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE3NiwxMCArMTc2LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHB1
dERpcmVjdEZ1bmN0aW9uKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiB2
YWx1ZSwgdW5zaWduZWQgYXR0ciA9IDApOwogICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9u
KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiB2YWx1ZSwgdW5zaWduZWQg
YXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpOwogICAgICAg
ICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSW50ZXJuYWxGdW5jdGlv
biogZnVuY3Rpb24sIHVuc2lnbmVkIGF0dHIgPSAwKTsKKyAgICAgICAgdm9pZCBwdXREaXJlY3RG
dW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uLCB1bnNpZ25lZCBh
dHRyID0gMCk7CiAKICAgICAgICAgdm9pZCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIg
PSAwKTsKICAgICAgICAgdm9pZCBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiB2YWx1ZSwgdW5zaWduZWQgYXR0
ciA9IDApOwogICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
RXhlY1N0YXRlKiBleGVjLCBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiwgdW5zaWduZWQgYXR0
ciA9IDApOworICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbiwgdW5zaWduZWQgYXR0ciA9IDAp
OwogCiAgICAgICAgIC8vIEZhc3QgYWNjZXNzIHRvIGtub3duIHByb3BlcnR5IG9mZnNldHMuCiAg
ICAgICAgIEpTVmFsdWUgZ2V0RGlyZWN0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIGNvbnN0IHsgcmV0
dXJuIEpTVmFsdWU6OmRlY29kZShwcm9wZXJ0eVN0b3JhZ2UoKVtvZmZzZXRdKTsgfQpJbmRleDog
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAkocmV2aXNpb24gNTk3OTgpCisrKyBKYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAg
dm9pZCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChFeGVjU3RhdGUqIAogICAgIEpTVmFsdWUqIGxv
Y2F0aW9uID0gdGhpc09iai0+Z2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsKIAogICAg
IGlmICghbG9jYXRpb24pIHsKLSAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb247Cisg
ICAgICAgIE5hdGl2ZUZ1bmN0aW9uV3JhcHBlciogZnVuY3Rpb247CiAjaWYgRU5BQkxFKEpJVCkK
ICAgICAgICAgaWYgKGVudHJ5LT5nZW5lcmF0b3IoKSkKICAgICAgICAgICAgIGZ1bmN0aW9uID0g
bmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5wcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSgpLCBlbnRyeS0+ZnVuY3Rpb25M
ZW5ndGgoKSwgcHJvcGVydHlOYW1lLCBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9u
KGVudHJ5LT5mdW5jdGlvbigpLCBlbnRyeS0+Z2VuZXJhdG9yKCkpKTsK
</data>
<flag name="review"
          id="40976"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>