<?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>92691</bug_id>
          
          <creation_ts>2012-07-30 16:37:35 -0700</creation_ts>
          <short_desc>Crashes in dfgBuildPutByIdList when clicking on just about anything on Google Maps</short_desc>
          <delta_ts>2012-08-03 18:05:37 -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>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://maps.google.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>93157</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Wade">skepticus</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ap</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>682516</commentid>
    <comment_count>0</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-07-30 16:37:35 -0700</bug_when>
    <thetext>As above, plus, the damn thing crashed when I attempted to log this bug! I&apos;m using the release Safari to do this now. Possible extension conflict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682517</commentid>
    <comment_count>1</comment_count>
      <attachid>155395</attachid>
    <who name="Wade">skepticus</who>
    <bug_when>2012-07-30 16:38:23 -0700</bug_when>
    <thetext>Created attachment 155395
dump of crash log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683248</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-31 10:34:36 -0700</bug_when>
    <thetext>0   com.apple.JavaScriptCore      	0x0000000107c57140 JSC::DFG::dfgBuildPutByIdList(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&amp;, JSC::PutPropertySlot const&amp;, JSC::StructureStubInfo&amp;, JSC::PutKind) + 448
1   com.apple.JavaScriptCore      	0x0000000107c4bf01 operationPutByIdStrictBuildListWithReturnAddress + 241
2   ???                           	0x00004aac23e85bbd 0 + 82103197260733
3   com.apple.JavaScriptCore      	0x0000000107cb87f4 JSC::Interpreter::execute(JSC::EvalExecutable*, JSC::ExecState*, JSC::JSValue, JSC::ScopeChainNode*, int) + 1140

&gt; I&apos;m using the release Safari to do this now.

The crash on Google Maps appears to be a nightly-only issue, I suspect that the crash you got in released Safari/WebKit was different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685415</commentid>
    <comment_count>3</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 08:20:18 -0700</bug_when>
    <thetext>new nightly does not fix this problem. Version 6.0 (7536.25, 537+)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685766</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-02 13:47:47 -0700</bug_when>
    <thetext>I cannot repro in a debug build.  Trying release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685799</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-02 14:07:23 -0700</bug_when>
    <thetext>I cannot reproduce in a release build of r124487.  I was able to click on all sorts of things, get directions, etc.

Do you have any extensions installed?  Can you give more specific repro steps?

Alexey, were you ever able to reproduce this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685882</commentid>
    <comment_count>6</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 15:11:43 -0700</bug_when>
    <thetext>I have several extensions installed. I&apos;ve disabled them and used the most recent nightly and still got the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685886</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-02 15:13:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I have several extensions installed. I&apos;ve disabled them and used the most recent nightly and still got the crash.

Can you give me a specific set of actions that will lead to a crash?  I&apos;d really like to fix this, but I currently cannot cause the crash to happen at all.  The title implies that I can &quot;click on just about anything&quot;.  I&apos;ve clicked on various things that I can think to click on, but none of them result in crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685893</commentid>
    <comment_count>8</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 15:18:25 -0700</bug_when>
    <thetext>&quot;I suspect that the crash you got in released Safari/WebKit was different.&quot;

I did not get a crash in the Safari release. Only in the nightly. And now there have been three nightlies released which all have the crash. The crash log looks similar to me so I haven&apos;t attached any new ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685894</commentid>
    <comment_count>9</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 15:20:42 -0700</bug_when>
    <thetext>&quot;I suspect that the crash you got in released Safari/WebKit was different.&quot;

I did not get a crash in the Safari release. Only in the nightly. And now there have been three nightlies released which all have the crash. The crash log looks similar to me so I haven&apos;t attached any new ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685895</commentid>
    <comment_count>10</comment_count>
      <attachid>156180</attachid>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 15:22:03 -0700</bug_when>
    <thetext>Created attachment 156180
latest crash log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685896</commentid>
    <comment_count>11</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 15:23:03 -0700</bug_when>
    <thetext>often simply navigating to maps.google.com will cause the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685898</commentid>
    <comment_count>12</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-02 15:24:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I have several extensions installed. I&apos;ve disabled them and used the most recent nightly and still got the crash.
&gt; 
&gt; Can you give me a specific set of actions that will lead to a crash?  I&apos;d really like to fix this, but I currently cannot cause the crash to happen at all.  The title implies that I can &quot;click on just about anything&quot;.  I&apos;ve clicked on various things that I can think to click on, but none of them result in crashes.

I&apos;m baffled that you don&apos;t get the crash. Simply opening maps.google.com will cause it sometimes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686742</commentid>
    <comment_count>13</comment_count>
    <who name="Wade">skepticus</who>
    <bug_when>2012-08-03 07:46:59 -0700</bug_when>
    <thetext>newest nightly also crashes, just by opening maps.google.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687080</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-03 13:07:19 -0700</bug_when>
    <thetext>I can reproduce this. With a debug build and GuardMalloc, the stack trace is:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000010c604d98 JSC::DFG::Node::child1() + 24 (DFGNode.h:805)
