<?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>34887</bug_id>
          
          <creation_ts>2010-02-12 04:57:01 -0800</creation_ts>
          <short_desc>Add API to directly expose JSON parsing</short_desc>
          <delta_ts>2010-03-18 13:51:31 -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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>eric</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190018</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-12 04:57:01 -0800</bug_when>
    <thetext>Add API to directly expose JSON parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190019</commentid>
    <comment_count>1</comment_count>
      <attachid>48637</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-12 04:59:30 -0800</bug_when>
    <thetext>Created attachment 48637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190021</commentid>
    <comment_count>2</comment_count>
      <attachid>48637</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-02-12 05:02:49 -0800</bug_when>
    <thetext>Comment on attachment 48637
Patch

r=me but please put the declaration in a private header until this can go through Mac OS X API review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190124</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-12 13:09:02 -0800</bug_when>
    <thetext>I think &quot;JSValueMakeFromJSONString&quot; would be a better name than &quot;JSValueMakeValueFromJSONString&quot;. All other functions like this are JSValueMake* rather than JSValueMakeValue*.

Did you decide to leave out JSValueCreateJSONString, or is that coming in another patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191206</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 14:23:37 -0800</bug_when>
    <thetext>Attachment 48637 was posted by a committer and has review+, assigning to Oliver Hunt for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191212</commentid>
    <comment_count>5</comment_count>
      <attachid>48637</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-17 14:24:37 -0800</bug_when>
    <thetext>Comment on attachment 48637
Patch

Clearing review flag, have changed api slightly and have new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198517</commentid>
    <comment_count>6</comment_count>
      <attachid>50479</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-11 01:00:32 -0800</bug_when>
    <thetext>Created attachment 50479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198715</commentid>
    <comment_count>7</comment_count>
      <attachid>50479</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-03-11 11:55:22 -0800</bug_when>
    <thetext>Comment on attachment 50479
Patch

&gt; +/* Converting to and from JSON formatted strings */
&gt; +
&gt; +/*!
&gt; + @function
&gt; + @abstract       Creates a JavaScript value from a JSON formatted string.
&gt; + @param ctx      The execution context to use.
&gt; + @param string   The JSString containing the JSON string to be parsed.
&gt; + @result         A JSValue containing the parsed value, or NULL if the input is invalid.
&gt; + */
&gt; +JS_EXPORT JSValueRef JSValueMakeFromJSONString(JSContextRef ctx, JSStringRef string);
&gt; +
&gt; +/*!
&gt; + @function
&gt; + @abstract       Creates a JavaScript string containing the JSON serialized representation of a JS value.
&gt; + @param ctx      The execution context to use.
&gt; + @param value    The value to serialize.
&gt; + @param indent   The number of spaces to indent when nesting.  If 0, the resulting JSON will not contains newlines.  The size of the indent is clamped to 10 spaces.
&gt; + @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
&gt; + @result         A JSString with the result of serialization, or NULL if an exception is thrown.
&gt; + */
&gt; +JS_EXPORT JSStringRef JSValueCreateJSONString(JSContextRef ctx, JSValueRef value, unsigned indent, JSValueRef* exception);

These two functions need to be tagged in the header with availability macros indicating which version of JavaScriptCore they were introduced with.

&gt; +    

Please don’t add trailing white space.

