<?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>25290</bug_id>
          
          <creation_ts>2009-04-20 01:51:09 -0700</creation_ts>
          <short_desc>REGRESSION(r41732): Crash when constructing XMLHttpRequest in a detached document</short_desc>
          <delta_ts>2009-04-21 01:26:32 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>118090</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-20 01:51:09 -0700</bug_when>
    <thetext>Now that JSXMLHttpRequestConstructor (and other constructors) are tied to a global object, not to a script execution context, we need to take care of edge cases where converting from ScriptExecutionContext to JSDOMGlobalObject doesn&apos;t work. Namely, both exist for a detached document, but toJSDOMGlobalObject(scriptExecutionContext) returns 0.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118151</commentid>
    <comment_count>1</comment_count>
      <attachid>29621</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-20 12:58:17 -0700</bug_when>
    <thetext>Created attachment 29621
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118154</commentid>
    <comment_count>2</comment_count>
      <attachid>29621</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-20 13:55:36 -0700</bug_when>
    <thetext>Comment on attachment 29621
proposed patch

&gt; +    KURL url = this-&gt;url();
&gt; +    NSURL* nsURL;
&gt; +    if (m_responseContentDispositionEncodingFallbackArray.isEmpty())
&gt; +        nsURL = url;
&gt; +    else {
&gt; +        CString urlString = TextEncoding(m_responseContentDispositionEncodingFallbackArray[0]).encode(url.string().characters(), url.string().length(), URLEncodedEntitiesForUnencodables);
&gt; +        RetainPtr&lt;CFURLRef&gt; cfURL = CFURLCreateAbsoluteURLWithBytes(kCFAllocatorDefault, (const UInt8*)urlString.data(), urlString.length(), CFStringConvertIANACharSetNameToEncoding(m_responseContentDispositionEncodingFallbackArray[0].createCFString()), 0, false);
&gt; +        nsURL = (NSURL*)cfURL.get();
&gt; +        [[nsURL retain] autorelease];;
&gt; +    }
&gt; +
&gt;      if (nsRequest)
&gt; -        [nsRequest setURL:url()];
&gt; +        [nsRequest setURL:nsURL];
&gt;      else
&gt; -        nsRequest = [[NSMutableURLRequest alloc] initWithURL:url()];
&gt; +        nsRequest = [[NSMutableURLRequest alloc] initWithURL:nsURL];

I suggest making the new nsURL variable a RetainPtr&lt;NSURL*&gt;, and therefore avoiding autorelease.

Is there a way we could avoid 

There are double semicolons on the line that calls autorelease.

A local variable for the encoding name would make the expression easier to read.

This code leaks the string created by createCFString; probably best to fix that using a RetainPtr&lt;CFStringRef&gt;.

review- because of the leak</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118155</commentid>
    <comment_count>3</comment_count>
      <attachid>29624</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-20 14:05:21 -0700</bug_when>
    <thetext>Created attachment 29624
proposed patch

&gt; I suggest making the new nsURL variable a RetainPtr&lt;NSURL*&gt;, and therefore
&gt; avoiding autorelease.

Oops! Sorry, this code is completely unrelated, and certainly not ready for review. Submitting a hopefully clean patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118156</commentid>
    <comment_count>4</comment_count>
      <attachid>29624</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-20 14:18:44 -0700</bug_when>
    <thetext>Comment on attachment 29624
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118246</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-21 01:26:32 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/42700&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29621</attachid>
            <date>2009-04-20 12:58:17 -0700</date>
            <delta_ts>2009-04-20 14:05:21 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>DetachedDocument.txt</filename>
            <type>text/plain</type>
            <size>16242</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjY2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDQtMjAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTI5MAorICAgICAgICBS