1   com.apple.JavaScriptCore      	0x000000010c94526d JSC::DFG::StructureCheckHoistingPhase::run() + 7197 (DFGStructureCheckHoistingPhase.cpp:366)
2   com.apple.JavaScriptCore      	0x000000010c9433b5 bool JSC::DFG::runAndLog&lt;JSC::DFG::StructureCheckHoistingPhase&gt;(JSC::DFG::StructureCheckHoistingPhase&amp;) + 21 (DFGPhase.h:83)
3   com.apple.JavaScriptCore      	0x000000010c943345 bool JSC::DFG::runPhase&lt;JSC::DFG::StructureCheckHoistingPhase&gt;(JSC::DFG::Graph&amp;) + 37 (DFGPhase.h:95)
4   com.apple.JavaScriptCore      	0x000000010c9431f8 JSC::DFG::performStructureCheckHoisting(JSC::DFG::Graph&amp;) + 40 (DFGStructureCheckHoistingPhase.cpp:473)
5   com.apple.JavaScriptCore      	0x000000010c645179 JSC::DFG::compile(JSC::DFG::CompileMode, JSC::ExecState*, JSC::CodeBlock*, JSC::JITCode&amp;, JSC::MacroAssemblerCodePtr*) + 809 (DFGDriver.cpp:105)
6   com.apple.JavaScriptCore      	0x000000010c644e44 JSC::DFG::tryCompileFunction(JSC::ExecState*, JSC::CodeBlock*, JSC::JITCode&amp;, JSC::MacroAssemblerCodePtr&amp;) + 52 (DFGDriver.cpp:145)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687137</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-03 14:15:50 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I can reproduce this. With a debug build and GuardMalloc, the stack trace is:
&gt; 
&gt; Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
&gt; 0   com.apple.JavaScriptCore          0x000000010c604d98 JSC::DFG::Node::child1() + 24 (DFGNode.h:805)
&gt; 1   com.apple.JavaScriptCore          0x000000010c94526d JSC::DFG::StructureCheckHoistingPhase::run() + 7197 (DFGStructureCheckHoistingPhase.cpp:366)
&gt; 2   com.apple.JavaScriptCore          0x000000010c9433b5 bool JSC::DFG::runAndLog&lt;JSC::DFG::StructureCheckHoistingPhase&gt;(JSC::DFG::StructureCheckHoistingPhase&amp;) + 21 (DFGPhase.h:83)
&gt; 3   com.apple.JavaScriptCore          0x000000010c943345 bool JSC::DFG::runPhase&lt;JSC::DFG::StructureCheckHoistingPhase&gt;(JSC::DFG::Graph&amp;) + 37 (DFGPhase.h:95)
&gt; 4   com.apple.JavaScriptCore          0x000000010c9431f8 JSC::DFG::performStructureCheckHoisting(JSC::DFG::Graph&amp;) + 40 (DFGStructureCheckHoistingPhase.cpp:473)
&gt; 5   com.apple.JavaScriptCore          0x000000010c645179 JSC::DFG::compile(JSC::DFG::CompileMode, JSC::ExecState*, JSC::CodeBlock*, JSC::JITCode&amp;, JSC::MacroAssemblerCodePtr*) + 809 (DFGDriver.cpp:105)
&gt; 6   com.apple.JavaScriptCore          0x000000010c644e44 JSC::DFG::tryCompileFunction(JSC::ExecState*, JSC::CodeBlock*, JSC::JITCode&amp;, JSC::MacroAssemblerCodePtr&amp;) + 52 (DFGDriver.cpp:145)

This appears to be a separate bug, since prior to http://trac.webkit.org/changeset/124404 we didn&apos;t even have this code.  Creating a separate bug 93157.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687212</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-03 15:49:26 -0700</bug_when>
    <thetext>Oh well. So, new debug crash is:


ASSERTION FAILED: stubInfo.accessType == access_put_by_id_replace || stubInfo.accessType == access_put_by_id_transition_normal || stubInfo.accessType == access_put_by_id_transition_direct
/Users/ap/Safari/OpenSource/Source/JavaScriptCore/bytecode/PolymorphicPutByIdList.cpp(105) : static JSC::PolymorphicPutByIdList *JSC::PolymorphicPutByIdList::from(JSC::PutKind, JSC::StructureStubInfo &amp;, JSC::MacroAssemblerCodePtr)
1   0x105220cf8 JSC::PolymorphicPutByIdList::from(JSC::PutKind, JSC::StructureStubInfo&amp;, JSC::MacroAssemblerCodePtr)
2   0x104f92dd2 _ZN3JSC3DFGL19tryBuildPutByIdListEPNS_9ExecStateENS_7JSValueERKNS_10IdentifierERKNS_15PutPropertySlotERNS_17StructureStubInfoENS_7PutKindE
3   0x104f92bc5 JSC::DFG::dfgBuildPutByIdList(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&amp;, JSC::PutPropertySlot const&amp;, JSC::StructureStubInfo&amp;, JSC::PutKind)
4   0x104f7dfa2 operationPutByIdStrictBuildListWithReturnAddress
5   0x10c30c14d
6   0x1050284c4 JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*)
7   0x10502522f JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687296</commentid>
    <comment_count>17</comment_count>
      <attachid>156489</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-03 17:41:29 -0700</bug_when>
    <thetext>Created attachment 156489
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687298</commentid>
    <comment_count>18</comment_count>
      <attachid>156489</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-08-03 17:47:22 -0700</bug_when>
    <thetext>Comment on attachment 156489
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687305</commentid>
    <comment_count>19</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-03 18:05:37 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/124678.

I&apos;m closing this bug, but I&apos;m relying on you guys to repro since I could never repro on my machine.  Please reopen if I failed to fix it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>155395</attachid>
            <date>2012-07-30 16:38:23 -0700</date>
            <delta_ts>2012-07-30 16:38:23 -0700</delta_ts>
            <desc>dump of crash log</desc>
            <filename>dump.txt.zip</filename>
            <type>application/zip</type>
            <size>16210</size>
            <attacher name="Wade">skepticus</attacher>
            
              <data encoding="base64">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