&gt;  /*!
&gt; @@ -248,7 +270,7 @@ JS_EXPORT JSStringRef JSValueToStringCopy(JSContextRef ctx, JSValueRef value, JS
&gt;  @result         The JSObject result of conversion, or NULL if an exception is thrown.
&gt;  */
&gt;  JS_EXPORT JSObjectRef JSValueToObject(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
&gt; -
&gt; +    

Same here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201526</commentid>
    <comment_count>8</comment_count>
      <attachid>51085</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-18 13:38:04 -0700</bug_when>
    <thetext>Created attachment 51085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201530</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-18 13:43:35 -0700</bug_when>
    <thetext>Attachment 51085 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/1021021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201538</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-03-18 13:51:31 -0700</bug_when>
    <thetext>Committed r56189: &lt;http://trac.webkit.org/changeset/56189&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48637</attachid>
            <date>2010-02-12 04:59:30 -0800</date>
            <delta_ts>2010-03-11 01:00:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34887-20100212045928.patch</filename>
            <type>text/plain</type>
            <size>4226</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCBhMTJjYzM0Li42NzZkODM4IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlIDxydW50
aW1lL0pTR2xvYmFsT2JqZWN0Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvdGVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
VVN0cmluZy5oPgpAQCAtMjIyLDYgKzIyMywxNSBAQCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlU3Ry
aW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZykKICAgICByZXR1cm4gdG9S
ZWYoZXhlYywganNTdHJpbmcoZXhlYywgc3RyaW5nLT51c3RyaW5nKCkpKTsKIH0KIAorCitKU1Zh
bHVlUmVmIEpTVmFsdWVNYWtlVmFsdWVGcm9tSlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBK
U1N0cmluZ1JlZiBzdHJpbmcpCit7CisgICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjdHgpOwor
ICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oZXhlYyk7CisgICAgTGl0ZXJhbFBhcnNlciBwYXJz
ZXIoZXhlYywgc3RyaW5nLT51c3RyaW5nKCksIExpdGVyYWxQYXJzZXI6OlN0cmljdEpTT04pOwor
ICAgIHJldHVybiB0b1JlZihleGVjLCBwYXJzZXIudHJ5TGl0ZXJhbFBhcnNlKCkpOworfQorCiBi
b29sIEpTVmFsdWVUb0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkK
IHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7CmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
aAppbmRleCA3YTdiZjkzLi4xMWMyYjA0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgKQEAgLTIw
OCw2ICsyMDgsMTUgQEAgSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlND
b250ZXh0UmVmIGN0eCwgZG91YmxlIG51bWJlcik7CiAqLwogSlNfRVhQT1JUIEpTVmFsdWVSZWYg
SlNWYWx1ZU1ha2VTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc3RyaW5nKTsK
IAorLyohCisgQGZ1bmN0aW9uCisgQGFic3RyYWN0ICAgICAgIENyZWF0ZXMgYSBKYXZhU2NyaXB0
IHZhbHVlIGZyb20gYSBKU09OIGZvcm1hdHRlZCBzdHJpbmcuCisgQHBhcmFtIGN0eCAgICAgIFRo
ZSBleGVjdXRpb24gY29udGV4dCB0byB1c2UuCisgQHBhcmFtIHN0cmluZyAgIFRoZSBKU1N0cmlu
ZyBjb250YWluaW5nIHRoZSBKU09OIHN0cmluZyB0byBiZSBwYXJzZWQuCisgQHJlc3VsdCAgICAg
ICAgIEEgSlNWYWx1ZSBjb250YWluaW5nIHRoZSBwYXJzZWQgdmFsdWUsIG9yIE5VTEwgaWYgdGhl
IGlucHV0IGlzIGludmFsaWQKKyAqLworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VW
YWx1ZUZyb21KU09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZyk7
CisKIC8qIENvbnZlcnRpbmcgdG8gcHJpbWl0aXZlIHZhbHVlcyAqLwogCiAvKiEKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMgYi9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IGViYzBjZmIuLjViZTVmZWYgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuYwpAQCAtODY5LDcgKzg2OSwyMiBAQCBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciogYXJndltdKQogICAgIEpTU3RyaW5nUmVmIEVtcHR5T2JqZWN0SVN0cmluZyA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFbXB0eU9iamVjdCIpOwogICAgIEpTT2JqZWN0U2V0
UHJvcGVydHkoY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBFbXB0eU9iamVjdElTdHJpbmcsIEVtcHR5
T2JqZWN0LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIE5VTEwpOwogICAgIEpTU3RyaW5nUmVs
ZWFzZShFbXB0eU9iamVjdElTdHJpbmcpOwotICAgIAorCisgICAgSlNTdHJpbmdSZWYgdmFsaWRK
U09OID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIntcImFQcm9wZXJ0eVwiOnRydWV9
Iik7CisgICAgSlNWYWx1ZVJlZiBqc29uT2JqZWN0ID0gSlNWYWx1ZU1ha2VWYWx1ZUZyb21KU09O
U3RyaW5nKGNvbnRleHQsIHZhbGlkSlNPTik7CisgICAgSlNTdHJpbmdSZWxlYXNlKHZhbGlkSlNP
Tik7CisgICAgaWYgKCFKU1ZhbHVlSXNPYmplY3QoY29udGV4dCwganNvbk9iamVjdCkpIHsKKyAg
ICAgICAgcHJpbnRmKCJEaWQgbm90IHBhcnNlIHZhbGlkIEpTT04gY29ycmVjdGx5XG4iKTsKKyAg
ICAgICAgZmFpbGVkID0gMTsKKyAgICB9CisgICAgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lID0g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFQcm9wZXJ0eSIpOworICAgIGFzc2VydEVx
dWFsc0FzQm9vbGVhbihKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIEpTVmFsdWVUb09iamVj
dChjb250ZXh0LCBqc29uT2JqZWN0LCAwKSwgcHJvcGVydHlOYW1lLCAwKSwgdHJ1ZSk7CisgICAg
SlNTdHJpbmdSZWxlYXNlKHByb3BlcnR5TmFtZSk7CisgICAgSlNTdHJpbmdSZWYgaW52YWxpZEpT
T04gPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZmFpbCEiKTsKKyAgICBpZiAoSlNW
YWx1ZU1ha2VWYWx1ZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIGludmFsaWRKU09OKSkgeworICAg
ICAgICBwcmludGYoIlNob3VsZCByZXR1cm4gbnVsbCBmb3IgaW52YWxpZCBKU09OIGRhdGEiKTsK
KyAgICAgICAgZmFpbGVkID0gMTsKKyAgICB9CiAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb247CiAK
ICAgICAvLyBDb252ZXJzaW9ucyB0aGF0IHRocm93IGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ODliZGU2Li40OWM2ZmU5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysr
IGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMTIg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRvIGRpcmVjdGx5IGV4cG9zZSBKU09O
IHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0ODg3CisKKyAgICAgICAgQWRkIEFQSSB0byBleHBvc2UgSlNPTiBwYXJzaW5nIGRpcmVjdGx5
LCBhbmQgYWRkIHRlc3RzIHRvIHRlc3RhcGkKKworICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNw
cDoKKyAgICAgICAgKEpTVmFsdWVNYWtlVmFsdWVGcm9tSlNPTlN0cmluZyk6CisgICAgICAgICog
QVBJL0pTVmFsdWVSZWYuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAg
ICAobWFpbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorCiAyMDEwLTAyLTExICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
T2xpdmVyIEh1bnQgYW5kIERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmlu
ZGV4IGY1NjJiNTIuLjU5ZTZiM2UgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTcz
LDYgKzczLDcgQEAgX0pTVmFsdWVNYWtlTnVsbAogX0pTVmFsdWVNYWtlTnVtYmVyCiBfSlNWYWx1
ZU1ha2VTdHJpbmcKIF9KU1ZhbHVlTWFrZVVuZGVmaW5lZAorX0pTVmFsdWVNYWtlVmFsdWVGcm9t
SlNPTlN0cmluZwogX0pTVmFsdWVQcm90ZWN0CiBfSlNWYWx1ZVRvQm9vbGVhbgogX0pTVmFsdWVU
b051bWJlcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50479</attachid>
            <date>2010-03-11 01:00:32 -0800</date>
            <delta_ts>2010-03-18 13:38:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34887-20100311010031.patch</filename>
            <type>text/plain</type>
            <size>9331</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAyZjhjMWQ0Li5jZWQ4MjAzIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAiSlNDYWxs
YmFja09iamVjdC5oIgogCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPTk9iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcu
aD4KKyNpbmNsdWRlIDxydW50aW1lL0xpdGVyYWxQYXJzZXIuaD4KICNpbmNsdWRlIDxydW50aW1l
L09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3RlY3QuaD4KICNpbmNsdWRlIDxy
dW50aW1lL1VTdHJpbmcuaD4KQEAgLTIyMSw2ICsyMjMsMzEgQEAgSlNWYWx1ZVJlZiBKU1ZhbHVl
TWFrZVN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzdHJpbmcpCiAgICAgcmV0
dXJuIHRvUmVmKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIHN0cmluZy0+dXN0cmluZygpKSk7CiB9CiAK
K0pTVmFsdWVSZWYgSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBK
U1N0cmluZ1JlZiBzdHJpbmcpCit7CisgICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjdHgpOwor
ICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oZXhlYyk7CisgICAgTGl0ZXJhbFBhcnNlciBwYXJz
ZXIoZXhlYywgc3RyaW5nLT51c3RyaW5nKCksIExpdGVyYWxQYXJzZXI6OlN0cmljdEpTT04pOwor
ICAgIHJldHVybiB0b1JlZihleGVjLCBwYXJzZXIudHJ5TGl0ZXJhbFBhcnNlKCkpOworfQorCitK
U1N0cmluZ1JlZiBKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1Zh
bHVlUmVmIGFwaVZhbHVlLCB1bnNpZ25lZCBpbmRlbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7CisgICAgQVBJRW50cnlTaGltIGVu
dHJ5U2hpbShleGVjKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gdG9KUyhleGVjLCBhcGlWYWx1ZSk7
CisgICAgVVN0cmluZyByZXN1bHQgPSBKU09OU3RyaW5naWZ5KGV4ZWMsIHZhbHVlLCBpbmRlbnQp
OworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICpleGNlcHRpb24gPSAwOworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkgeworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAg
ICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKKyAgICAgICAg
ZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJl
dHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHJlc3VsdCkucmVsZWFzZVJlZigpOworfQorCiBi
b29sIEpTVmFsdWVUb0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkK
IHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7CmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
aAppbmRleCA3YTdiZjkzLi42YjJiYTI5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgKQEAgLTIw
OCw2ICsyMDgsMjggQEAgSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlND
b250ZXh0UmVmIGN0eCwgZG91YmxlIG51bWJlcik7CiAqLwogSlNfRVhQT1JUIEpTVmFsdWVSZWYg
SlNWYWx1ZU1ha2VTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc3RyaW5nKTsK
IAorLyogQ29udmVydGluZyB0byBhbmQgZnJvbSBKU09OIGZvcm1hdHRlZCBzdHJpbmdzICovCisK
Ky8qIQorIEBmdW5jdGlvbgorIEBhYnN0cmFjdCAgICAgICBDcmVhdGVzIGEgSmF2YVNjcmlwdCB2
YWx1ZSBmcm9tIGEgSlNPTiBmb3JtYXR0ZWQgc3RyaW5nLgorIEBwYXJhbSBjdHggICAgICBUaGUg
ZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgorIEBwYXJhbSBzdHJpbmcgICBUaGUgSlNTdHJpbmcg
Y29udGFpbmluZyB0aGUgSlNPTiBzdHJpbmcgdG8gYmUgcGFyc2VkLgorIEByZXN1bHQgICAgICAg
ICBBIEpTVmFsdWUgY29udGFpbmluZyB0aGUgcGFyc2VkIHZhbHVlLCBvciBOVUxMIGlmIHRoZSBp
bnB1dCBpcyBpbnZhbGlkLgorICovCitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUZy
b21KU09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZyk7CisKKy8q
IQorIEBmdW5jdGlvbgorIEBhYnN0cmFjdCAgICAgICBDcmVhdGVzIGEgSmF2YVNjcmlwdCBzdHJp
bmcgY29udGFpbmluZyB0aGUgSlNPTiBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGEgSlMg
dmFsdWUuCisgQHBhcmFtIGN0eCAgICAgIFRoZSBleGVjdXRpb24gY29udGV4dCB0byB1c2UuCisg
QHBhcmFtIHZhbHVlICAgIFRoZSB2YWx1ZSB0byBzZXJpYWxpemUuCisgQHBhcmFtIGluZGVudCAg
IFRoZSBudW1iZXIgb2Ygc3BhY2VzIHRvIGluZGVudCB3aGVuIG5lc3RpbmcuICBJZiAwLCB0aGUg
cmVzdWx0aW5nIEpTT04gd2lsbCBub3QgY29udGFpbnMgbmV3bGluZXMuICBUaGUgc2l6ZSBvZiB0
aGUgaW5kZW50IGlzIGNsYW1wZWQgdG8gMTAgc3BhY2VzLgorIEBwYXJhbSBleGNlcHRpb24gQSBw
b2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlm
IGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24u
CisgQHJlc3VsdCAgICAgICAgIEEgSlNTdHJpbmcgd2l0aCB0aGUgcmVzdWx0IG9mIHNlcmlhbGl6
YXRpb24sIG9yIE5VTEwgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAqLworSlNfRVhQT1JU
IEpTU3RyaW5nUmVmIEpTVmFsdWVDcmVhdGVKU09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUsIHVuc2lnbmVkIGluZGVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsK
KyAgICAKIC8qIENvbnZlcnRpbmcgdG8gcHJpbWl0aXZlIHZhbHVlcyAqLwogCiAvKiEKQEAgLTI0
OCw3ICsyNzAsNyBAQCBKU19FWFBPUlQgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShK
U0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKUwogQHJlc3VsdCAgICAgICAgIFRo
ZSBKU09iamVjdCByZXN1bHQgb2YgY29udmVyc2lvbiwgb3IgTlVMTCBpZiBhbiBleGNlcHRpb24g
aXMgdGhyb3duLgogKi8KIEpTX0VYUE9SVCBKU09iamVjdFJlZiBKU1ZhbHVlVG9PYmplY3QoSlND
b250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsK
LQorICAgIAogLyogR2FyYmFnZSBjb2xsZWN0aW9uICovCiAvKiEKIEBmdW5jdGlvbgpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmMKaW5kZXggZWJjMGNmYi4uMmRmNjMzNCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYworKysgYi9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5jCkBAIC04NjksOSArODY5LDYzIEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgSlNTdHJpbmdSZWYgRW1wdHlPYmplY3RJU3RyaW5nID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkVtcHR5T2JqZWN0Iik7CiAgICAgSlNPYmplY3RT
ZXRQcm9wZXJ0eShjb250ZXh0LCBnbG9iYWxPYmplY3QsIEVtcHR5T2JqZWN0SVN0cmluZywgRW1w
dHlPYmplY3QsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7CiAgICAgSlNTdHJpbmdS
ZWxlYXNlKEVtcHR5T2JqZWN0SVN0cmluZyk7Ci0gICAgCisKKyAgICBKU1N0cmluZ1JlZiB2YWxp
ZEpTT04gPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygie1wiYVByb3BlcnR5XCI6dHJ1
ZX0iKTsKKyAgICBKU1ZhbHVlUmVmIGpzb25PYmplY3QgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3Ry
aW5nKGNvbnRleHQsIHZhbGlkSlNPTik7CisgICAgSlNTdHJpbmdSZWxlYXNlKHZhbGlkSlNPTik7
CisgICAgaWYgKCFKU1ZhbHVlSXNPYmplY3QoY29udGV4dCwganNvbk9iamVjdCkpIHsKKyAgICAg
ICAgcHJpbnRmKCJGQUlMOiBEaWQgbm90IHBhcnNlIHZhbGlkIEpTT04gY29ycmVjdGx5XG4iKTsK
KyAgICAgICAgZmFpbGVkID0gMTsKKyAgICB9IGVsc2UKKyAgICAgICAgcHJpbnRmKCJQQVNTOiBQ
YXJzZWQgdmFsaWQgSlNPTiBzdHJpbmcuXG4iKTsKKyAgICBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5h
bWUgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYVByb3BlcnR5Iik7CisgICAgYXNz
ZXJ0RXF1YWxzQXNCb29sZWFuKEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgSlNWYWx1ZVRv
T2JqZWN0KGNvbnRleHQsIGpzb25PYmplY3QsIDApLCBwcm9wZXJ0eU5hbWUsIDApLCB0cnVlKTsK
KyAgICBKU1N0cmluZ1JlbGVhc2UocHJvcGVydHlOYW1lKTsKKyAgICBKU1N0cmluZ1JlZiBpbnZh
bGlkSlNPTiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmYWlsISIpOworICAgIGlm
IChKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIGludmFsaWRKU09OKSkgeworICAg
ICAgICBwcmludGYoIkZBSUw6IFNob3VsZCByZXR1cm4gbnVsbCBmb3IgaW52YWxpZCBKU09OIGRh
dGFcbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmludGYo
IlBBU1M6IENvcnJlY3RseSByZXR1cm5lZCBudWxsIGZvciBpbnZhbGlkIEpTT04gZGF0YS5cbiIp
OwogICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uOworICAgIEpTU3RyaW5nUmVmIHN0ciA9IEpTVmFs
dWVDcmVhdGVKU09OU3RyaW5nKGNvbnRleHQsIGpzb25PYmplY3QsIDAsIDApOworICAgIGlmICgh
SlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdHIsICJ7XCJhUHJvcGVydHlcIjp0cnVlfSIp
KSB7CisgICAgICAgIHByaW50ZigiRkFJTDogRGlkIG5vdCBjb3JyZWN0bHkgc2VyaWFsaXNlIHdp
dGggaW5kZW50IG9mIDAuXG4iKTsKKyAgICAgICAgZmFpbGVkID0gMTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgcHJpbnRmKCJQQVNTOiBDb3JyZWN0bHkgc2VyaWFsaXNlZCB3aXRoIGluZGVudCBvZiAw
LlxuIik7CisgICAgSlNTdHJpbmdSZWxlYXNlKHN0cik7CiAKKyAgICBzdHIgPSBKU1ZhbHVlQ3Jl
YXRlSlNPTlN0cmluZyhjb250ZXh0LCBqc29uT2JqZWN0LCA0LCAwKTsKKyAgICBpZiAoIUpTU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3RyLCAie1xuICAgIFwiYVByb3BlcnR5XCI6IHRydWVc
bn0iKSkgeworICAgICAgICBwcmludGYoIkZBSUw6IERpZCBub3QgY29ycmVjdGx5IHNlcmlhbGlz
ZSB3aXRoIGluZGVudCBvZiA0LlxuIik7CisgICAgICAgIGZhaWxlZCA9IDE7CisgICAgfSBlbHNl
CisgICAgICAgIHByaW50ZigiUEFTUzogQ29ycmVjdGx5IHNlcmlhbGlzZWQgd2l0aCBpbmRlbnQg
b2YgNC5cbiIpOworICAgIEpTU3RyaW5nUmVsZWFzZShzdHIpOworICAgIEpTU3RyaW5nUmVmIHNy
YyA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIoe2dldCBhKCl7IHRocm93ICcnO319
KSIpOworICAgIEpTVmFsdWVSZWYgdW5zdHJpbmdpZmlhYmxlT2JqID0gSlNFdmFsdWF0ZVNjcmlw
dChjb250ZXh0LCBzcmMsIE5VTEwsIE5VTEwsIDEsIE5VTEwpOworICAgIAorICAgIHN0ciA9IEpT
VmFsdWVDcmVhdGVKU09OU3RyaW5nKGNvbnRleHQsIHVuc3RyaW5naWZpYWJsZU9iaiwgNCwgMCk7
CisgICAgaWYgKHN0cikgeworICAgICAgICBwcmludGYoIkZBSUw6IERpZG4ndCByZXR1cm4gbnVs
bCB3aGVuIGF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIHVuc2VyaWFsaXphYmxlIHZhbHVlLlxuIik7
CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZShzdHIpOworICAgICAgICBmYWlsZWQgPSAxOworICAg
IH0gZWxzZQorICAgICAgICBwcmludGYoIlBBU1M6IHJldHVybmVkIG51bGwgd2hlbiBhdHRlbXB0
aW5nIHRvIHNlcmlhbGl6ZSB1bnNlcmlhbGl6YWJsZSB2YWx1ZS5cbiIpOworICAgIAorICAgIHN0
ciA9IEpTVmFsdWVDcmVhdGVKU09OU3RyaW5nKGNvbnRleHQsIHVuc3RyaW5naWZpYWJsZU9iaiwg
NCwgJmV4Y2VwdGlvbik7CisgICAgaWYgKHN0cikgeworICAgICAgICBwcmludGYoIkZBSUw6IERp
ZG4ndCByZXR1cm4gbnVsbCB3aGVuIGF0dGVtcHRpbmcgdG8gc2VyaWFsaXplIHVuc2VyaWFsaXph
YmxlIHZhbHVlLlxuIik7CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZShzdHIpOworICAgICAgICBm
YWlsZWQgPSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmludGYoIlBBU1M6IHJldHVybmVkIG51
bGwgd2hlbiBhdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSB1bnNlcmlhbGl6YWJsZSB2YWx1ZS5cbiIp
OworICAgIGlmICghZXhjZXB0aW9uKSB7CisgICAgICAgIHByaW50ZigiRkFJTDogRGlkIG5vdCBz
ZXQgZXhjZXB0aW9uIG9uIHNlcmlhbGlzYXRpb24gZXJyb3JcbiIpOworICAgICAgICBmYWlsZWQg
PSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmludGYoIlBBU1M6IHNldCBleGNlcHRpb24gb24g
c2VyaWFsaXNhdGlvbiBlcnJvclxuIik7CiAgICAgLy8gQ29udmVyc2lvbnMgdGhhdCB0aHJvdyBl
eGNlcHRpb25zCiAgICAgZXhjZXB0aW9uID0gTlVMTDsKICAgICBBU1NFUlQoTlVMTCA9PSBKU1Zh
bHVlVG9PYmplY3QoY29udGV4dCwganNOdWxsLCAmZXhjZXB0aW9uKSk7CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmZmMmI3Zi4uM2ZiY2U1NyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTAyLTE1
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBkaXJlY3RseSBleHBvc2UgSlNP
TiBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDg4NworCisgICAgICAgIEFkZCBBUEkgdG8gZXhwb3NlIEpTT04gcGFyc2luZyBkaXJlY3Rs
eSwgYW5kIGFkZCB0ZXN0cyB0byB0ZXN0YXBpCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZVJlZi5j
cHA6CisgICAgICAgIChKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKToKKyAgICAgICAgKEpTVmFs
dWVDcmVhdGVKU09OU3RyaW5nKToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT05TdHJpbmdpZnkpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorCiAyMDEwLTAzLTExICBHYWJvciBMb2tpICA8
bG9raUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdo
LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDllMjQ5M2YuLmM0OGJlODEgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTU3LDYgKzU3LDcgQEAgX0pTU3RyaW5nSXNFcXVh
bAogX0pTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcKIF9KU1N0cmluZ1JlbGVhc2UKIF9KU1N0
cmluZ1JldGFpbgorX0pTVmFsdWVDcmVhdGVKU09OU3RyaW5nCiBfSlNWYWx1ZUdldFR5cGUKIF9K
U1ZhbHVlSXNCb29sZWFuCiBfSlNWYWx1ZUlzRXF1YWwKQEAgLTczLDYgKzc0LDcgQEAgX0pTVmFs
dWVNYWtlTnVsbAogX0pTVmFsdWVNYWtlTnVtYmVyCiBfSlNWYWx1ZU1ha2VTdHJpbmcKIF9KU1Zh
bHVlTWFrZVVuZGVmaW5lZAorX0pTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcKIF9KU1ZhbHVlUHJv
dGVjdAogX0pTVmFsdWVUb0Jvb2xlYW4KIF9KU1ZhbHVlVG9OdW1iZXIKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGQ2OWE4ZGEuLmQ1ZjMzMDMgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtODY4LDQgKzg2OCwxMiBAQCBKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNPTlByb3RvRnVuY1N0cmluZ2lmeShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiwgSlNWYWx1ZQogICAgIHJldHVybiBTdHJpbmdpZmllcihleGVjLCByZXBsYWNlciwgc3BhY2Up
LnN0cmluZ2lmeSh2YWx1ZSk7CiB9CiAKK1VTdHJpbmcgSlNPTlN0cmluZ2lmeShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGluZGVudCkKK3sKKyAgICBKU1ZhbHVlIHJl
c3VsdCA9IFN0cmluZ2lmaWVyKGV4ZWMsIGpzTnVsbCgpLCBqc051bWJlcihleGVjLCBpbmRlbnQp
KS5zdHJpbmdpZnkodmFsdWUpOworICAgIGlmIChyZXN1bHQuaXNVbmRlZmluZWRPck51bGwoKSkK
KyAgICAgICAgcmV0dXJuIFVTdHJpbmcoKTsKKyAgICByZXR1cm4gcmVzdWx0LmdldFN0cmluZyhl
eGVjKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5oCmluZGV4IDkwNWU0YmMuLjdhOWUwYTQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5oCkBAIC01Nyw2ICs1Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIGluZm87CiAgICAgfTsKIAorICAgIFVTdHJpbmcgSlNPTlN0cmluZ2lmeShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGluZGVudCk7CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gSlNPTk9iamVjdF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51085</attachid>
            <date>2010-03-18 13:38:04 -0700</date>
            <delta_ts>2010-03-18 13:48:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34887-20100318133803.patch</filename>
            <type>text/plain</type>
            <size>9063</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAyZjhjMWQ0Li5jZWQ4MjAzIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAiSlNDYWxs
YmFja09iamVjdC5oIgogCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPTk9iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcu
aD4KKyNpbmNsdWRlIDxydW50aW1lL0xpdGVyYWxQYXJzZXIuaD4KICNpbmNsdWRlIDxydW50aW1l
L09wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3RlY3QuaD4KICNpbmNsdWRlIDxy
dW50aW1lL1VTdHJpbmcuaD4KQEAgLTIyMSw2ICsyMjMsMzEgQEAgSlNWYWx1ZVJlZiBKU1ZhbHVl
TWFrZVN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzdHJpbmcpCiAgICAgcmV0
dXJuIHRvUmVmKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIHN0cmluZy0+dXN0cmluZygpKSk7CiB9CiAK
K0pTVmFsdWVSZWYgSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBK
U1N0cmluZ1JlZiBzdHJpbmcpCit7CisgICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjdHgpOwor
ICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oZXhlYyk7CisgICAgTGl0ZXJhbFBhcnNlciBwYXJz
ZXIoZXhlYywgc3RyaW5nLT51c3RyaW5nKCksIExpdGVyYWxQYXJzZXI6OlN0cmljdEpTT04pOwor
ICAgIHJldHVybiB0b1JlZihleGVjLCBwYXJzZXIudHJ5TGl0ZXJhbFBhcnNlKCkpOworfQorCitK
U1N0cmluZ1JlZiBKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1Zh
bHVlUmVmIGFwaVZhbHVlLCB1bnNpZ25lZCBpbmRlbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7CisgICAgQVBJRW50cnlTaGltIGVu
dHJ5U2hpbShleGVjKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gdG9KUyhleGVjLCBhcGlWYWx1ZSk7
CisgICAgVVN0cmluZyByZXN1bHQgPSBKU09OU3RyaW5naWZ5KGV4ZWMsIHZhbHVlLCBpbmRlbnQp
OworICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICpleGNlcHRpb24gPSAwOworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkgeworICAgICAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAg
ICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKKyAgICAgICAg
ZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJl
dHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHJlc3VsdCkucmVsZWFzZVJlZigpOworfQorCiBi
b29sIEpTVmFsdWVUb0Jvb2xlYW4oSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkK
IHsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7CmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
aAppbmRleCA3YTdiZjkzLi5lNjgxYjRkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgKQEAgLTIw
OCw2ICsyMDgsMjggQEAgSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlND
b250ZXh0UmVmIGN0eCwgZG91YmxlIG51bWJlcik7CiAqLwogSlNfRVhQT1JUIEpTVmFsdWVSZWYg
SlNWYWx1ZU1ha2VTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc3RyaW5nKTsK
IAorLyogQ29udmVydGluZyB0byBhbmQgZnJvbSBKU09OIGZvcm1hdHRlZCBzdHJpbmdzICovCisK
Ky8qIQorIEBmdW5jdGlvbgorIEBhYnN0cmFjdCAgICAgICBDcmVhdGVzIGEgSmF2YVNjcmlwdCB2
YWx1ZSBmcm9tIGEgSlNPTiBmb3JtYXR0ZWQgc3RyaW5nLgorIEBwYXJhbSBjdHggICAgICBUaGUg
ZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgorIEBwYXJhbSBzdHJpbmcgICBUaGUgSlNTdHJpbmcg
Y29udGFpbmluZyB0aGUgSlNPTiBzdHJpbmcgdG8gYmUgcGFyc2VkLgorIEByZXN1bHQgICAgICAg
ICBBIEpTVmFsdWUgY29udGFpbmluZyB0aGUgcGFyc2VkIHZhbHVlLCBvciBOVUxMIGlmIHRoZSBp
bnB1dCBpcyBpbnZhbGlkLgorICovCitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUZy
b21KU09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZykgQVZBSUxB
QkxFX0FGVEVSX1dFQktJVF9WRVJTSU9OXzRfMDsKKworLyohCisgQGZ1bmN0aW9uCisgQGFic3Ry
YWN0ICAgICAgIENyZWF0ZXMgYSBKYXZhU2NyaXB0IHN0cmluZyBjb250YWluaW5nIHRoZSBKU09O
IHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYSBKUyB2YWx1ZS4KKyBAcGFyYW0gY3R4ICAg
ICAgVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KKyBAcGFyYW0gdmFsdWUgICAgVGhlIHZh
bHVlIHRvIHNlcmlhbGl6ZS4KKyBAcGFyYW0gaW5kZW50ICAgVGhlIG51bWJlciBvZiBzcGFjZXMg
dG8gaW5kZW50IHdoZW4gbmVzdGluZy4gIElmIDAsIHRoZSByZXN1bHRpbmcgSlNPTiB3aWxsIG5v
dCBjb250YWlucyBuZXdsaW5lcy4gIFRoZSBzaXplIG9mIHRoZSBpbmRlbnQgaXMgY2xhbXBlZCB0
byAxMCBzcGFjZXMuCisgQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVm
IGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91
IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KKyBAcmVzdWx0ICAgICAgICAgQSBK
U1N0cmluZyB3aXRoIHRoZSByZXN1bHQgb2Ygc2VyaWFsaXphdGlvbiwgb3IgTlVMTCBpZiBhbiBl
eGNlcHRpb24gaXMgdGhyb3duLgorICovCitKU19FWFBPUlQgSlNTdHJpbmdSZWYgSlNWYWx1ZUNy
ZWF0ZUpTT05TdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgdW5zaWdu
ZWQgaW5kZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEFWQUlMQUJMRV9BRlRFUl9XRUJLSVRf
VkVSU0lPTl80XzA7CisKIC8qIENvbnZlcnRpbmcgdG8gcHJpbWl0aXZlIHZhbHVlcyAqLwogCiAv
KiEKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMgYi9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IGViYzBjZmIuLjJkZjYzMzQgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwpAQCAtODY5LDkgKzg2OSw2MyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEpTU3RyaW5nUmVmIEVtcHR5T2JqZWN0SVN0
cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFbXB0eU9iamVjdCIpOwogICAg
IEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBFbXB0eU9iamVjdElT
dHJpbmcsIEVtcHR5T2JqZWN0LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIE5VTEwpOwogICAg
IEpTU3RyaW5nUmVsZWFzZShFbXB0eU9iamVjdElTdHJpbmcpOwotICAgIAorCisgICAgSlNTdHJp
bmdSZWYgdmFsaWRKU09OID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIntcImFQcm9w
ZXJ0eVwiOnRydWV9Iik7CisgICAgSlNWYWx1ZVJlZiBqc29uT2JqZWN0ID0gSlNWYWx1ZU1ha2VG
cm9tSlNPTlN0cmluZyhjb250ZXh0LCB2YWxpZEpTT04pOworICAgIEpTU3RyaW5nUmVsZWFzZSh2
YWxpZEpTT04pOworICAgIGlmICghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIGpzb25PYmplY3Qp
KSB7CisgICAgICAgIHByaW50ZigiRkFJTDogRGlkIG5vdCBwYXJzZSB2YWxpZCBKU09OIGNvcnJl
Y3RseVxuIik7CisgICAgICAgIGZhaWxlZCA9IDE7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50
ZigiUEFTUzogUGFyc2VkIHZhbGlkIEpTT04gc3RyaW5nLlxuIik7CisgICAgSlNTdHJpbmdSZWYg
cHJvcGVydHlOYW1lID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFQcm9wZXJ0eSIp
OworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQs
IEpTVmFsdWVUb09iamVjdChjb250ZXh0LCBqc29uT2JqZWN0LCAwKSwgcHJvcGVydHlOYW1lLCAw
KSwgdHJ1ZSk7CisgICAgSlNTdHJpbmdSZWxlYXNlKHByb3BlcnR5TmFtZSk7CisgICAgSlNTdHJp
bmdSZWYgaW52YWxpZEpTT04gPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZmFpbCEi
KTsKKyAgICBpZiAoSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBpbnZhbGlkSlNP
TikpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBTaG91bGQgcmV0dXJuIG51bGwgZm9yIGludmFs
aWQgSlNPTiBkYXRhXG4iKTsKKyAgICAgICAgZmFpbGVkID0gMTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgcHJpbnRmKCJQQVNTOiBDb3JyZWN0bHkgcmV0dXJuZWQgbnVsbCBmb3IgaW52YWxpZCBKU09O
IGRhdGEuXG4iKTsKICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbjsKKyAgICBKU1N0cmluZ1JlZiBz
dHIgPSBKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyhjb250ZXh0LCBqc29uT2JqZWN0LCAwLCAwKTsK
KyAgICBpZiAoIUpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3RyLCAie1wiYVByb3BlcnR5
XCI6dHJ1ZX0iKSkgeworICAgICAgICBwcmludGYoIkZBSUw6IERpZCBub3QgY29ycmVjdGx5IHNl
cmlhbGlzZSB3aXRoIGluZGVudCBvZiAwLlxuIik7CisgICAgICAgIGZhaWxlZCA9IDE7CisgICAg
fSBlbHNlCisgICAgICAgIHByaW50ZigiUEFTUzogQ29ycmVjdGx5IHNlcmlhbGlzZWQgd2l0aCBp
bmRlbnQgb2YgMC5cbiIpOworICAgIEpTU3RyaW5nUmVsZWFzZShzdHIpOwogCisgICAgc3RyID0g
SlNWYWx1ZUNyZWF0ZUpTT05TdHJpbmcoY29udGV4dCwganNvbk9iamVjdCwgNCwgMCk7CisgICAg
aWYgKCFKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN0ciwgIntcbiAgICBcImFQcm9wZXJ0
eVwiOiB0cnVlXG59IikpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBEaWQgbm90IGNvcnJlY3Rs
eSBzZXJpYWxpc2Ugd2l0aCBpbmRlbnQgb2YgNC5cbiIpOworICAgICAgICBmYWlsZWQgPSAxOwor
ICAgIH0gZWxzZQorICAgICAgICBwcmludGYoIlBBU1M6IENvcnJlY3RseSBzZXJpYWxpc2VkIHdp
dGggaW5kZW50IG9mIDQuXG4iKTsKKyAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyKTsKKyAgICBKU1N0
cmluZ1JlZiBzcmMgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiKHtnZXQgYSgpeyB0
aHJvdyAnJzt9fSkiKTsKKyAgICBKU1ZhbHVlUmVmIHVuc3RyaW5naWZpYWJsZU9iaiA9IEpTRXZh
bHVhdGVTY3JpcHQoY29udGV4dCwgc3JjLCBOVUxMLCBOVUxMLCAxLCBOVUxMKTsKKyAgICAKKyAg
ICBzdHIgPSBKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyhjb250ZXh0LCB1bnN0cmluZ2lmaWFibGVP
YmosIDQsIDApOworICAgIGlmIChzdHIpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBEaWRuJ3Qg
cmV0dXJuIG51bGwgd2hlbiBhdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSB1bnNlcmlhbGl6YWJsZSB2
YWx1ZS5cbiIpOworICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyKTsKKyAgICAgICAgZmFpbGVk
ID0gMTsKKyAgICB9IGVsc2UKKyAgICAgICAgcHJpbnRmKCJQQVNTOiByZXR1cm5lZCBudWxsIHdo
ZW4gYXR0ZW1wdGluZyB0byBzZXJpYWxpemUgdW5zZXJpYWxpemFibGUgdmFsdWUuXG4iKTsKKyAg
ICAKKyAgICBzdHIgPSBKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyhjb250ZXh0LCB1bnN0cmluZ2lm
aWFibGVPYmosIDQsICZleGNlcHRpb24pOworICAgIGlmIChzdHIpIHsKKyAgICAgICAgcHJpbnRm
KCJGQUlMOiBEaWRuJ3QgcmV0dXJuIG51bGwgd2hlbiBhdHRlbXB0aW5nIHRvIHNlcmlhbGl6ZSB1
bnNlcmlhbGl6YWJsZSB2YWx1ZS5cbiIpOworICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyKTsK
KyAgICAgICAgZmFpbGVkID0gMTsKKyAgICB9IGVsc2UKKyAgICAgICAgcHJpbnRmKCJQQVNTOiBy
ZXR1cm5lZCBudWxsIHdoZW4gYXR0ZW1wdGluZyB0byBzZXJpYWxpemUgdW5zZXJpYWxpemFibGUg
dmFsdWUuXG4iKTsKKyAgICBpZiAoIWV4Y2VwdGlvbikgeworICAgICAgICBwcmludGYoIkZBSUw6
IERpZCBub3Qgc2V0IGV4Y2VwdGlvbiBvbiBzZXJpYWxpc2F0aW9uIGVycm9yXG4iKTsKKyAgICAg
ICAgZmFpbGVkID0gMTsKKyAgICB9IGVsc2UKKyAgICAgICAgcHJpbnRmKCJQQVNTOiBzZXQgZXhj
ZXB0aW9uIG9uIHNlcmlhbGlzYXRpb24gZXJyb3JcbiIpOwogICAgIC8vIENvbnZlcnNpb25zIHRo
YXQgdGhyb3cgZXhjZXB0aW9ucwogICAgIGV4Y2VwdGlvbiA9IE5VTEw7CiAgICAgQVNTRVJUKE5V
TEwgPT0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIGpzTnVsbCwgJmV4Y2VwdGlvbikpOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCmluZGV4IDE2ZDIwYzEuLmIyMTUyNDYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAxMC0wMy0xOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdG8gZGlyZWN0bHkg
ZXhwb3NlIEpTT04gcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQ4ODcKKworICAgICAgICBBZGQgQVBJIHRvIGV4cG9zZSBKU09OIHBhcnNp
bmcgZGlyZWN0bHksIGFuZCBhZGQgdGVzdHMgdG8gdGVzdGFwaQorCisgICAgICAgICogQVBJL0pT
VmFsdWVSZWYuY3BwOgorICAgICAgICAoSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyk6CisgICAg
ICAgIChKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyk6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3Rh
cGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAg
ICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09OU3RyaW5n
aWZ5KToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKwogMjAxMC0wMy0xNiAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyIGFuZCBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggOTM4Yzdm
Zi4uYmZkNDBiZCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtNTcsNiArNTcsNyBA
QCBfSlNTdHJpbmdJc0VxdWFsCiBfSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZwogX0pTU3Ry
aW5nUmVsZWFzZQogX0pTU3RyaW5nUmV0YWluCitfSlNWYWx1ZUNyZWF0ZUpTT05TdHJpbmcKIF9K
U1ZhbHVlR2V0VHlwZQogX0pTVmFsdWVJc0Jvb2xlYW4KIF9KU1ZhbHVlSXNFcXVhbApAQCAtNzMs
NiArNzQsNyBAQCBfSlNWYWx1ZU1ha2VOdWxsCiBfSlNWYWx1ZU1ha2VOdW1iZXIKIF9KU1ZhbHVl
TWFrZVN0cmluZwogX0pTVmFsdWVNYWtlVW5kZWZpbmVkCitfSlNWYWx1ZU1ha2VGcm9tSlNPTlN0
cmluZwogX0pTVmFsdWVQcm90ZWN0CiBfSlNWYWx1ZVRvQm9vbGVhbgogX0pTVmFsdWVUb051bWJl
cgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggZDY5YThkYS4uZDVmMzMw
MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC04NjgsNCArODY4LDEy
IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU09OUHJvdG9GdW5jU3RyaW5naWZ5KEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqLCBKU1ZhbHVlCiAgICAgcmV0dXJuIFN0cmluZ2lmaWVyKGV4ZWMs
IHJlcGxhY2VyLCBzcGFjZSkuc3RyaW5naWZ5KHZhbHVlKTsKIH0KIAorVVN0cmluZyBKU09OU3Ry
aW5naWZ5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgaW5kZW50KQor
eworICAgIEpTVmFsdWUgcmVzdWx0ID0gU3RyaW5naWZpZXIoZXhlYywganNOdWxsKCksIGpzTnVt
YmVyKGV4ZWMsIGluZGVudCkpLnN0cmluZ2lmeSh2YWx1ZSk7CisgICAgaWYgKHJlc3VsdC5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gVVN0cmluZygpOworICAgIHJldHVybiBy
ZXN1bHQuZ2V0U3RyaW5nKGV4ZWMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggOTA1ZTRiYy4uN2E5ZTBhNCAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTU3LDYgKzU3LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKICAgICB9OwogCisgICAgVVN0cmlu
ZyBKU09OU3RyaW5naWZ5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQg
aW5kZW50KTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU09OT2JqZWN0X2gK
</data>
<flag name="review"
          id="34290"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>