RUdSRVNTSU9OKHI0MTczMik6IENyYXNoIHdoZW4gY29uc3RydWN0aW5nIFhNTEh0dHBSZXF1ZXN0
IGluIGEgZGV0YWNoZWQgZG9jdW1lbnQKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS94bWxodHRw
cmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNBdWRpb0NvbnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpnZXRET01Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmg6Cisg
ICAgICAgIEF2b2lkIGFjY2Vzc2luZyBKU0RPTUdsb2JhbE9iamVjdCB2aWEgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCBkb2Vzbid0IHdvcmssIHNpbmNlIGl0IG1heSBub3QKKyAgICAgICAgd29yayBk
dXJpbmcgZnJhbWUgdGVhcmRvd24uCisKIDIwMDktMDQtMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICAtIG1heWJlIGZpeCByZWxlYXNlIGJ1aWxkcwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDI2
NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDExICs0MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU0F1ZGlvQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkF1ZGlvQ29uc3RydWN0
b3IiLCAwLCAwLCAwIH07CiAKLUpTQXVkaW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK0pTQXVk
aW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTU9iamVjdChKU0F1ZGlvQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVj
dFByb3RvdHlwZSgpKSkKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3Qo
Y29udGV4dCkpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7Ci0gICAgQVNT
RVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CiAKICAgICBwdXREaXJlY3QoZXhlYy0+
cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MQXVkaW9FbGVtZW50UHJvdG90eXBlOjpz
ZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogICAgIHB1dERp
cmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAxKSwgUmVh
ZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNB
dWRpb0NvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDQyNjY1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU0F1ZGlvQ29uc3RydWN0b3IgOiBwdWJs
aWMgRE9NT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTQXVkaW9Db25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICAgICAgSlNBdWRp
b0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAogICAg
ICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuaAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpKU09iamVj
dCogY29uc3RydWN0b3IgPSBnbG9iYWxPYmplY3QtPmNvbnN0cnVjdG9ycygpLmdldCgmQ29uc3Ry
dWN0b3JDbGFzczo6c19pbmZvKSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKLSAg
ICAgICAgSlNDOjpKU09iamVjdCogY29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIENvbnN0cnVjdG9y
Q2xhc3MoZXhlYywgZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAg
ICAgICBKU0M6OkpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgQ29uc3RydWN0b3JD
bGFzcyhleGVjLCBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7
CiAgICAgICAgIEFTU0VSVCghZ2xvYmFsT2JqZWN0LT5jb25zdHJ1Y3RvcnMoKS5jb250YWlucygm
Q29uc3RydWN0b3JDbGFzczo6c19pbmZvKSk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+Y29uc3Ry
dWN0b3JzKCkuc2V0KCZDb25zdHJ1Y3RvckNsYXNzOjpzX2luZm8sIGNvbnN0cnVjdG9yKTsKICAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lt
YWdlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bWFnZUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICszNCwx
MiBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTSW1hZ2VDb25zdHJ1CiAKIGNvbnN0IENs
YXNzSW5mbyBKU0ltYWdlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkltYWdlQ29uc3RydWN0b3Ii
LCAwLCAwLCAwIH07CiAKLUpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK0pTSW1hZ2VD
b25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTU9iamVjdChKU0ltYWdlQ29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFBy
b3RvdHlwZSgpKSkKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3QoY29u
dGV4dCkpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7Ci0gICAgQVNTRVJU
KGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CiAKICAgICBwdXREaXJlY3QoZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogfQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA0MjY2NSkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNJbWFn
ZUNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBK
U0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisgICAgICAgIEpTSW1hZ2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0Kik7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiA0MjY2NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIk1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKLUpTTWVz
c2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKK0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAg
ICA6IERPTU9iamVjdChKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKLSAgICAs
IG1fZ2xvYmFsT2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgcHV0RGlyZWN0
KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTTWVzc2FnZUNoYW5uZWxQcm90b3R5
cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CiB9Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVj
dG9yLmgJKHJldmlzaW9uIDQyNjY1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3Ig
OiBwdWJsaWMgRE9NT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTTWVzc2FnZUNoYW5u
ZWxDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
KyAgICAgICAgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKICAgICAgICAgdmlydHVhbCB+SlNNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yKCk7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5m
bygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvIHNfaW5mbzsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMSArMzQsMTIgQEAg
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU09wdGlvbkNvbnN0cgogCiBjb25zdCBDbGFzc0lu
Zm8gSlNPcHRpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiT3B0aW9uQ29uc3RydWN0b3IiLCAw
LCAwLCAwIH07CiAKLUpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorSlNPcHRpb25D
b25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgOiBET01PYmplY3QoSlNPcHRpb25Db25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0
UHJvdG90eXBlKCkpKQotICAgICwgbV9nbG9iYWxPYmplY3QodG9KU0RPTUdsb2JhbE9iamVjdChj
b250ZXh0KSkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKIHsKLSAgICBBU1NF
UlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKIAogICAgIHB1dERpcmVjdChleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0hUTUxPcHRpb25FbGVtZW50UHJvdG90eXBlOjpz
ZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogICAgIHB1dERp
cmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCA0KSwgUmVh
ZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU09wdGlvbkNvbnN0cnVjdG9yIDog
cHVibGljIERPTU9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBKU09wdGlvbkNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgICAgICBK
U09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsK
ICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDQyNjY1KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw5IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwo
SlNYTUxIdHRwUmVxdWUKIAogY29uc3QgQ2xhc3NJbmZvIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsK
IAotSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQorSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogICAgIDogRE9NT2JqZWN0KEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkp
KQotICAgICwgbV9nbG9iYWxPYmplY3QodG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KSkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKIHsKICAgICBw
dXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNYTUxIdHRwUmVxdWVz
dFByb3RvdHlwZTo6c2VsZihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25l
KTsKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yIDogcHVibGljIERPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgSlNYTUxIdHRwUmVxdWVzdENv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAg
IEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0Kik7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1
ZXN0TWFjLm1tCShyZXZpc2lvbiA0MjY2NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw4IEBA
CiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW1w
b3J0ICJDU3RyaW5nLmgiCisjaW1wb3J0ICJUZXh0RW5jb2RpbmcuaCIKICNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKIAogI2ltcG9ydCAiRm9ybURhdGFTdHJlYW1NYWMuaCIKQEAg
LTk4LDEwICsxMDAsMjEgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1S
ZQogICAgIAogICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QqIG5zUmVxdWVzdCA9IFttX25zUmVxdWVz
dC5nZXQoKSBtdXRhYmxlQ29weV07CiAKKyAgICBLVVJMIHVybCA9IHRoaXMtPnVybCgpOworICAg
IE5TVVJMKiBuc1VSTDsKKyAgICBpZiAobV9yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29k
aW5nRmFsbGJhY2tBcnJheS5pc0VtcHR5KCkpCisgICAgICAgIG5zVVJMID0gdXJsOworICAgIGVs
c2UgeworICAgICAgICBDU3RyaW5nIHVybFN0cmluZyA9IFRleHRFbmNvZGluZyhtX3Jlc3BvbnNl
Q29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5WzBdKS5lbmNvZGUodXJsLnN0
cmluZygpLmNoYXJhY3RlcnMoKSwgdXJsLnN0cmluZygpLmxlbmd0aCgpLCBVUkxFbmNvZGVkRW50
aXRpZXNGb3JVbmVuY29kYWJsZXMpOworICAgICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNmVVJM
ID0gQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Y29uc3QgVUludDgqKXVybFN0cmluZy5kYXRhKCksIHVybFN0cmluZy5sZW5ndGgoKSwgQ0ZTdHJp
bmdDb252ZXJ0SUFOQUNoYXJTZXROYW1lVG9FbmNvZGluZyhtX3Jlc3BvbnNlQ29udGVudERpc3Bv
c2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5WzBdLmNyZWF0ZUNGU3RyaW5nKCkpLCAwLCBmYWxz
ZSk7CisgICAgICAgIG5zVVJMID0gKE5TVVJMKiljZlVSTC5nZXQoKTsKKyAgICAgICAgW1tuc1VS
TCByZXRhaW5dIGF1dG9yZWxlYXNlXTs7CisgICAgfQorCiAgICAgaWYgKG5zUmVxdWVzdCkKLSAg
ICAgICAgW25zUmVxdWVzdCBzZXRVUkw6dXJsKCldOworICAgICAgICBbbnNSZXF1ZXN0IHNldFVS
TDpuc1VSTF07CiAgICAgZWxzZQotICAgICAgICBuc1JlcXVlc3QgPSBbW05TTXV0YWJsZVVSTFJl
cXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVybCgpXTsKKyAgICAgICAgbnNSZXF1ZXN0ID0gW1tO
U011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDpuc1VSTF07CiAKICNpZmRlZiBC
VUlMRElOR19PTl9USUdFUgogICAgIHdrU3VwcG9ydHNNdWx0aXBhcnRYTWl4ZWRSZXBsYWNlKG5z
UmVxdWVzdCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjY2OSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA0LTIwICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjUyOTAKKyAgICAgICAgUkVHUkVTU0lPTihyNDE3MzIpOiBDcmFzaCB3aGVuIGNvbnN0
cnVjdGluZyBYTUxIdHRwUmVxdWVzdCBpbiBhIGRldGFjaGVkIGRvY3VtZW50CisKKyAgICAgICAg
KiBmYXN0L2RvbS9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNo
ZWQtZG9jdW1lbnQtZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20veG1saHR0
cHJlcXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1k
ZXRhY2hlZC1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0xOSAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRl
dGFjaGVkLWRvY3VtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS94bWxodHRw
cmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGV4dCBmb3IgYnVnIDI1MjkwOiBDcmFzaCB3aGVu
IGNvbnN0cnVjdGluZyBYTUxIdHRwUmVxdWVzdCBpbiBhIGRldGFjaGVkIGRvY3VtZW50LgorCitQ
QVNTCisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHBy
ZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWV4cGVjdGVkLnR4dApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L3BsYWluCk5hbWU6IHN2bjplb2wt
c3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS94bWxodHRwcmVx
dWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFj
aGVkLWRvY3VtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS94
bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8cD5UZXh0IGZvciA8YSAgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MjkwIj5idWcgMjUyOTA8L2E+OgorQ3Jh
c2ggd2hlbiBjb25zdHJ1Y3RpbmcgWE1MSHR0cFJlcXVlc3QgaW4gYSBkZXRhY2hlZCBkb2N1bWVu
dC48L3A+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKQoreworICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlBBU1MiOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMOiBT
Y3JpcHQgZGlkIG5vdCBydW48L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMveG1saHR0cHJl
cXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1lbnQtZnJhbWUuaHRtbCI+PC9pZnJh
bWU+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS94bWxodHRwcmVx
dWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC5odG1sCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFt
ZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1
bWVudC1mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291
cmNlcy94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1mcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3ht
bGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWZyYW1lLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzxzY3JpcHQ+CisgICAgdmFyIHhociA9IG5l
dyBwYXJlbnQuWE1MSHR0cFJlcXVlc3Q7CisgICAgeGhyLm9wZW4oIkdFVCIsICJ4bWxodHRwcmVx
dWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1mcmFtZS5odG1sIik7CisgICAg
eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgICBpZiAoZXZ0
LnRhcmdldC5yZWFkeVN0YXRlID09IDQpIHsKKyAgICAgICAgICAgIHBhcmVudC5zZXRUaW1lb3V0
KCJwYXNzKCkiLCAwKTsKKyAgICAgICAgICAgIHBhcmVudC5kb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKHBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOwor
ICAgICAgICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAgICAgICAgICAgIHJl
cS5vcGVuKCJHRVQiLCAieG1saHR0cHJlcXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9j
dW1lbnQtZnJhbWUuaHRtbCIsIGZhbHNlKTsKKyAgICAgICAgICAgIHJlcS5zZW5kKG51bGwpOwor
ICAgICAgICB9CisgICAgfQorICAgIHhoci5zZW5kKG51bGwpOworICAgIHhociA9IG51bGw7Cis8
L3NjcmlwdD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291
cmNlcy94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1mcmFt
ZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoK
</data>
<flag name="review"
          id="14797"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29624</attachid>
            <date>2009-04-20 14:05:21 -0700</date>
            <delta_ts>2009-04-20 14:18:44 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>DetachedDocument.txt</filename>
            <type>text/plain</type>
            <size>14636</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjY2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDQtMjAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTI5MAorICAgICAgICBS