UEsFBgAAAAADAAMA0gAAAGo+AAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>156180</attachid>
            <date>2012-08-02 15:22:03 -0700</date>
            <delta_ts>2012-08-02 15:22:03 -0700</delta_ts>
            <desc>latest crash log</desc>
            <filename>dump3.txt.zip</filename>
            <type>application/zip</type>
            <size>15793</size>
            <attacher name="Wade">skepticus</attacher>
            
              <data encoding="base64">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
JDAkxYdyFT1H8Hz9db0pb28+gTwv52eTr/Cob1kY5kam1MNP5XZZMxrdNLWWm1/utDAWVhpbDG92
9W9uP6xuZovPy09lRKwiumKe1KAQrN1g5RfDwZH7weEwOE2sdH4e5UC+KsunD0QxGkOvN3frrwvo
dPz5t2LWHJFtU+PTDDiwQsbcgHK6q4i+gUU6udm2ZiWN4/EEtFeOLIeN9Ou7fKe/Ad1MZhUQQe06
+RXafhbLLwGUfAEwN1nej+ZlVOPMPtWFVVpGraqQVhxPP4d/i80S0MhoN74gpypi4t6MPVH2VC9U
OTJjPkXAIID8V8z9tplWrWaLzerr1XIGiidCBKaiJ+pJs2DtaHqYhd3uEiA79VObAsmthq2GmNiv
RNGzEi+L1ScYpP9/1uFkpEYF27oi58vNL7P1LK6JyQqWQL5a3l5HPPmsW6MqSLEe6rJouomnu1ZH
yumt6YajC8bO+FM1A9sOwJ45P7+tBr62OtsE/UuFpr/X1SrP60rk9fX7t69Aoiyq445Xy2Lye9SI
06YAFYjiev3hZrMq7vrW7CMashOAKbuGoA0jWgv1EWBYKDquA+vrcvV5Ni4vodWrZTUcti0WH4Ox
x0b24HVO20vpG+D1pt+93Vi7wTE1Zjoxwx//0prOZ62/35Zg93/dGXo/DG9W5Xp5vxqXOO8Rv/21
tuqeQoAeG15EfLldZoiHsDFtW+76x7SlCw4jvWvr5gYbi2YbU0ZF3/k32lzuG28u1dhcIb8GfVlu
zu5Ws88A5n+HNphMcSTWJR5HHrbUE9aaZnJsR3HdVsRcVlCxsiPUDp59i8EU33gw9fnvwLPM4YDh
MfHfYv1VPB38nRq0UK6mQX/72x6HGmWfPnJghKkK5tebqjFsvjeG7ffGsPveGGb0u+OYfXcc8++O
Y/HdcSy/O47Vd8fxdwe42HeHuNh3B7nYd4e5+HeHufh3h7n4d4e5+HeHufh3h7n4d4e5+HeHubg5
P9/HDQxfLcfF/HqzXBUf/v86tGXTye89tNWsdTjxcOiVplayqr+rYr1+89viarP610MEWzXA74r1
p3+ral2W6zU8+RMGFfTXOz9H/vPlals1n8035Qoon20+YtzT8n7zr6Plcj589sOzvgb+5Yd/e9bp
Ctl+W67v5xhzWH37fx77en1IbPtw+TFDIstaSN2u6eoi1vmmdXJXnWEr+dQbD086FXzyUd5xX7t5
+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
AAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156489</attachid>
            <date>2012-08-03 17:41:29 -0700</date>
            <delta_ts>2012-08-03 17:47:22 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixstubs_patch_1.diff</filename>
            <type>text/plain</type>
            <size>19120</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI0Njc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTA4LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q3Jhc2hlcyBpbiBkZmdCdWlsZFB1dEJ5SWRMaXN0IHdoZW4gY2xpY2tpbmcgb24ganVzdCBhYm91