RUdSRVNTSU9OKHI0MTczMik6IENyYXNoIHdoZW4gY29uc3RydWN0aW5nIFhNTEh0dHBSZXF1ZXN0
IGluIGEgZGV0YWNoZWQgZG9jdW1lbnQKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS94bWxodHRw
cmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNBdWRpb0NvbnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpnZXRET01Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmg6Cisg
ICAgICAgIEF2b2lkIGFjY2Vzc2luZyBKU0RPTUdsb2JhbE9iamVjdCB2aWEgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCBkb2Vzbid0IHdvcmssIHNpbmNlIGl0IG1heSBub3QKKyAgICAgICAgd29yayBk
dXJpbmcgZnJhbWUgdGVhcmRvd24uCisKIDIwMDktMDQtMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICAtIG1heWJlIGZpeCByZWxlYXNlIGJ1aWxkcwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDI2
NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDExICs0MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU0F1ZGlvQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkF1ZGlvQ29uc3RydWN0
b3IiLCAwLCAwLCAwIH07CiAKLUpTQXVkaW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK0pTQXVk
aW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTU9iamVjdChKU0F1ZGlvQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVj
dFByb3RvdHlwZSgpKSkKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3Qo
Y29udGV4dCkpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7Ci0gICAgQVNT
RVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CiAKICAgICBwdXREaXJlY3QoZXhlYy0+
cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MQXVkaW9FbGVtZW50UHJvdG90eXBlOjpz
ZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogICAgIHB1dERp
cmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAxKSwgUmVh
ZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNB
dWRpb0NvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDQyNjY1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU0F1ZGlvQ29uc3RydWN0b3IgOiBwdWJs
aWMgRE9NT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTQXVkaW9Db25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICAgICAgSlNBdWRp
b0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAogICAg
ICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuaAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBpZiAoSlNDOjpKU09iamVj
dCogY29uc3RydWN0b3IgPSBnbG9iYWxPYmplY3QtPmNvbnN0cnVjdG9ycygpLmdldCgmQ29uc3Ry
dWN0b3JDbGFzczo6c19pbmZvKSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKLSAg
ICAgICAgSlNDOjpKU09iamVjdCogY29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIENvbnN0cnVjdG9y
Q2xhc3MoZXhlYywgZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAg
ICAgICBKU0M6OkpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgQ29uc3RydWN0b3JD
bGFzcyhleGVjLCBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7
CiAgICAgICAgIEFTU0VSVCghZ2xvYmFsT2JqZWN0LT5jb25zdHJ1Y3RvcnMoKS5jb250YWlucygm
Q29uc3RydWN0b3JDbGFzczo6c19pbmZvKSk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+Y29uc3Ry
dWN0b3JzKCkuc2V0KCZDb25zdHJ1Y3RvckNsYXNzOjpzX2luZm8sIGNvbnN0cnVjdG9yKTsKICAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lt
YWdlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bWFnZUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICszNCwx
MiBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTSW1hZ2VDb25zdHJ1CiAKIGNvbnN0IENs
YXNzSW5mbyBKU0ltYWdlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkltYWdlQ29uc3RydWN0b3Ii
LCAwLCAwLCAwIH07CiAKLUpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK0pTSW1hZ2VD
b25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTU9iamVjdChKU0ltYWdlQ29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFBy
b3RvdHlwZSgpKSkKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3QoY29u
dGV4dCkpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7Ci0gICAgQVNTRVJU
KGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CiAKICAgICBwdXREaXJlY3QoZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogfQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA0MjY2NSkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNJbWFn
ZUNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBK
U0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisgICAgICAgIEpTSW1hZ2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0Kik7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiA0MjY2NSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIk1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKLUpTTWVz
c2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKK0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAg
ICA6IERPTU9iamVjdChKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKLSAgICAs
IG1fZ2xvYmFsT2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgcHV0RGlyZWN0
KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTTWVzc2FnZUNoYW5uZWxQcm90b3R5
cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CiB9Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVj
dG9yLmgJKHJldmlzaW9uIDQyNjY1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3Ig
OiBwdWJsaWMgRE9NT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTTWVzc2FnZUNoYW5u
ZWxDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
KyAgICAgICAgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKICAgICAgICAgdmlydHVhbCB+SlNNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yKCk7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5m
bygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvIHNfaW5mbzsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMSArMzQsMTIgQEAg
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU09wdGlvbkNvbnN0cgogCiBjb25zdCBDbGFzc0lu
Zm8gSlNPcHRpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiT3B0aW9uQ29uc3RydWN0b3IiLCAw
LCAwLCAwIH07CiAKLUpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorSlNPcHRpb25D
b25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgOiBET01PYmplY3QoSlNPcHRpb25Db25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0
UHJvdG90eXBlKCkpKQotICAgICwgbV9nbG9iYWxPYmplY3QodG9KU0RPTUdsb2JhbE9iamVjdChj
b250ZXh0KSkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKIHsKLSAgICBBU1NF
UlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKIAogICAgIHB1dERpcmVjdChleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0hUTUxPcHRpb25FbGVtZW50UHJvdG90eXBlOjpz
ZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogICAgIHB1dERp
cmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCA0KSwgUmVh
ZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBKU09wdGlvbkNvbnN0cnVjdG9yIDog
cHVibGljIERPTU9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBKU09wdGlvbkNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgICAgICBK
U09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsK
ICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDQyNjY1KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw5IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwo
SlNYTUxIdHRwUmVxdWUKIAogY29uc3QgQ2xhc3NJbmZvIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsK
IAotSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQorSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogICAgIDogRE9NT2JqZWN0KEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkp
KQotICAgICwgbV9nbG9iYWxPYmplY3QodG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KSkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKIHsKICAgICBw
dXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNYTUxIdHRwUmVxdWVz
dFByb3RvdHlwZTo6c2VsZihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25l
KTsKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNDI2NjUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yIDogcHVibGljIERPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgSlNYTUxIdHRwUmVxdWVzdENv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAg
IEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0Kik7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQyNjY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDQtMjAgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTI5
MAorICAgICAgICBSRUdSRVNTSU9OKHI0MTczMik6IENyYXNoIHdoZW4gY29uc3RydWN0aW5nIFhN
TEh0dHBSZXF1ZXN0IGluIGEgZGV0YWNoZWQgZG9jdW1lbnQKKworICAgICAgICAqIGZhc3QvZG9t
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVu
dC1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS94bWxodHRwcmVxdWVzdC1j
b25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRv
Y3VtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDA5LTA0LTE5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20veG1saHR0cHJlcXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9j
dW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3ht
bGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNv
bnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0IEBACitUZXh0IGZvciBidWcgMjUyOTA6IENyYXNoIHdoZW4gY29uc3RydWN0
aW5nIFhNTEh0dHBSZXF1ZXN0IGluIGEgZGV0YWNoZWQgZG9jdW1lbnQuCisKK1BBU1MKKwoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20veG1saHR0cHJlcXVlc3QtY29u
c3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFt
ZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICAr
IG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNvbnN0
cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20veG1saHR0cHJlcXVlc3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1l
bnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1
ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTcgQEAKKzxwPlRleHQgZm9yIDxhICBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyOTAiPmJ1ZyAyNTI5MDwvYT46CitDcmFzaCB3aGVuIGNv
bnN0cnVjdGluZyBYTUxIdHRwUmVxdWVzdCBpbiBhIGRldGFjaGVkIGRvY3VtZW50LjwvcD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcGFzcygpCit7CisgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8ZGl2IGlkPSJyZXN1bHQiPkZBSUw6IFNjcmlwdCBkaWQg
bm90IHJ1bjwvZGl2PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy94bWxodHRwcmVxdWVzdC1jb25z
dHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1mcmFtZS5odG1sIj48L2lmcmFtZT4KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL3htbGh0dHByZXF1ZXN0LWNvbnN0
cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgdGV4dC9odG1sCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3Vy
Y2VzL3htbGh0dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWZyYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3htbGh0
dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWZyYW1lLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMveG1saHR0cHJlcXVl
c3QtY29uc3RydWN0b3ItaW4tZGV0YWNoZWQtZG9jdW1lbnQtZnJhbWUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPHNjcmlwdD4KKyAgICB2YXIgeGhyID0gbmV3IHBhcmVudC5Y
TUxIdHRwUmVxdWVzdDsKKyAgICB4aHIub3BlbigiR0VUIiwgInhtbGh0dHByZXF1ZXN0LWNvbnN0
cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWZyYW1lLmh0bWwiKTsKKyAgICB4aHIub25yZWFk
eXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIGlmIChldnQudGFyZ2V0LnJl
YWR5U3RhdGUgPT0gNCkgeworICAgICAgICAgICAgcGFyZW50LnNldFRpbWVvdXQoInBhc3MoKSIs
IDApOworICAgICAgICAgICAgcGFyZW50LmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGFyZW50
LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7CisgICAgICAgICAg
ICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgICAgICAgICAgcmVxLm9wZW4oIkdF
VCIsICJ4bWxodHRwcmVxdWVzdC1jb25zdHJ1Y3Rvci1pbi1kZXRhY2hlZC1kb2N1bWVudC1mcmFt
ZS5odG1sIiwgZmFsc2UpOworICAgICAgICAgICAgcmVxLnNlbmQobnVsbCk7CisgICAgICAgIH0K
KyAgICB9CisgICAgeGhyLnNlbmQobnVsbCk7CisgICAgeGhyID0gbnVsbDsKKzwvc2NyaXB0PgoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3htbGh0
dHByZXF1ZXN0LWNvbnN0cnVjdG9yLWluLWRldGFjaGVkLWRvY3VtZW50LWZyYW1lLmh0bWwKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCgo=
</data>
<flag name="review"
          id="14798"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>