dCBhbnl0aGluZyBvbiBHb29nbGUgTWFwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTI2OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgc3RhdGUgb2YgdGhlIHN0dWJzIHdhcyBjaGFuZ2luZyBhZnRl
ciB3ZSBkZXRlcm1pbmVkIHRoZSB0eXBlIChieSB2aXJ0dWUgb2YgdGhlIHNsb3cgcGF0aAorICAg
ICAgICBmdW5jdGlvbiB0aGF0IHdhcyBjYWxsZWQpLCBzaW5jZSB0aGUgZ2V0IG9yIHB1dCAoaW4g
dGhpcyBjYXNlIHB1dCkgY291bGQgY2F1c2UgYXJiaXRyYXJ5CisgICAgICAgIHNpZGUgZWZmZWN0
cy4gUGVyaGFwcyBhIGZ1bGwtYmxvd24gZml4IHdvdWxkIGJlIHRvIGVsaW1pbmF0ZSBvdXIgcmVs
aWFuY2Ugb2YgdGhlIHNsb3cgcGF0aAorICAgICAgICBmdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hh
dCB0byBkbywgYnV0IGFuIGVhc2llciBmaXggZm9yIG5vdyBpcyB0byBoYXZlIHRoZSBzbG93IHBh
dGggZ2l2ZSB1cAorICAgICAgICBpZiBpdHMgYXNzdW1wdGlvbnMgd2VyZSBpbnZhbGlkYXRlZCBi
eSBhIHNpZGUgZWZmZWN0LgorCisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKwogMjAxMi0wOC0wMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIERGRyBoYW5kbGluZyBvZiBnZXRfYnlfaWQgc2hvdWxkIGFsd2F5cyBpbmplY3QgYSBG
b3JjZU9TUkV4aXQgbm9kZSBpZiB0aGVyZSBpcyBubyBwcmVkaWN0aW9uCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDEyNDY1NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyMywxMiArNDIzLDE1IEBAIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04g
b3BlcmF0aW9uR2UKICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSAmZXhlYy0+Z2xvYmFs
RGF0YSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoZ2xvYmFsRGF0YSwgZXhl
Yyk7CiAgICAgCisgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29kZUJs
b2NrKCktPmdldFN0dWJJbmZvKHJldHVybkFkZHJlc3MpOworICAgIEFjY2Vzc1R5cGUgYWNjZXNz
VHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpOworCiAg
ICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoYmFzZSk7CiAgICAgUHJvcGVy
dHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5n
ZXQoZXhlYywgKnByb3BlcnR5TmFtZSwgc2xvdCk7CiAKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyYg
c3R1YkluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0U3R1YkluZm8ocmV0dXJuQWRkcmVzcyk7
Ci0gICAgZGZnQnVpbGRHZXRCeUlETGlzdChleGVjLCBiYXNlVmFsdWUsICpwcm9wZXJ0eU5hbWUs
IHNsb3QsIHN0dWJJbmZvKTsKKyAgICBpZiAoYWNjZXNzVHlwZSA9PSBzdGF0aWNfY2FzdDxBY2Nl
c3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKSkKKyAgICAgICAgZGZnQnVpbGRHZXRCeUlETGlz
dChleGVjLCBiYXNlVmFsdWUsICpwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvKTsKIAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KQEAgLTQzOSwxMiArNDQyLDE1IEBA
IEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2UKICAgICBKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGEgPSAmZXhlYy0+Z2xvYmFsRGF0YSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIoZ2xvYmFsRGF0YSwgZXhlYyk7CiAgICAgCisgICAgU3RydWN0dXJlU3R1
YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldFN0dWJJbmZvKHJldHVybkFk
ZHJlc3MpOworICAgIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5
cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpOworCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoYmFzZSk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoZXhlYywgKnByb3BlcnR5TmFtZSwgc2xv
dCk7Ci0KLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSBleGVjLT5jb2RlQmxvY2so
KS0+Z2V0U3R1YkluZm8ocmV0dXJuQWRkcmVzcyk7Ci0gICAgZGZnQnVpbGRHZXRCeUlEUHJvdG9M
aXN0KGV4ZWMsIGJhc2VWYWx1ZSwgKnByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8pOworICAg
IAorICAgIGlmIChhY2Nlc3NUeXBlID09IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZv
LmFjY2Vzc1R5cGUpKQorICAgICAgICBkZmdCdWlsZEdldEJ5SURQcm90b0xpc3QoZXhlYywgYmFz
ZVZhbHVlLCAqcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbyk7CiAKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CkBAIC00NTUsMTUgKzQ2MSwxOSBAQCBFbmNvZGVkSlNW
YWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdlCiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAgIAorICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHVi
SW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRTdHViSW5mbyhyZXR1cm5BZGRyZXNzKTsKKyAg
ICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5m
by5hY2Nlc3NUeXBlKTsKKwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGJhc2UpOwogICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGV4ZWMsICpwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIAot
ICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRT
dHViSW5mbyhyZXR1cm5BZGRyZXNzKTsKLSAgICBpZiAoc3R1YkluZm8uc2VlbikKLSAgICAgICAg
ZGZnUmVwYXRjaEdldEJ5SUQoZXhlYywgYmFzZVZhbHVlLCAqcHJvcGVydHlOYW1lLCBzbG90LCBz
dHViSW5mbyk7Ci0gICAgZWxzZQotICAgICAgICBzdHViSW5mby5zZWVuID0gdHJ1ZTsKKyAgICBp
ZiAoYWNjZXNzVHlwZSA9PSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NU
eXBlKSkgeworICAgICAgICBpZiAoc3R1YkluZm8uc2VlbikKKyAgICAgICAgICAgIGRmZ1JlcGF0
Y2hHZXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgKnByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8p
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdHViSW5mby5zZWVuID0gdHJ1ZTsKKyAgICB9
CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CkBAIC02NDUsMTMgKzY1
NSwxOCBAQCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljCiAgICAgSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAgIAorICAgIFN0cnVj
dHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRTdHViSW5mbyhy
ZXR1cm5BZGRyZXNzKTsKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBzdGF0aWNfY2FzdDxB
Y2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKKwogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZShiYXNl
KTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0cnVlKTsKICAgICAKICAgICBiYXNlVmFsdWUu
cHV0KGV4ZWMsICpwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAKLSAgICBTdHJ1Y3R1
cmVTdHViSW5mbyYgc3R1YkluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0U3R1YkluZm8ocmV0
dXJuQWRkcmVzcyk7CisgICAgaWYgKGFjY2Vzc1R5cGUgIT0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlw
ZT4oc3R1YkluZm8uYWNjZXNzVHlwZSkpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBpZiAo
c3R1YkluZm8uc2VlbikKICAgICAgICAgZGZnUmVwYXRjaFB1dEJ5SUQoZXhlYywgYmFzZVZhbHVl
LCAqcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywgTm90RGlyZWN0KTsKICAgICBlbHNlCkBA
IC02NjQsMTMgKzY3OSwxOCBAQCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5v
blN0CiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAg
IAorICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5n
ZXRTdHViSW5mbyhyZXR1cm5BZGRyZXNzKTsKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBz
dGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKKwogICAgIEpTVmFs
dWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBKU1ZhbHVlIGJh
c2VWYWx1ZShiYXNlKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSk7CiAgICAgCiAg
ICAgYmFzZVZhbHVlLnB1dChleGVjLCAqcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAg
Ci0gICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdl
dFN0dWJJbmZvKHJldHVybkFkZHJlc3MpOworICAgIGlmIChhY2Nlc3NUeXBlICE9IHN0YXRpY19j
YXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpKQorICAgICAgICByZXR1cm47Cisg
ICAgCiAgICAgaWYgKHN0dWJJbmZvLnNlZW4pCiAgICAgICAgIGRmZ1JlcGF0Y2hQdXRCeUlEKGV4
ZWMsIGJhc2VWYWx1ZSwgKnByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIE5vdERpcmVjdCk7
CiAgICAgZWxzZQpAQCAtNjgzLDEzICs3MDMsMTggQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5SWREaXJlYwogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZleGVjLT5n
bG9iYWxEYXRhKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcihnbG9iYWxEYXRh
LCBleGVjKTsKICAgICAKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSBleGVjLT5j
b2RlQmxvY2soKS0+Z2V0U3R1YkluZm8ocmV0dXJuQWRkcmVzcyk7CisgICAgQWNjZXNzVHlwZSBh
Y2Nlc3NUeXBlID0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8uYWNjZXNzVHlwZSk7
CisKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAg
ICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSk7CiAgICAgCiAgICAgQVNTRVJUKGJhc2UtPmlz
T2JqZWN0KCkpOwogICAgIGFzT2JqZWN0KGJhc2UpLT5wdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCAqcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgCi0gICAgU3RydWN0dXJlU3R1
YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldFN0dWJJbmZvKHJldHVybkFk
ZHJlc3MpOworICAgIGlmIChhY2Nlc3NUeXBlICE9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0
dWJJbmZvLmFjY2Vzc1R5cGUpKQorICAgICAgICByZXR1cm47CisgICAgCiAgICAgaWYgKHN0dWJJ
bmZvLnNlZW4pCiAgICAgICAgIGRmZ1JlcGF0Y2hQdXRCeUlEKGV4ZWMsIGJhc2UsICpwcm9wZXJ0
eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBEaXJlY3QpOwogICAgIGVsc2UKQEAgLTcwMiwxMyArNzI3
LDE4IEBAIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWMKICAgICBKU0ds
b2JhbERhdGEqIGdsb2JhbERhdGEgPSAmZXhlYy0+Z2xvYmFsRGF0YSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoZ2xvYmFsRGF0YSwgZXhlYyk7CiAgICAgCisgICAgU3RydWN0
dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldFN0dWJJbmZvKHJl
dHVybkFkZHJlc3MpOworICAgIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFj
Y2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpOworCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGZh
bHNlKTsKICAgICAKICAgICBBU1NFUlQoYmFzZS0+aXNPYmplY3QoKSk7CiAgICAgYXNPYmplY3Qo
YmFzZSktPnB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksICpwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKICAgICAKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSBleGVjLT5j
b2RlQmxvY2soKS0+Z2V0U3R1YkluZm8ocmV0dXJuQWRkcmVzcyk7CisgICAgaWYgKGFjY2Vzc1R5
cGUgIT0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8uYWNjZXNzVHlwZSkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKICAgICBpZiAoc3R1YkluZm8uc2VlbikKICAgICAgICAgZGZnUmVw
YXRjaFB1dEJ5SUQoZXhlYywgYmFzZSwgKnByb3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIERp
cmVjdCk7CiAgICAgZWxzZQpAQCAtNzIxLDEzICs3NTEsMTggQEAgdm9pZCBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5SWRTdHJpYwogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZl
eGVjLT5nbG9iYWxEYXRhKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcihnbG9i
YWxEYXRhLCBleGVjKTsKICAgICAKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSBl
eGVjLT5jb2RlQmxvY2soKS0+Z2V0U3R1YkluZm8ocmV0dXJuQWRkcmVzcyk7CisgICAgQWNjZXNz
VHlwZSBhY2Nlc3NUeXBlID0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8uYWNjZXNz
VHlwZSk7CisKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUoYmFzZSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNs
b3QodHJ1ZSk7CiAgICAgCiAgICAgYmFzZVZhbHVlLnB1dChleGVjLCAqcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CiAgICAgCi0gICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZXhl
Yy0+Y29kZUJsb2NrKCktPmdldFN0dWJJbmZvKHJldHVybkFkZHJlc3MpOworICAgIGlmIChhY2Nl
c3NUeXBlICE9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpKQor
ICAgICAgICByZXR1cm47CisgICAgCiAgICAgZGZnQnVpbGRQdXRCeUlkTGlzdChleGVjLCBiYXNl
VmFsdWUsICpwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBOb3REaXJlY3QpOwogfQogCkBA
IC03MzcsMTMgKzc3MiwxOCBAQCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5v
blN0CiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAg
IAorICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5n
ZXRTdHViSW5mbyhyZXR1cm5BZGRyZXNzKTsKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBz
dGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKKwogICAgIEpTVmFs
dWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBKU1ZhbHVlIGJh
c2VWYWx1ZShiYXNlKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSk7CiAgICAgCiAg
ICAgYmFzZVZhbHVlLnB1dChleGVjLCAqcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAg
Ci0gICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdl
dFN0dWJJbmZvKHJldHVybkFkZHJlc3MpOworICAgIGlmIChhY2Nlc3NUeXBlICE9IHN0YXRpY19j
YXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpKQorICAgICAgICByZXR1cm47Cisg
ICAgCiAgICAgZGZnQnVpbGRQdXRCeUlkTGlzdChleGVjLCBiYXNlVmFsdWUsICpwcm9wZXJ0eU5h
bWUsIHNsb3QsIHN0dWJJbmZvLCBOb3REaXJlY3QpOwogfQogCkBAIC03NTMsMTMgKzc5MywxOCBA
QCB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjCiAgICAgSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKGdsb2JhbERhdGEsIGV4ZWMpOwogICAgIAorICAgIFN0cnVjdHVyZVN0
dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRTdHViSW5mbyhyZXR1cm5B
ZGRyZXNzKTsKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBzdGF0aWNfY2FzdDxBY2Nlc3NU
eXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKKyAgICAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1
ZSk7CiAgICAgCiAgICAgQVNTRVJUKGJhc2UtPmlzT2JqZWN0KCkpOwogICAgIGFzT2JqZWN0KGJh
c2UpLT5wdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCAqcHJvcGVydHlOYW1lLCB2YWx1ZSwg
c2xvdCk7CiAgICAgCi0gICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZXhlYy0+Y29k
ZUJsb2NrKCktPmdldFN0dWJJbmZvKHJldHVybkFkZHJlc3MpOworICAgIGlmIChhY2Nlc3NUeXBl
ICE9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpKQorICAgICAg
ICByZXR1cm47CisgICAgCiAgICAgZGZnQnVpbGRQdXRCeUlkTGlzdChleGVjLCBiYXNlLCAqcHJv
cGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywgRGlyZWN0KTsKIH0KIApAQCAtNzY5LDEzICs4MTQs
MTggQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlYwogICAgIEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZleGVjLT5nbG9iYWxEYXRhKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcihnbG9iYWxEYXRhLCBleGVjKTsKICAgICAKKyAgICBTdHJ1Y3R1
cmVTdHViSW5mbyYgc3R1YkluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0U3R1YkluZm8ocmV0
dXJuQWRkcmVzcyk7CisgICAgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlID0gc3RhdGljX2Nhc3Q8QWNj
ZXNzVHlwZT4oc3R1YkluZm8uYWNjZXNzVHlwZSk7CisKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZmFs
c2UpOwogICAgIAogICAgIEFTU0VSVChiYXNlLT5pc09iamVjdCgpKTsKICAgICBhc09iamVjdChi
YXNlKS0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgKnByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogICAgIAotICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNv
ZGVCbG9jaygpLT5nZXRTdHViSW5mbyhyZXR1cm5BZGRyZXNzKTsKKyAgICBpZiAoYWNjZXNzVHlw
ZSAhPSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIAogICAgIGRmZ0J1aWxkUHV0QnlJZExpc3QoZXhlYywgYmFzZSwgKnBy
b3BlcnR5TmFtZSwgc2xvdCwgc3R1YkluZm8sIERpcmVjdCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxMjQ2NTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzMCwx
NSArMTQzMCwxOSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlfaWQpCiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZTsKICAgICBJZGVu
dGlmaWVyJiBpZGVudCA9IHN0YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCk7CiAgICAgCisg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCk7CisgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gJmNvZGVCbG9jay0+Z2V0U3R1
YkluZm8oU1RVQl9SRVRVUk5fQUREUkVTUyk7CisgICAgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlID0g
c3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5cGUpOworCiAgICAgUHV0
UHJvcGVydHlTbG90IHNsb3QoY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkp
OwogICAgIHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkucHV0KGNhbGxGcmFtZSwgaWRlbnQs
IHN0YWNrRnJhbWUuYXJnc1syXS5qc1ZhbHVlKCksIHNsb3QpOwogICAgIAotICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9ICZjb2RlQmxvY2stPmdldFN0dWJJbmZvKFNUVUJf
UkVUVVJOX0FERFJFU1MpOwotICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCi0gICAgICAg
IHN0dWJJbmZvLT5zZXRTZWVuKCk7Ci0gICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNh
Y2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3Rh
Y2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIGZhbHNlKTsKKyAgICBp
ZiAoYWNjZXNzVHlwZSA9PSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby0+YWNjZXNz
VHlwZSkpIHsKKyAgICAgICAgaWYgKCFzdHViSW5mby0+c2Vlbk9uY2UoKSkKKyAgICAgICAgICAg
IHN0dWJJbmZvLT5zZXRTZWVuKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEpJVFRodW5r
czo6dHJ5Q2FjaGVQdXRCeUlEKGNhbGxGcmFtZSwgY29kZUJsb2NrLCBTVFVCX1JFVFVSTl9BRERS
RVNTLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpLCBzbG90LCBzdHViSW5mbywgZmFsc2Up
OworICAgIH0KICAgICAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwogfQpAQCAt
MTQ0OSwxOCArMTQ1MywyMiBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRfYnlf
aWRfCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZTsKICAg
ICBJZGVudGlmaWVyJiBpZGVudCA9IHN0YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCk7CiAg
ICAgCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZS0+Y29k
ZUJsb2NrKCk7CisgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gJmNvZGVCbG9jay0+
Z2V0U3R1YkluZm8oU1RVQl9SRVRVUk5fQUREUkVTUyk7CisgICAgQWNjZXNzVHlwZSBhY2Nlc3NU
eXBlID0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5cGUpOworCiAg
ICAgUHV0UHJvcGVydHlTbG90IHNsb3QoY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RN
b2RlKCkpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFs
dWUoKTsKICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwogICAgIAogICAgIGFzT2Jq
ZWN0KGJhc2VWYWx1ZSktPnB1dERpcmVjdChjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgaWRlbnQs
IHN0YWNrRnJhbWUuYXJnc1syXS5qc1ZhbHVlKCksIHNsb3QpOwogICAgIAotICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9ICZjb2RlQmxvY2stPmdldFN0dWJJbmZvKFNUVUJf
UkVUVVJOX0FERFJFU1MpOwotICAgIGlmICghc3R1YkluZm8tPnNlZW5PbmNlKCkpCi0gICAgICAg
IHN0dWJJbmZvLT5zZXRTZWVuKCk7Ci0gICAgZWxzZQotICAgICAgICBKSVRUaHVua3M6OnRyeUNh
Y2hlUHV0QnlJRChjYWxsRnJhbWUsIGNvZGVCbG9jaywgU1RVQl9SRVRVUk5fQUREUkVTUywgc3Rh
Y2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSwgc2xvdCwgc3R1YkluZm8sIHRydWUpOworICAgIGlm
IChhY2Nlc3NUeXBlID09IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NU
eXBlKSkgeworICAgICAgICBpZiAoIXN0dWJJbmZvLT5zZWVuT25jZSgpKQorICAgICAgICAgICAg
c3R1YkluZm8tPnNldFNlZW4oKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSklUVGh1bmtz
Ojp0cnlDYWNoZVB1dEJ5SUQoY2FsbEZyYW1lLCBjb2RlQmxvY2ssIFNUVUJfUkVUVVJOX0FERFJF
U1MsIHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCksIHNsb3QsIHN0dWJJbmZvLCB0cnVlKTsK
KyAgICB9CiAgICAgCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQoKTsKIH0KQEAgLTE1
MjEsMTQgKzE1MjksMTggQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9w
XwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAgICAg
SWRlbnRpZmllciYgaWRlbnQgPSBzdGFja0ZyYW1lLmFyZ3NbMV0uaWRlbnRpZmllcigpOwogCisg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCk7CisgICAgTWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RDYWxsTGlua0luZm8gPSBjb2RlQmxv
Y2stPmdldE1ldGhvZENhbGxMaW5rSW5mbyhTVFVCX1JFVFVSTl9BRERSRVNTKTsKKyAgICBTdHJ1
Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSBjb2RlQmxvY2stPmdldFN0dWJJbmZvKFNUVUJfUkVU
VVJOX0FERFJFU1MpOworICAgIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFj
Y2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUpOworCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUg
PSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90KGJh
c2VWYWx1ZSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGNhbGxGcmFtZSwg
aWRlbnQsIHNsb3QpOwogICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKLQotICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIE1l
dGhvZENhbGxMaW5rSW5mbyYgbWV0aG9kQ2FsbExpbmtJbmZvID0gY29kZUJsb2NrLT5nZXRNZXRo
b2RDYWxsTGlua0luZm8oU1RVQl9SRVRVUk5fQUREUkVTUyk7Ci0gICAgU3RydWN0dXJlU3R1Yklu
Zm8mIHN0dWJJbmZvID0gY29kZUJsb2NrLT5nZXRTdHViSW5mbyhTVFVCX1JFVFVSTl9BRERSRVNT
KTsKKyAgICAKKyAgICBpZiAoYWNjZXNzVHlwZSAhPSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihz
dHViSW5mby5hY2Nlc3NUeXBlKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogCiAgICAgaWYgKCFtZXRob2RDYWxsTGlua0luZm8uc2Vlbk9uY2UoKSkgewogICAgICAg
ICBtZXRob2RDYWxsTGlua0luZm8uc2V0U2VlbigpOwpAQCAtMTU5NSwxNCArMTYwNywxOCBAQCBE
RUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfCiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBzdGFja0ZyYW1lLmNhbGxGcmFtZTsKICAgICBJZGVudGlmaWVyJiBpZGVudCA9
IHN0YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCk7CiAKKyAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IHN0YWNrRnJhbWUuY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKKyAgICBNZXRob2RDYWxs
TGlua0luZm8mIG1ldGhvZENhbGxMaW5rSW5mbyA9IGNvZGVCbG9jay0+Z2V0TWV0aG9kQ2FsbExp
bmtJbmZvKFNUVUJfUkVUVVJOX0FERFJFU1MpOworICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHVi
SW5mbyA9IGNvZGVCbG9jay0+Z2V0U3R1YkluZm8oU1RVQl9SRVRVUk5fQUREUkVTUyk7CisgICAg
QWNjZXNzVHlwZSBhY2Nlc3NUeXBlID0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8u
YWNjZXNzVHlwZSk7CisKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IHN0YWNrRnJhbWUuYXJnc1sw
XS5qc1ZhbHVlKCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKICAgICBKU1Zh
bHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoY2FsbEZyYW1lLCBpZGVudCwgc2xvdCk7CiAgICAg
Q0hFQ0tfRk9SX0VYQ0VQVElPTigpOwotCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGFj
a0ZyYW1lLmNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgTWV0aG9kQ2FsbExpbmtJbmZvJiBt
ZXRob2RDYWxsTGlua0luZm8gPSBjb2RlQmxvY2stPmdldE1ldGhvZENhbGxMaW5rSW5mbyhTVFVC
X1JFVFVSTl9BRERSRVNTKTsKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSBjb2Rl
QmxvY2stPmdldFN0dWJJbmZvKFNUVUJfUkVUVVJOX0FERFJFU1MpOworICAgIAorICAgIGlmIChh
Y2Nlc3NUeXBlICE9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUp
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAKICAgICBBU1NFUlQo
bWV0aG9kQ2FsbExpbmtJbmZvLnNlZW5PbmNlKCkpOwogCkBAIC0xNjg0LDEyICsxNzAwLDE3IEBA
IERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF8KICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZyYW1lOwogICAgIElkZW50aWZpZXImIGlkZW50
ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmlkZW50aWZpZXIoKTsKIAorICAgIENvZGVCbG9jayogY29k
ZUJsb2NrID0gc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpOworICAgIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbyA9ICZjb2RlQmxvY2stPmdldFN0dWJJbmZvKFNUVUJfUkVUVVJO
X0FERFJFU1MpOworICAgIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vz
c1R5cGU+KHN0dWJJbmZvLT5hY2Nlc3NUeXBlKTsKKwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0g
c3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNl
VmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVlLmdldChjYWxsRnJhbWUsIGlk
ZW50LCBzbG90KTsKKyAgICAKKyAgICBpZiAoYWNjZXNzVHlwZSAhPSBzdGF0aWNfY2FzdDxBY2Nl
c3NUeXBlPihzdHViSW5mby0+YWNjZXNzVHlwZSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIAotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gc3RhY2tGcmFtZS5j
YWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9
ICZjb2RlQmxvY2stPmdldFN0dWJJbmZvKFNUVUJfUkVUVVJOX0FERFJFU1MpOwogICAgIGlmICgh
c3R1YkluZm8tPnNlZW5PbmNlKCkpCiAgICAgICAgIHN0dWJJbmZvLT5zZXRTZWVuKCk7CiAgICAg
ZWxzZQpAQCAtMTcwNiw5ICsxNzI3LDE2IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRK
U1ZhbHVlLCBvcF8KICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHN0YWNrRnJhbWUuY2FsbEZy
YW1lOwogICAgIElkZW50aWZpZXImIGlkZW50ID0gc3RhY2tGcmFtZS5hcmdzWzFdLmlkZW50aWZp
ZXIoKTsKIAorICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2so
KTsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSAmY29kZUJsb2NrLT5nZXRTdHVi
SW5mbyhTVFVCX1JFVFVSTl9BRERSRVNTKTsKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBz
dGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby0+YWNjZXNzVHlwZSk7CisKICAgICBKU1Zh
bHVlIGJhc2VWYWx1ZSA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7CiAgICAgUHJvcGVy
dHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5n
ZXQoY2FsbEZyYW1lLCBpZGVudCwgc2xvdCk7CisgICAgCisgICAgaWYgKGFjY2Vzc1R5cGUgIT0g
c3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5cGUpKQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAKICAgICBDSEVDS19GT1JfRVhDRVBUSU9O
KCk7CiAKQEAgLTE3MTcsOSArMTc0NSw2IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRK
U1ZhbHVlLCBvcF8KICAgICAgICAgJiYgIWJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCkt
PmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkKICAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09
IGJhc2VWYWx1ZSkgewogCi0gICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1l
LT5jb2RlQmxvY2soKTsKLSAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gJmNv
ZGVCbG9jay0+Z2V0U3R1YkluZm8oU1RVQl9SRVRVUk5fQUREUkVTUyk7Ci0KICAgICAgICAgQVNT
RVJUKHNsb3Quc2xvdEJhc2UoKS5pc09iamVjdCgpKTsKIAogICAgICAgICBQb2x5bW9ycGhpY0Fj
Y2Vzc1N0cnVjdHVyZUxpc3QqIHBvbHltb3JwaGljU3RydWN0dXJlTGlzdDsKQEAgLTE4MTMsMjAg
KzE4MzgsMjYgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAgICAgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lID0gc3RhY2tGcmFtZS5hcmdzWzFdLmlkZW50aWZpZXIo
KTsKIAorICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsK
KyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSAmY29kZUJsb2NrLT5nZXRTdHViSW5m
byhTVFVCX1JFVFVSTl9BRERSRVNTKTsKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBzdGF0
aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby0+YWNjZXNzVHlwZSk7CisKICAgICBKU1ZhbHVl
IGJhc2VWYWx1ZSA9IHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCk7CiAgICAgUHJvcGVydHlT
bG90IHNsb3QoYmFzZVZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQo
Y2FsbEZyYW1lLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElP
TigpOwogCi0gICAgaWYgKCFiYXNlVmFsdWUuaXNDZWxsKCkgfHwgIXNsb3QuaXNDYWNoZWFibGUo
KSB8fCBiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSB8fCBi
YXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3Bl
cnR5Q2FjaGluZygpKSB7CisgICAgaWYgKGFjY2Vzc1R5cGUgIT0gc3RhdGljX2Nhc3Q8QWNjZXNz
VHlwZT4oc3R1YkluZm8tPmFjY2Vzc1R5cGUpCisgICAgICAgIHx8ICFiYXNlVmFsdWUuaXNDZWxs
KCkKKyAgICAgICAgfHwgIXNsb3QuaXNDYWNoZWFibGUoKQorICAgICAgICB8fCBiYXNlVmFsdWUu
YXNDZWxsKCktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKQorICAgICAgICB8fCBiYXNlVmFs
dWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2Fj
aGluZygpKSB7CiAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjYWxsRnJhbWUt
PmNvZGVCbG9jaygpLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3BfZ2V0
X2J5X2lkX3Byb3RvX2ZhaWwpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogICAgIH0KIAogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZVZhbHVlLmFzQ2Vs
bCgpLT5zdHJ1Y3R1cmUoKTsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCk7Ci0gICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gJmNvZGVCbG9j
ay0+Z2V0U3R1YkluZm8oU1RVQl9SRVRVUk5fQUREUkVTUyk7CiAKICAgICBBU1NFUlQoc2xvdC5z
bG90QmFzZSgpLmlzT2JqZWN0KCkpOwogICAgIEpTT2JqZWN0KiBzbG90QmFzZU9iamVjdCA9IGFz
T2JqZWN0KHNsb3Quc2xvdEJhc2UoKSk7Cg==
</data>
<flag name="review"
          id="166195"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>