tag:blogger.com,1999:blog-88833578860797219262024-03-11T15:41:27.416+05:30Snapshots of my experiments...Fail more, experiment more, plan less :-) Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.comBlogger49125tag:blogger.com,1999:blog-8883357886079721926.post-14630808495367440992016-06-18T10:50:00.001+05:302016-06-19T14:55:58.049+05:30Unit Testing and Code Coverage in PythonUnit Test is one of the most important part of development artifacts, which helps to automatically test whatever code we write. Coverage report measures quality of Unit Tests and points out unused/untested code. This tutorial will help to get started with Unit Testing and Coverage report in Python. <br />
For this tutorial we will use Eclipse PyDEV as Python IDE and its integrated Coverage plugin to generate Code Coverage report.<br />
<br />
<span style="font-size: large;"><b>Environment Setup:</b></span><br />
<ol>
<li>Install <a href="http://www.pydev.org/manual_101_install.html" target="_blank">PyDEV</a> Eclipse Plug-in. PyDEV comes with Code Coverage feature (<i>Show View - Code Coverage</i>) which integrates with python module "<i>coverage</i>"</li>
<li>Install Coverage module: </li>
</ol>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;"># python -m pip install "coverage < 4.0.0"</span></blockquote>
Coverage module <a href="http://stackoverflow.com/questions/30074927/pydev-codecoverage-results-dont-appear" target="_blank">higher than version 3.x doesn't work</a> with PyDEV. Coverage report gets generated as binary file under-<br />
<blockquote class="tr_bq">
<span style="color: blue;"><span style="font-family: inherit;">Workspace\.metadata\.plugins\org.python.pydev.debug\coverage\.coverage</span></span></blockquote>
<span style="font-size: large;"><b>Sample Code: </b></span> <br />
Download sample code from <a href="https://github.com/paul-prasanta/fiddle/blob/master/UnitTests.zip" target="_blank">GitHub</a>. This includes a function (under <i>/src</i>) to get ODD and EVEN numbers for a supplied Count. If supplied count is ODD, it returns all ODD numbers and vice versa. For this implementation, we have written Tests (under<i> /test</i>) which validates count of numbers returned. Count of numbers returned will be half of Supplied Count e.g. Supplied Count 100, it'll return 50 EVEN numbers.<br />
<br />
<span style="font-size: large;"><b>Project Structure: </b></span><br />
<div style="text-align: left;">
<img alt="" src="data:image/png;base64,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" /> </div>
<div style="text-align: left;">
Create Python Project ("UnitTest") and then create 2 Source Folders under this Project- "<i>src</i>" and "<i>test</i>". Source codes are kept under "src" and respective Unit Test scripts under "tests" Folder. Unit Test scripts are created using same Package structure as of the actual script but Module name prefixed with "test_".</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<br />
<span style="font-size: large;"><b>Unit Tests:</b></span></div>
<div style="text-align: left;">
Python (since 2.1) includes Unit Test package (<a href="https://docs.python.org/2.7/library/unittest.html#basic-example" target="_blank"><i>unittest</i></a>). It helps to test scenarios of functions/classes and assert conditions. We'll cover more about unittest functionality in upcoming tutorials. In this session, I'll cover very simple assertion (<i>assertEqual</i>), which validates equality.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></div>
<div style="text-align: left;">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 10.0pt;">import</span><span style="color: black; font-family: "consolas"; font-size: 10.0pt;"> unittest</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 10.0pt;">import</span><span style="color: black; font-family: "consolas"; font-size: 10.0pt;"> me.pras.data </span><span style="color: blue; font-family: "consolas"; font-size: 10.0pt;">as</span><span style="color: black; font-family: "consolas"; font-size: 10.0pt;"> data</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 10.0pt;">class</span><span style="color: black; font-family: "consolas"; font-size: 10.0pt;"> <b>Test</b>(unittest.TestCase):</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "consolas"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span></span><span style="color: blue; font-family: "consolas"; font-size: 10.0pt;">def</span><span style="color: black; font-family: "consolas"; font-size: 10.0pt;"> <b>testData</b>(<i>self</i>):</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "consolas"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>count = </span><span style="color: maroon; font-family: "consolas"; font-size: 10.0pt;">9</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "consolas"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>expectedCount = count/</span><span style="color: maroon; font-family: "consolas"; font-size: 10.0pt;">2</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "consolas"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>nums = data.getNumbers( count )</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "consolas"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span><i>self</i>.assertEqual( len( nums ),
expectedCount, </span><i><span style="color: #c9802b; font-family: "consolas"; font-size: 10.0pt;">'Count mismatch...'</span></i><span style="color: black; font-family: "consolas"; font-size: 10.0pt;">)</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: blue; font-family: "consolas"; font-size: 10.0pt;">if</span><span style="color: black; font-family: "consolas"; font-size: 10.0pt;"> __name__ == </span><i><span style="color: #c9802b; font-family: "consolas"; font-size: 10.0pt;">"__main__"</span></i><span style="color: black; font-family: "consolas"; font-size: 10.0pt;">:</span><span style="font-family: "consolas"; font-size: 10.0pt;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: "consolas"; font-size: 10.0pt; line-height: 115%;"><span style="mso-spacerun: yes;"> </span>unittest.main()</span></div>
<br />
<br />
<div style="text-align: left;">
Above code validates functionality of <span style="font-family: "courier new" , "courier" , monospace;">me.pras.data.getNumbers()</span> function. If we run this Test (<i>Right click on test_data.py - Run As - Python unit-test</i>)</div>
<div style="text-align: left;">
<img alt="" src="data:image/png;base64,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" /></div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
<br />
<span style="font-size: large;"><b>Coverage Report:</b></span></div>
<div style="text-align: left;">
Once we execute above unit test, internally it generates Coverage Report (.coverage File). Now lets open "Code Coverage"view (<i>Window - Show View - Code Coverage</i>).</div>
<div style="text-align: left;">
Drag and Drop our Project "UnitTest" at the bottom area of "Code Coverage" view. </div>
<div style="text-align: left;">
<b><img alt="" src="data:image/png;base64,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" /> </b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
If you have already run the Unit Tests, it'll show report on right-hand side of "<i>Code Coverage</i>" view. As you can see, we are passing only EVEN count as a part of Unit Test, so it has marked <span style="color: red;"><i>else </i></span>section<i> </i>and<i> <span style="color: red;">_odd()</span></i> functions as untested.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Isn't it Cool ? It points out any untested code and measures accuracy of your Unit Tests.</div>
<div style="text-align: left;">
<a href="https://www.blogger.com/blogger.g?blogID=8883357886079721926" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" border="0" src="data:image/png;base64,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" style="cursor: move;" /></a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0tag:blogger.com,1999:blog-8883357886079721926.post-50128818200563639352013-09-18T08:25:00.003+05:302016-01-15T09:00:30.889+05:30Android Looper and Toast from WorkerThread<blockquote class="tr_bq">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Have you ever tried to launch Android <a href="http://developer.android.com/reference/android/widget/Toast.html">Toast</a> message from worker thread ? Probably you are wondering why the heck it is giving this error-</span></span><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><br />
<div class="MsoNormal">
<span style="color: red;"><span style="background: none repeat scroll 0% 0% white; font-family: "Courier New"; font-size: 10pt;">java.lang.RuntimeException:
<u>Can't create handler inside thread that has not called Looper.prepare()</u></span></span></div>
</blockquote>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">In this article we are going to explore reason behind the above exception and try to understand how <a href="http://developer.android.com/reference/android/os/Looper.html">Looper</a> works in Android. At the end, I am going to explain one approach to run Toast from a worker thread, but before that we need to understand how Looper works. If you already know in/out of Looper, you can skip below section and directly move to the solution part.</span></span></span></div>
<div class="MsoNormal">
<span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></span></div>
<div class="MsoNormal">
<span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://developer.android.com/reference/android/os/Looper.html">Looper</a> is a very basic wrapper class which attach a <a href="http://developer.android.com/reference/android/os/MessageQueue.html">MessageQueue </a>to a Thread and manage this queue. <a href="http://developer.android.com/reference/android/os/MessageQueue.html">MessageQueue</a> is a structure to sequentialize simultaneous processing requests of a Thread. In Android, message/request processing classes like <a href="http://developer.android.com/reference/android/os/Handler.html">Handler</a> uses Looper to manage their respective <a href="http://developer.android.com/reference/android/os/MessageQueue.html">MessageQueue</a>.</span></span></span></div>
<div class="MsoNormal">
<span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b><span style="font-family: "Courier New",Courier,monospace;">Looper = Thread + MessageQueue</span></b></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: large;"><b><span style="background: none repeat scroll 0% 0% white; color: black; font-family: "Courier New";"><span style="font-family: Arial,Helvetica,sans-serif;">Android Looper Life Cycle:</span></span></b></span></div>
<div class="MsoNormal">
<span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--></span></span></span></div>
<div class="MsoNormal">
<img alt="" src="data:image/png;base64,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" style="cursor: move;" /> </div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">As you can see in the above figure, <a href="http://developer.android.com/reference/android/os/Looper.html">Looper</a> Life cycle starts when we call <span style="font-family: "Courier New",Courier,monospace;">prepare()</span>, this static method creates instance of Looper class and store this in a <a href="http://developer.android.com/reference/java/lang/ThreadLocal.html">ThreadLocal </a>variable. Below code snippet from <a href="https://github.com/android/platform_frameworks_base/blob/master/core/java/android/os/Looper.java">Looper.java</a></span></span></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
</div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">private</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">static</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">void</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> prepare(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">boolean</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> quitAllowed) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">if</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> (</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">sThreadLocal</span></i><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">.get() != </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">null</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">throw</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> RuntimeException(</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">"Only one Looper may
be created per thread"</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">sThreadLocal</span></i><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">.set(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> Looper(quitAllowed));</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;">
</span>}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>private</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> <span style="background: silver; mso-highlight: silver;">Looper</span>(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">boolean</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> quitAllowed) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mQueue</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> MessageQueue(quitAllowed);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mRun</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">true</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mThread</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = Thread.<i>currentThread</i>();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;">
</span>}</span></div>
<br />
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Once Looper instance is created we have to call <span style="font-family: "Courier New",Courier,monospace;">loop()</span> which starts an infinite Loop and process requests accumulated in the Message Queue. Below code from Looper.java</span></span></span><br />
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></span></span></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
</span></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">static</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">void</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> loop() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></span></div>
<span style="font-size: small;">
</span><br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Looper instance and Thread
verification</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></span></div>
<span style="font-size: small;">
</span>
<br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">final</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> <u>MessageQueue</u> queue = <u>me</u>.mQueue;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><br /></span></div>
<span style="font-size: small;">
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">for</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> (;;) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span><u>Message</u>
msg = queue.next(); </span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// might block</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">if</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> (msg == </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">null</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// No message indicates that the message queue is quitting.</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Process Messages</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;">
</span>}</span></div>
</span><br />
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-family: Arial,Helvetica,sans-serif;">Due to above Infinite Loop, <a href="http://developer.android.com/reference/android/os/Looper.html">Looper</a> blocks the current Thread execution until we call Quit. To get a hook to know when Looper is done with Message processing or when Message Queue is empty, we need to register <a href="http://developer.android.com/reference/android/os/MessageQueue.IdleHandler.html">MessageQueue.IdleHandler</a> listener to the MessageQueue associated to the respective <a href="http://developer.android.com/reference/android/os/Looper.html">Looper</a>. This can be achieved as- </span></span></span></div>
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Prepare looper</span><br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">Looper.<i>prepare</i>();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Register Queue listener hook</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">MessageQueue queue = <u>Looper.<i>myQueue</i>()</u>;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">queue.addIdleHandler(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> IdleHandler() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;">
<span style="color: #646464; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">@Override</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">boolean</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> queueIdle() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// </span><b><span style="color: #7f9fbf; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">TODO</span></b><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> Auto-generated method stub</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">false</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">});</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Start looping Message Queue</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">Looper.<i>loop</i>();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><b>Running Toast from Worker Thread </b></span></span></span></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;">Now, lets explain how we can run Toast in a thread other than UI or Main Thread. If we look inside of Toast.java, when we call <span style="font-family: "Courier New",Courier,monospace;">makeText()</span> internally it initialize Handler on the Calling thread. So, if the calling thread has not yet been attached to a <span style="font-family: "Courier New",Courier,monospace;">MessageQueue </span>Toast fails to create its instance. The only way to attach <span style="font-family: "Courier New",Courier,monospace;">MessageQueue </span>to a Thread is to use Looper, as a result <a href="https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/Toast.java">Toast.java</a> throws below exception-</span></span></span></div>
<div class="MsoNormal">
<span style="color: red;"><span style="font-family: Consolas; font-size: 10pt;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"> </span></span></span><span style="font-family: Consolas; font-size: 10pt;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: none repeat scroll 0% 0% white; font-family: "Courier New"; font-size: 10pt;">java.lang.RuntimeException:
Can't create handler inside thread that has not called Looper.prepare()</span></span></span></span></span></div>
<div class="MsoNormal">
<br /><b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;">Toast.java -> Toast.TN.java -> Handler.java</span></span></span></span></span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"></span></span></span></span><br />
<br /><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> Toast(<u>Context</u> context) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><u><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mContext</span></u><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = context;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mTN</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> TN();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mTN</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">.</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mY</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = context.getResources().getDimensionPixelSize(</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span><u>com.android</u>.internal.R.dimen.toast_y_offset);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> Handler() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>// ....... </span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mLooper</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = Looper.<i>myLooper</i>();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">if</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> (</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mLooper</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> == </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">null</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">throw</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> RuntimeException(</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">"Can't create handler inside thread that has not called
Looper.prepare()"</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mQueue</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mLooper</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">.</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mQueue</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mCallback</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">null</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">}</span></div>
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span></span></span></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></span></span></span></span></span><br />
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;">So, I hope we now understand the real meaning of this famous error message. Lets now try an alternate approach to execute Toast in a separate Thread.</span></span></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;">We need to initialize Looper and attach MessageQueue to our calling Thread prior to launch Toast. When we call <span style="font-family: "Courier New",Courier,monospace;">show() </span>method of Toast, it sends Handler message to process display logic of Toast, then it waits for defined time (LONG/SHORT) and then calls <span style="font-family: "Courier New",Courier,monospace;">hide()</span> which again sends Handler message to remove Toast View. Thus Looper associated to Toast is requesting for MessageQueue twice, so we'll keep a counter to track number of MessageQueue requests and when it is 2, we'll quit the Looper. <u>It is really important to quit the Looper, as if we don't do so, it will block all further operations</u>, since <span style="font-family: "Courier New",Courier,monospace;">Looper.loop()</span> is a blocking call.</span></span></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;">Here is the code snippet to run Toast in a separate Thread-</span></span></span></span></span><br />
<br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">void</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> aboutLooper() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>Thread th = </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> Thread() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">void</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> run() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>System.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">out</span></i><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">.println(</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">"Start Looper..."</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Prepare looper</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>Looper.<i>prepare</i>();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Register Queue listener hook</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>MessageQueue
queue = Looper.<i>myQueue</i>();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>queue.addIdleHandler(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> IdleHandler() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">int</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mReqCount</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> = 0;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span></span><span style="color: #646464; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">@Override</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">boolean</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> queueIdle() {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 6;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">if</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> (++</span><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">mReqCount</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> == 2) {</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 7;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Quit looper</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 7;"> </span>Looper.<i>myLooper</i>().quit();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 7;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">false</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 6;"> </span>} </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">else</span></b><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 7;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">true</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>});</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Show Toast- will be called when Looper.loop() starts</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>Toast.<i>makeText</i>(MainActivity.</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">this</span></b><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">, </span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">"Hey
there!!"</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">,</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 6;"> </span>Toast.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">LENGTH_LONG</span></i><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">).show();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">// Start looping Message Queue- Blocking call</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>Looper.<i>loop</i>();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>System.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">out</span></i><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">.println(</span><span style="color: #2a00ff; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">"It appears after Looper.myLooper().quit()"</span><span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;">);</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>}</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>};</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>th.start();</span><span style="font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span></div>
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]--></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></div>
<span style="color: black; font-family: Consolas; font-size: 10.0pt; mso-bidi-font-family: Consolas;"><span style="font-size: small;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="background: white; color: black; font-family: "Courier New"; font-size: 10.0pt; mso-highlight: white;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span></span></span> </span><br />
<div class="MsoNormal">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1155"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
<o:rules v:ext="edit">
<o:r id="V:Rule1" type="connector" idref="#_x0000_s1148">
<o:proxy start="" idref="#_x0000_s1139" connectloc="2"/>
<o:proxy end="" idref="#_x0000_s1143" connectloc="1"/>
</o:r>
<o:r id="V:Rule2" type="connector" idref="#_x0000_s1149">
<o:proxy start="" idref="#_x0000_s1143" connectloc="0"/>
<o:proxy end="" idref="#_x0000_s1139" connectloc="3"/>
</o:r>
<o:r id="V:Rule3" type="connector" idref="#_x0000_s1153">
<o:proxy start="" idref="#_x0000_s1141" connectloc="3"/>
<o:proxy end="" idref="#_x0000_s1140" connectloc="2"/>
</o:r>
</o:rules>
</o:shapelayout></xml><![endif]--><span style="mso-ignore: vglayout;">
</span> </div>
Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com6tag:blogger.com,1999:blog-8883357886079721926.post-83353076916228377312013-09-17T21:07:00.003+05:302022-07-25T11:20:38.710+05:30Java Reflection as Android API<blockquote class="tr_bq">
<span face="Arial,Helvetica,sans-serif">Have you ever tried or wished to re-use or access source code which is part of a different Android APK ? If "Yes", then this article is for you. </span></blockquote>
<span face="Arial,Helvetica,sans-serif">Well, I must agree its not a very common use case and when it comes to API in Android, we rather prefer JAR or Remote Service to expose functionalists. <a href="http://docs.oracle.com/javase/tutorial/reflect/">Java Reflection</a> can be an alternate and useful API approach to expose functionalists from an APK or Application.</span><br />
<br />
<span face="Arial,Helvetica,sans-serif">Here I'm going to explain a design approach where we can define API for Android using Java Reflection. For this example, <b><u>Host.apk</u></b> is an Application which hosts one API method which we are going to access from another application <b><u>Client.apk</u></b>.</span><br />
<br />
<span face="Arial,Helvetica,sans-serif"><b>Host.apk</b> includes- <span style="font-family: "Courier New",Courier,monospace;">HostApi.java</span> which defines API method <b><span style="font-family: "Courier New",Courier,monospace;">getMeta()</span></b><span style="font-family: "Courier New",Courier,monospace;"><span face="Arial,Helvetica,sans-serif">. This method </span></span>returns some pre-defined Text appended to calling Application's Package name.</span><br />
<span face="Arial,Helvetica,sans-serif"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></span><br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span face="Arial,Helvetica,sans-serif"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]--></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> package</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> com.pras.host;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">import</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> android.content.Context;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">class</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> HostApi {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>Context </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> HostApi(Context context) {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">this</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">.</span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> = context;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> String <b>getMeta()</b> {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>String pkgName = </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">.getPackageName();</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span><span style="color: #2a00ff; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">"HostKey-"</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> + pkgName;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black;">To access above API method <span style="font-family: "Courier New",Courier,monospace;"><b>getMeta()</b><span face="Arial,Helvetica,sans-serif">,</span></span> we need to write a HostApi Proxy which access <span style="font-family: "Courier New",Courier,monospace;">HostApi.java</span> using <u>Reflection</u>. Here is the code snippet-</span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black;"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black;"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
</span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">package</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> com.pras.client;</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span></b></span><br />
<br />
<span style="font-size: small;"><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">import</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> java.lang.reflect.Constructor;</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span></b></span><br />
<span style="font-size: small;"><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">import</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> java.lang.reflect.Method;</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span></b></span><br />
<span style="font-size: small;"><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">import</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> android.content.Context;</span></span></div>
<span style="font-size: small;">
</span>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><br /></span></div>
<span style="font-size: small;">
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">class</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> HostApiProxy {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">private</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">final</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> String </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">REMOTE_PACKAGE</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> = </span><span style="color: #2a00ff; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">"com.pras.host"</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">private</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">final</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> String </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">REMOTE_CLASS</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> = </span><span style="color: #2a00ff; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">"com.pras.host.HostApi"</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">private</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">final</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> String </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">REMOTE_METHOD</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> = </span><span style="color: #2a00ff; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">"getMeta"</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>Context </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> HostApiProxy(Context context) {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">this</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">.</span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> = context;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> String <b>getMeta()</b> {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>String metaData = </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">null</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">try</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>Class
hostApiClass = getRemoteClass(</span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">, </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">REMOTE_PACKAGE</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">,</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">REMOTE_CLASS</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>Object
hostApiInstance = getRemoteInstance(hostApiClass,</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Class[] { Context.</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">class</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> }, </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Object[] { </span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">mContext</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> });</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>metaData =
(String) invokeRemoteMethod(hostApiInstance,</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 5;"> </span></span><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">REMOTE_METHOD</span><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">, </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Class[] {}, </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">new</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Object[] {});</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>} </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">catch</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> (Exception ex) {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>ex.printStackTrace();</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> metaData;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Class
<b>getRemoteClass</b>(Context context, String remotePackage,</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>String
remoteClass) </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">throws</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Exception {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="background-color: #cccccc;"><span style="background-color: white;"><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">// Get remote Application Context and request to include Source</span></span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></span></div>
<span style="background-color: #cccccc;">
</span><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="background-color: #eeeeee;"><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>Context
remoteContext = context.createPackageContext(remotePackage,</span></span></div>
<span style="background-color: #eeeeee;">
</span><span style="background-color: #eeeeee;">
</span><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="background-color: #eeeeee;"><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 4;"> </span>Context.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">CONTEXT_IGNORE_SECURITY</span></i><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> | Context.</span><i><span style="color: #0000c0; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">CONTEXT_INCLUDE_CODE</span></i><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">);</span></span></div>
<span style="background-color: #cccccc;">
</span><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">// Get Class loader associated to Remote Context</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<span style="background-color: #cccccc;">
</span><div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="background-color: #eeeeee;"><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>ClassLoader loader =
remoteContext.getClassLoader();</span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>Class cls =
loader.loadClass(remoteClass);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> cls;</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Object
<b>getRemoteInstance</b>(Class remoteClass, Class[] args,</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>Object[] argValues)
</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">throws</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Exception {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>Constructor
constructor = remoteClass.getConstructor(args);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> constructor.newInstance(argValues);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">public</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Object <b>invokeRemoteMethod</b>(Object
instance, String methodName,</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 3;"> </span>Class[]
args, Object[] argValues) </span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">throws</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> Exception {</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>Method method =
instance.getClass().getDeclaredMethod(methodName, args);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #3f7f5f; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">// Make sure its accessible (if it is Private method)</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span>method.setAccessible(</span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">true</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">return</span></b><span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"> method.invoke(instance, argValues);</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;">}</span><span style="font-family: Consolas; font-size: 10pt; mso-bidi-font-family: Consolas;"></span></div>
</span><br />
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black;"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<span style="font-size: small;"><span style="color: black;"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
</span></span>I have defined 3 utility methods- <span style="color: blue;"><b><span style="font-family: "Courier New",Courier,monospace;">getRemoteClass()</span></b></span>, <span style="color: blue;"><b><span style="font-family: "Courier New",Courier,monospace;">getRemoteInstance()</span></b></span> and <span style="color: blue;"><b><span style="font-family: "Courier New",Courier,monospace;">invokeRemoteMethod()</span></b></span> which help to get reference of remote Class stored in <b>Host.apk</b> and invoke <span style="font-family: "Courier New",Courier,monospace;">getMeta()</span> method. The important point to note here; <u>to load the remote class, we need to get the instance of Class Loader of the respective Application's context</u>. In Android, each application Context has its own Class Loader which is responsible to load/manage classes included inside the Application or APK.</div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
<br />
<span style="font-size: small;"><span style="color: black;"></span></span><span style="font-size: small;"><span style="color: black;"></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;">
Above approach and Reflection methods can be used to define any API. So, if you like this design approach, give a 2nd thought during designing your next API. Please find the complete <a href="https://drive.google.com/file/d/0B8n_4k-vXoTXOXExel9jbHlja1U/view?usp=sharing&resourcekey=0-u8e5Tg-tA3mLfsUNBP3Wcw">Source and APK</a> (<b>Host.apk</b> and <b>Client.apk</b>).<span style="font-size: small;"><span style="color: black;"></span></span><span style="font-size: small;"><span style="color: black;"></span></span></div>
Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com2tag:blogger.com,1999:blog-8883357886079721926.post-2422376227638059912013-05-25T20:15:00.004+05:302016-01-15T09:34:23.346+05:30"Live" Sea food for dinner....Few days back I was attaining Team dinner with my Korean team mates and As the blog title says, I guess you guys have already imagined the kind of thrilling experience I might have.<br />
We went to a famous Korean restaurant which serves "Live" Sea creatures (Yes better to use "Creature" word, as it includes I guess almost every living things of sea- Snails, Oyster, Crabs, Squid, Lobster
and so on...) and cook them in-front of you. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCEz-HpxI-S4zqmnn0oCD1OWHYMJzDgGZApHTs-fzMuflPAauj9ZoIL6SVeH6-0MsQ9lQXzSr28H_F0U2b1VDKor04g_81JqvFbHTpWrdgP5hURIsNMt2laglg5TVPlRaXGnyMT3OJu95_/s1600/2013-05-23_19.07.24%5B1%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCEz-HpxI-S4zqmnn0oCD1OWHYMJzDgGZApHTs-fzMuflPAauj9ZoIL6SVeH6-0MsQ9lQXzSr28H_F0U2b1VDKor04g_81JqvFbHTpWrdgP5hURIsNMt2laglg5TVPlRaXGnyMT3OJu95_/s320/2013-05-23_19.07.24%5B1%5D.jpg" width="320" /></a></div>
<br />
They bring a large bowl which contains all these creatures, I guess the only spice to this is some kind of Red Chilly powder and "Water". They start the fire and put the bowl on top of it. After few minutes, one waiter comes and cuts these creatures so that they mix/cook well. I must say, the waiter is pretty skillful, she is so good in pulling/picking meats from Oyster, Snails, Squid etc. and it was so fast...simply Amazing..<br />
<br />
As I belong from a small town in India with a proximity to a big river, I'm quite comfortable/familiar and love Fish or any "animals" of Water. So, this collection of sea food was pretty delicious, specially the Crab and Lobster.<br />
<br />
While me and my team mates were enjoying the delicacy of this restaurant, some more surprise was waiting for us. One of the waiter brought one <span style="background-color: #cccccc;">Live Octopus, cut its arms and serve to each of us.</span> I have seen many videos on YouTube which suggest that its pretty dangerous, as the suckers of Octopus' arms are really powerful and it might chock throats. But even though I tried to resist, my Korean team mates insisted and I thought it deserves a try...so eat that Live Octopus Arm....it tastes salty...and I guess I'll never try it again :-)<br />
<br />
It was really something I never tried before and whole eating experience was a thrill. Thanks to my Korean team mates for arranging the dinner.Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com1Suwon-si, Gyeonggi-do, South Korea37.2635727 127.0286009000000137.0614457 126.70587740000002 37.465699699999995 127.35132440000001tag:blogger.com,1999:blog-8883357886079721926.post-16924662922042148262013-04-07T16:56:00.000+05:302016-01-15T09:26:12.169+05:30InDroid- Access to Android's Hidden API<span style="font-family: Arial,Helvetica,sans-serif;">I have started one project "<a href="http://code.google.com/p/indroid">InDroid</a>" to expose and share Hidden and Internal methods and variables of Android platform <span style="color: red;">which are not part of Android's Standard/Public API</span>. </span><br />
<span style="font-family: Arial,Helvetica,sans-serif;">These are very powerful methods and information which would help Android Application developers to make Solutions/Apps with the power of Android's native functionalists.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: Arial,Helvetica,sans-serif;">Try the 1st version of this Library (this includes API for few important hidden methods of Telephony, Graphics and View System) and share your feedback-</span><br />
<span style="font-family: Arial,Helvetica,sans-serif;"><a href="http://code.google.com/p/indroid/downloads/list">http://code.google.com/p/indroid/downloads/list </a></span>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0tag:blogger.com,1999:blog-8883357886079721926.post-37190595669582402962013-02-02T11:01:00.001+05:302016-01-15T09:00:30.887+05:30Drag n Drop in Android<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">"Drag and Drop" is one of the most cool UI interaction technique, but at the same time it appears to be a very complex implementation approach. This was my assumption (and I believe, many of you also think on the same line) before I looked into Android's "Drag n Drop" framework and API. It makes the whole implementation pretty straight forward as long as we understand the API components and its interaction. </span></span><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Here I'll explain important components to implement "Drag n Drop" UI in your application.</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Before starting the imple<span style="font-size: small;">mentation<span style="font-size: small;">, we need to de<span style="font-size: small;">cide 4 <span style="font-size: small;">important components- <span style="color: blue;">Drag Source</span>, <span style="color: blue;">Drop Target</span>, <span style="color: blue;">Data to transfer</span> and <span style="color: blue;">Dr</span><span style="font-size: small;"><span style="color: blue;">ag Gesture</span>.</span></span></span></span> </span>Both source and destination can be any View and they can be part of 2 different Fragments/Activities "displayed on the same Screen". <span style="font-size: small;"><span style="font-size: small;">Android provides a Parcelable class <span style="font-family: "Courier New",Courier,monospace;">ClipData </span>to hold data that you want to transfer from Source to Destination<span style="font-size: small;">, it can hold any kind of data- te<span style="font-size: small;">xt, UR<span style="font-size: small;">I</span> etc.</span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Once you have decided the source<span style="font-size: small;">, </span>destination components (Views)<span style="font-size: small;"> and</span> data to transfer; next thing to decide is the <b><i>Drag <span style="font-size: small;">G</span>esture</i></b> (on Click or on Left/Right Swipe etc.) which initiates Drag operation from Source.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">In my example I have created 2 panes- Left Pane ("D<span style="font-size: small;">rop</span> Target"), handles drop operation and Right Pane ("Drag Source") is a List View and initiates Drag (Can you see "Google" is being dragged ?). You can downl<span style="font-size: small;">oad the <a href="http://code.google.com/p/android-java-sample-code/downloads/detail?name=DragIt.zip&can=2&q=#makechanges">sample</a>.</span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><img alt="" height="320" src="data:image/jpeg;base64,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" width="223" /></span></span> <br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></span>
<span style="font-size: large;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Drag Source</b></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">In the above Example, drag even starts when user click on any item of Right pane. To achieve this I have <span style="font-size: small;">overridden</span> onItemClick() of ListView (<span style="color: blue;"><span style="font-family: "Courier New",Courier,monospace;">source</span></span>)<span style="font-size: small;">,</span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><img alt="" src="data:image/png;base64,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" /> </span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">To initiate Drag we need to prerare ClipData which we would like to transfer to Target<span style="font-size: small;">. It can be any<span style="font-size: small;">thing, Text, URI etc.<span style="font-size: small;"> startDrag() meth<span style="font-size: small;">od requires one important parameter, Drag<span style="font-size: small;">ShadowBu<span style="font-size: small;">ilder<span style="font-size: small;">, this gi<span style="font-size: small;">ves the capa<span style="font-size: small;">bility to control the<span style="font-size: small;"> GUI of dragging resource. The simple implementation is to pass the View instance as it is to Shadow Builder. It creates a Bitmap from this View and displayed i<span style="font-size: small;">t during Dragging process.</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><img alt="" src="data:image/png;base64,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" /> </span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: large;"><b>Drop Target</b></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: large;"><span style="font-size: small;">During the Dragging process, Android <span style="font-size: small;">framework gives Callback to all Views registered for<span style="font-size: small;"> Drag<span style="font-size: small;"> Events using OnDragListener</span>. If you have multiple Drop Targets, its advice<span style="font-size: small;">d to<span style="font-size: small;"> c<span style="font-size: small;">reate a OnDragListener<span style="font-size: small;"> class and use it in different Drop Targets. </span></span></span></span></span></span></span></span></span></span></span></span><span style="font-size: small;"> </span></span></span></span><b> </b></span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><img alt="" src="data:image/png;base64,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" /> </span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Now lets check logic of the D<span style="font-size: small;">rag Listener-</span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><img alt="" src="data:image/png;base64,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" /> </span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">In the above source, I'm highli<span style="font-size: small;">ghting Drop Target View when Drag <span style="font-size: small;">Shadow image enter<span style="font-size: small;">s<span style="font-size: small;"> any Drop Target<span style="font-size: small;">'s View region</span></span></span></span></span></span> and reseting the <span style="font-size: small;">background color </span>when Drag Shadow leaves Drop Target<span style="font-size: small;">'s V<span style="font-size: small;">iew region. These 2 <span style="font-size: small;">events are noti<span style="font-size: small;">fied by<span style="font-size: small;">- <span style="font-family: "Courier New",Courier,monospace;">DragEvent.<span style="color: blue;">ACTION_DRAG_ENTERED</span></span> and <span style="font-family: "Courier New",Courier,monospace;">DragEvent.<span style="color: blue;">ACTION_DRAG_EXITED</span></span>.</span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">If user remove<span style="font-size: small;">s <span style="font-size: small;">finger touch when Drag Shadow is within any Target View, it <span style="font-size: small;">notifies corresponding Target View with</span> <span style="font-family: "Courier New",Courier,monospace;">DragEvent.<span style="color: blue;">ACTION_DROP</span></span> event. event.getClipData() returns null <span style="font-size: small;">during any Drag event other than <span style="color: blue;"><span style="font-family: "Courier New",Courier,monospace;">A</span></span><span style="font-size: small;"><span style="color: blue;"><span style="font-family: "Courier New",Courier,monospace;">CTION_DROP</span></span>. In the above source, when it received Drop event, it replace<span style="font-size: small;"> Drop Target View's text with the data coming from Source and stored in <span style="font-family: "Courier New",Courier,monospace;">ClipData</span>.</span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">So, <span style="font-size: small;">its pretty straight forward, right<span style="font-size: small;"> :-)</span></span> </span></span> </span></span> </span></span></span></span></span> </span> </span></span></span>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0tag:blogger.com,1999:blog-8883357886079721926.post-19048474298827892422013-01-05T15:19:00.005+05:302013-01-06T05:09:23.009+05:30Accessing Yahoo Finance API<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Since last few days I was wondering the right set of Web Service to read <u>Country wise Stock Exchange index information</u>. I found a bunch of scattered information, but no straight forward answer. It seems there are not many "reliable" and "flexible" options and <u>Yahoo Finance</u> is one of the top of this class.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Though Yahoo Finance is very powerful, some how its very less documented and it seems Yahoo doesn't care much about this wonderful web service and expect Developers to do some kind of "hacking". The only online resource that I (and most of you <span style="font-size: small;">as well</span>) found is one 3rd party web site- <a href="http://www.gummy-stuff.org/Yahoo-data.htm">http://www.gummy-stuff.org/Yahoo-data.htm </a>and it seems they know much more than what Yahoo dose..;-)</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Anyway let me continue and share my experience and information to help budding developer who wants to use Yahoo Finance Web Service<span style="font-size: small;"> in their Mobile, Web o<span style="font-size: small;">r Desktop s<span style="font-size: small;">olution.</span></span></span></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">There are 2 set of APIs to access Yahoo Finance details-</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>YQL based Web Service</b><span style="font-size: small;">:</span> This API abstracts web services as a SQL Table. Unfortunately YQL doesn't work for Finance API. Yahoo has removed the Finance YQL table and only "work-around" is to use one deprecated table stored in Git Hub (<code><span class="str">http://github.com/spullara</span></code>).</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">We need to run following query on YQL Console to access Yahoo Finance (Thanks to <a href="http://developer.yahoo.com/forum/YQL/No-definition-found-for-Table-yahoo-finance-quotes/1252596855000-919237d4-ef6d-397c-97d9-68a7f6336f02">YDN</a>)</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-family: "Courier New",Courier,monospace;"><span style="background-color: #cccccc;"><span style="color: blue;">use "http://github.com/spullara/yql-tables/raw/d60732fd4fbe72e5d5bd2994ff27cf58ba4d3f84/yahoo/finance/yahoo.finance.quotes.xml" as quotes;</span></span><br /><span style="background-color: #cccccc;"><span style="color: blue;">select * from quotes where symbol in("YHOO","AAPL","GOOG","MSFT")</span></span></span> </span></span><br />
<span style="background-color: #cccccc;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><u><b>YQL (Yahoo Query Language) </b></u></span></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Yahoo has their own version of Web Service Mashup solution<span style="font-size: small;"> (</span>YQL), which can read data from various existing<span style="font-size: small;"><u><b> </b></u></span>Yahoo web services (Flickr, Places etc.). It provides one wonderful execution environment (<u><span style="color: blue;">YQL Console</span></u>- <a href="http://developer.yahoo.com/yql/console/">http://developer.yahoo.com/yql/console/</a>) to test web service queries before using them in actual implementation. </span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>CSV based Web Service</b><span style="font-size: small;">:</span> This API is stable and backbone for YQL.</span></span><b><span style="font-size: small;"> </span></b>As YQL feature seems broken for Finance API, so only stable solution is CSV based API. Following section covers more details <span style="font-size: small;">about <span style="font-size: small;">this API.</span></span></span></span><br />
<ul>
<li><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Base HTTP GET URL- <a href="http://download.finance.yahoo.com/d/quotes.csv">http://download.finance.yahoo.com/d/quotes.csv</a></span></span></li>
<li><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Useful Parameters- <i>Symbols </i>(<i>s</i>) and <i>Fields or Columns </i>(<i>f</i>)</span></span></li>
</ul>
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Yahoo Finance Symbols</b>- </span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">each Finance element either Stock exchange or Business unit has one unique Symbol which is prefixed with ^ (ASCII code: 5E) e.g. ^BSESN (Bombay Stock Exchange SeNsex). You can find list of Country wise Stock Index symbols in - <a href="http://finance.yahoo.com/indices">http://finance.yahoo.com/indices</a></span></span>
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b> </b></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Fields or Columns of Finance API</b>- </span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">we can specify fields we want in CSV response. Each field has unique code (e.g. t1 - Last Trading Time, p2 - % change in Stock Index), complete Fields and codes are mentioned in <a href="http://www.gummy-stuff.org/Yahoo-data.htm">http://www.gummy-stuff.org/Yahoo-data.htm</a></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Well that's all you need to know to access Yahoo Finance API. Now let's see one example URL which reads Stock Index of 3 countries- (BSESN- Index of India, NYA- Index of New York Stock Exchange and HSI- Index of Hong Kong)-</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Request URL</b></span></span><br />
<a href="http://download.finance.yahoo.com/d/quotes.csv?s=%5EBSESN+%5ENYA+%5EHSI&f=sl1d1t1"><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">http://download.finance.yahoo.com/d/quotes.csv?s=%5EBSESN+%5ENYA+%5EHSI&<span style="color: blue;">f=sl1d1t1</span></span></span></a><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">As you can easily understand, </span></span><br />
<ul>
<li><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="background-color: #cccccc;"><i><u>Symbols (s)</u></i></span> parameter can contain multiple Indices separated by "+" and most important thing, ^ character should be escaped using HTTP URL Encoding.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="background-color: #cccccc;"><i><u>Fields (f)</u></i></span> parameter contains <i>s(Symbol)</i>,<i> l1(Last Trade Price)</i>, <i>d1(Last Trade Date)</i> and <i>t1(Last Trade Time)</i></span></span></li>
</ul>
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Response</b></span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">"^BSESN",19784.08,"1/4/2013","5:10am"<br />"^NYA",8667.678,"1/4/2013","4:15pm"<br />"^HSI",23331.09,"1/4/2013","3:01am"</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Response is in standard CSV (Comma Separated Values) format<span style="color: #0000ee;"><span style="font-size: small;"> <span style="color: black;">and can be easily parsed in any Programming Language using in-built String parsing methods.</span></span></span> </span></span>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com3tag:blogger.com,1999:blog-8883357886079721926.post-28330467071849871442012-07-23T00:47:00.000+05:302016-01-15T09:00:30.883+05:30Eclipse EGIT, Download Code, Attach Framework code & Debug<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;">This article explains procedure to download Android source (few important Apps and Framework base code) using Eclipse <a href="http://www.eclipse.org/egit/">EGit</a> plugin and then attach framework code to debug important framework classes (e.g. Activity etc.).</span><br />
<ol style="text-align: left;">
<li><span style="font-size: small;">Install <span style="color: blue;">EGit</span></span></li>
<li><span style="font-size: small;">Download Source from GIT Repository</span></li>
<li><span style="font-size: small;">Attach Framework code</span></li>
<li><span style="font-size: small;">Debug </span></li>
</ol>
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<b><span style="font-size: small;">Download EGit Plug-in</span></b></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="color: blue;">EGit</span> is a GIT plugin for Eclipse which helps to mange GIT clone, Check-ins, Sync etc. from your Eclipse workspace. </span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Eclipse (Version: 3.7.x) -> Help -> Install New Software -> "Add" - "<a href="http://download.eclipse.org/egit/updates">http://download.eclipse.org/egit/updates</a>".</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Once the plug-in installation is successful, you'll find a new Eclipse View perspective- "Git Repository Exploring" </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" height="121" src="data:image/png;base64,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" width="320" /><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<b><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Download Android source</span></span></b></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">To download code from Android GIT repository, we need to create "local Git clone". Each local clone is associated with Remote Clone URL. </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><a href="https://android.googlesource.com/">https://android.googlesource.com/</a> lists Git Repository URLs for different sections of Android source code (platform, kernel etc.).</span></span></div>
<div style="background-color: #eeeeee; font-family: Arial,Helvetica,sans-serif; text-align: left;">
<b><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Kindly note:</span></span></b></div>
<div style="background-color: #eeeeee; font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">The repository URL for Platform (<a href="https://android.googlesource.com/platform/manifest">https://android.googlesource.com/platform/manifest</a>), doesn't recursively download complete platform code (e.g. /platform/frameworks/base, /platform/packages/app), rather it downloads <span style="font-family: "Courier New",Courier,monospace;">default.xml</span> which contains Git URL for individual platform components.</span></span></div>
<div style="background-color: #eeeeee; font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">If you are using <span style="color: blue;">EGit</span>, you need to separately download code for each components of platform (e.g. framework/base, packages/app/Contact etc.)</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Following section describes procedure to download code for Calendar application and Framework (/framework/base)-</span></span></div>
<div style="background-color: #eeeeee; font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Git URL for Calendar- <a href="https://android.googlesource.com/platform/packages/apps/Calendar">https://android.googlesource.com/platform/packages/apps/Calendar</a></span></span></div>
<div style="background-color: #eeeeee; font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Git URL for Framework- <a href="https://android.googlesource.com/platform/frameworks/base">https://android.googlesource.com/platform/frameworks/base</a></span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Open the Git Repository Perspective-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">There are 3 important buttons- "Add an Existing Repo", "Clone a Remote Repo" and "Create a New Repo".</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAlCAIAAABu5TiUAAADo0lEQVRYhe2YzU/TYBzH+R8wHIhmJIAe0JiIIK8X41GEE5Ge0MQDePEgCSQcYBxIFoQ5gWUEiAMHSzcgTQZhyJtbeItmk0RAMEwlRBnEUKBd127dPDymjr08fUq3CMgvvyxP1+a7z2dPnydpk8hzWkn/GiBRdSF21kqW2K/LGQnqC7HYYq9lVOLE5FCBis+Myf+D4x54IZZgjrgHJkRsgSi1ddyy6XJmO25Pvbg53pi1QJSWWVxpKnOayow5KKmBJ6joYovWcntfhn0wy95/bbb7ypTm0qK1XDg7ob0K5/AtXWc/l/i9et9+i+cbRjqLgFWZxZXbZgYDRDFEEiQxm6XAv3Hft13Dc1N+aojdVdKuR56lPJulAGRhFAYSY4q9v8Gu3BPEgNV4YxY4Cw5RxERJAvx+LLcoYvN4jv/LA9/W07A4+2DW6Mv0UU06RmGjmvRRTXossa3u5KOVHJZ84vlagjmoNJV5qzt5uj5buABRLBaJZ2MAkAT4fUCCJPa2PX/PmsFsPfTRLay75mjt7t67TNAYhYV2zCWxWMjuPPN79YbvVG6bmXQWHRKK6fpsYZkJHXZPhgVGJQls6odVCp5y8pSTP3LyR06ecg6rFOJiE5p8er3SR3ZGzphBmWpQpmIUZlCmDjSmiophDgqssUNCAXaUULfIlRYWGIuEWsMBif9nPyBBm7FXeSFxZna38c+d3ZpJkmRvXQpGYb11KZEcEWJ9wuYxgxcLOwq4OTEHdUgoZvBi2IyJkfg2mwAJkthk+x16vdK338lz037axO420K7HnqV8EEeSpO55clQOiNhcb2HojlJmcYFpFHaUqIHoJOJic5M6SO9sfxLGEDF4SGiH7ihhgZJIxMUmrF2M1y/aE9YuiBh6CERMEokEMSNuMuImmuE+NjXRDKe2q9V29fKPZZrhaIZDFIsaorarhRAUMRQScTGCGKEZTt//5oALgP5QVwcGzdPNYEAzHEGMQMTQQyBikkjExXCT8YALdGh1wud8VRVIqR2rFX4DNxkhYughEDFJJOJiPcYRtzfo9gZVLa2qlla3NzhbUQG+qR6uBgO3N9hjhM0YeghETBKJBDF4I4qJhqCIoZCIi3XoxxAbIoYeAhGTRCIuJqn+uwfN0xB4fsXi8vpN/tuyuAcm6SzLJ26BI+4thwr0+RULyqjEicmhAiVL7DTXhdhZK0FsdahBa9sLhhwOrR67cnWo4W+FnUOuyFho7dm0x6gk1G/jTU6rJcLeTQAAAABJRU5ErkJggg==" /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Click on the Git Icon with blue arrow ("Clone a Remote Repo") to create a local clone of Android Jelly Bean source.</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" height="200" src="data:image/png;base64,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" width="199" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Press "Next". It will communicate with Google Server and download the list of available branches. You need to select relevant Android source branch, in this case "jb-release"-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" height="200" src="data:image/png;base64,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" width="199" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Press "Next". In the successive screen, you need to Select the location where you want to create Local clone of this remote repository. Make sure you checked "Import all existing projects after clone finishes", this will instruct Egit to download the source code.</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" height="200" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgoAAAIKCAIAAADNo/ACAAAgAElEQVR4nJTcVXBb+4Pg+fO2NQs13VPbvVM7O9tT0xfCHMcxxMzMILMdsy3LtixGM8SJY4jZspiZmWzJMnPMELw984fZre3et92HI8lyknurR/Up1U9HipWn8z2/3zlHwL/5d//QMzgutR2RZxbbZxbbZ0GO9llH+5yjneJspyx1UJY6KM4OylLH/FLnvLOD4uykODrmHR0UZ+eco2NusXNusYvi6Jxb7JpzdFEWuymLPfPOXqqzl7bUT3f1M1z9dNcA85p+pqufudzPWO5nrAwwVgYYK/305X76ch99uY+23Edd6p139lKc3XOLXTMLnTP29mkbecpKnLQQJkz4CRN+3IQfN+LHjYRxI+GdkfjOQHxnII0bSO/05HE9eUJPntCTx6/GpHE34pieMKYnjOnxo27YET1mRI/2QA3rUSN65LAeNaxHDhuQwwbEsB4xrEcM6+Bvda1vtK1vtK1vNC2vNS2vNc2vVM2vVLBXKtgrddOAG3RADR3QNA5ooK+00EEd9JUe+lrf9NrY9MYEe2OGDVlgQ5amIUvTkLVpyAJ9Y4G+MTe+Nte9MtUOGKt6dZU9mtIOZTFZXkiSQwiyXJw0ByvORIkzkKL0NmFqmzC5RZDczEtq5iVAeXGN3Jh6Tkw9O7qOHVXPiaxnR9RxwuvY4XWc8Dp2WB0ntI7zoob1oooZVMkIrKQHVdIDX9IDK2lBlfSgakZwNeNFDYgeXE0PrqYFVdMCq6gBldTnlbRnL2l+FbSn5fQnZYzHZcxHpYyHpYwHxYz7xYx7RYy7hYy7hfQ7BfTbEPptCP0WhH4LQr+ZT7uZR7uRN38jb/5G7vyvuZRfcym/5FB+yZn7JWfu5+zZn7Nn3LJmfsqa+UePn7Jmfsqc/Sl79qfsuZ+zKb/kzv+aM38jl3ozj3Yrn367gHGnkHWniHWvmHOvhHO/lPfgCvdBGdc9uMJxK+OCHpbxHpbzHpfzH1cIHlcInrwUPqkUPqkSPfXhVyV6ViV6XiUMqBIGVguCq/kh1bywGm5ELTeylhNdy4mp5cTWsWPr2HHfq+fE1nNj6nnR9fzoekFUgzCiQRTeIA5rkIQ2SEMbpCENshcNch+KkEYfUHkIVB4KlYc0ykIaZaGNspCG3xUKdQtrUoQ3KcJhykiYKrJZHdWqiYZrY9t0sQh9HNIQjzQmoE2JGHMixpyMs4BScdZUnDUVb03FW9Pw1jSCLd2LaEsnWNOJtnSiLYNoTSdaM4iWTJI1ExwQLRlESwbBlEEwpuOM6Th9BlaXjlVnoJUZKHkmUpaFlOSgxLkocT5KBEGLCtHCQrSwCCMoxghLsIJSjLAEK/AqxgiKscIijLAQKyrAiiBYMQQrhmCl+ThZPk6ah5Pl4WX5eHk+Tp6Pl+XjZRCcDIKXQgiyAoKsAC8tIEgLiLICorSIKCsiyoqI0iKirJgkLSFKi0myUpJsaefjr09it4+/KhcO1AuH6sUjteNI4zjWOo51Sye6pVO969TgOjMsnxtXzo0r58bVC9N15tVL8+qlefXCa+fkv8BxPRdf/5vPx849vhlfmFbPjSvnppVz48rZleVrto9/G6ooOlhcXpudA23Mzm3NzW3NzezOzezNzbyfmzmkzBxQZo4pM6dzMydz02dz02dz0+cgyozXBWXmYn7W63J+9pI6e0mdPafOnlPnzqlzZ9S5Y+rcEXXucH7u/fzc3vzczvzcNmV+izK/QZnfoMy/N9qywkJ2Tv8rmbJMpixLF856Xk8Af/d//Lyy/6V9ztE+5+iYc7oz4NE5D3J5dc27uqhLXVRXNxUcLHXPL/VSXb20pT6aq4+21E9bGqAvDTKXX7NX3nBW33LW3vLW3vLWh/luI/z1YffLjWH+xgh/Y4S/McwDrQ9z199y1oc460PstTfs1deslUHG8gB9qZ/q7KU6eucXe+YXuij27jmPWVvPrK1n1tY7a+udtfbOeVn6QBRzH8XcN2funbWAemYs3TOW7hlr14y1c9raMW1tn7KAyFNWEOmKjThlJUxZcBNm3IQZN27CjZuw70zYMSNm1IAeNaBH9ehRPXJEjxwxIIf1iBEDcsSIGDEhR0yIERNi1IwYtSBGrcgxG3LMjhhbQL67BjG20Da6AB+1tby1woYsjYOm+leG6l7dyy51eae6pF1VRFbm42W5WFkWRpqJEqchxClwYXKLIAHGj2/ixTXyYhq40fWcqHpOZB0nso4TUc+JqOOE13HD6jlhddyQWk5ILTu4mhVcxQqqZAZWMQIrGQEvGYGVjKBqRnA1M7iGGVzDDK5mBFUzgqpogVW0gCqafyXNH2xDBf1pOeNxGeNRGeNhCeNBCfN+MfNeEYhxp5Bxp4Bxu4Bxu4BxC0K7BaHdzPfIo93Ipf6aOw9y5yFn7udsMBKzP2eDMXD7x6zZf8ya+ylr7udsys85lF+yKb/mUm/mUW/m029D6LcKmHeK2HeL2PdKOPdLuA/KeG7XIuEePyzlPizlPizzxXtYzntYzn9cwX9cIXjyUvDkpfDJS+GTyh/mQRRQLQyqFgZXC0Jq+GE1vIhaXmQtN6qWE1PHja3jgOI8PGNubAMvpoEf3SCIahBGNoojGyURjdLwRllYozy0UR7aqAhtVIQ0Kr1Cob4UoU2KEKjCG4nQRvlVEhqvhIKg8rAmeViTIhymjGhWRTarIls0Ua3aaLguBqGPRRjikMY4lCkBZUpAm5OwV1Jw1hSwEDhPITyRSCPY0nwikUG0ZRCtmURrOtGaTrBmEK0ZBEsGwZyBN6XhDOlYQzpWm4bWpKFU6ShlBlKegZRmISU5SFEOUpSHEkJQwgKUsBAtKEQJitD8IoygCC0oRguLMIIiMAwYQQFGVIAR5aNFeRhJPlaaj5XkYWX5OFkeXpaHl+fhZHk4eT5enk+Q5+Nk+XgZhCDLx0shBGkB2AmitIAoLSB4IkGSFZFkxSRZCVnu3Pn065PY7aOvqoVD1cKhavFIvXikAQvhPNEtnehdp4blM6M7DxfX83BpXrs0r/0gD83orsuv/xf48nokvn/pDo/Jtw2+g+Wz7ePfXpfkvbcvucYnXOMTq+MTa+MTG5MTm5MTW5MTu5MTe1Pj76fGD6bGD6bGj6fenUy9O5kaO/M4nxo7n37ndTHz7mxm/Hxm/GJm/HJ2/HJ2/Hx24nx28mx28nRm8nhm8mhm8v3M5PuZyf3pqZ3pqe3pqa3JqY3JqfXJqZXJqfdaU2ZI4M7pn8iUFdDK+9+Ajv6xadm2TwOWvbrml7uoy13UlS7qShdtpYu20k1b6aav9NBXuukrPYyVXsZKP2Oln7nyirUyyFodZK28Ya+85awOc9dGBetjws13oq0J8faEZHtSujN1ZfdHfD4g2Z6SbE+KtydEW+PCrTHhxih/bZS3NsxdfctZHmK73rBdb1heS0OspbespSGm8y3LyzHstujh3vKW6RhiOoeYzjdM52um8zXDOchwvmI4B2jOAbpzgO7sp3ktgYNeqqOH6uihOrqpi93zi12Uxa65hc45e+ecrWPW1j5jbZ+2kj3ap23t0zbStJ00vUCeWSTPLpJnHaRZB2nWSZpdIs8tkedcINKcizjrIsy4CDNLuCknZsKBereIGLO1DFubhkz1rwy1ffqXPbryLk1Ju7qAqMzDK7Ix8gyULA0hToGLk1pFCTBBbJMgtoEX1cCNrOdG1HEj6nkR9bzwOl5YPS+snhdWxwut44XUcl/UcIOqOUHVnKBqdmAVG3wOrGYFVrOCqtlBNaygamZgNSOwivG8ivG8kv7sJd2vgu5XTn9STn9cxnhUynhUynxQwgTzABbibhHzThHzTiHzTgHjTgHjVgHjVgE4gaDfzKfdyKfdyKPdyKN5C/Fr7vwvufO/5FB+zqb8nD3n6yc3yk858z9nU37JofyaQ/01j3ozj34TQr8FYdwG81DMuVfCuVfCBWcPD8v4Xg/KeA/LvS95D8p4niTwHpbzHpXzH5XzH1XwH1UIHvu24Ud58K8WPa8WBdWIgmuEITXCsFpBRC0/spYXVcuLruPF1PNi67nf4cXW82MbBDENwugGUVSjOLJRGgmVRTTJw5sU4U3KsCZlaJPqG2FNqrAmdViTOsw9VoY2KUObFCFNilCoPBQKRuU6cDtUEdakCG9Sgm2IaFFHtoJt0Ma06WMQhliEMQ5likeb4tHmBIwZnEAkYS1JWEsy1pKMtYCRSMFZU3G2VLwtFW9Lw9vSCPY0gv0qEu5phC2daMsgWNIJ1gyCNR1vTscb03DGdJwhFatLQ2nSUKpUpCINKUtDSDMQkiyEKBshykUK85DCPJQgHymAIAUFKEEhWlCAEhSCA7SgAC0sQIsgaGE+WpSPkeRhJXlYaS5WloeT5WLluThZLk6eh5PnYuXuQriBkZBC8DL3TIIoKyTKC4iyQqKsiCQvJsuKybISkjsPG+8/i017YtOexLwvMe9LLe9l1gO57UBhP1TYD5ULR6rFY9XisdpxonGcaJynGuepdukbZ97xxuHXRkTHycc/a52n38B3jmVkV/4BXOeY2nGsdhypF4/BqYx68Wj94PPrgow988Li2yHn2yHX2yHX8NDq8NDa8NDGyNDmyNDmyNDuyNDuyND7kaGD4ddHw6+Ph1+fDL8+GX490NTm/eMDTW2nI29e+Wx51YQ4Hxs6H3t7Ovb2eOzt8djw4djw+7Hh/bHhnbHhnbHhrbHhjdHhtdHhldHhlZFh18jwjlKXHuS/c/qn9vkV0KRsD9g6/i89tNVu6ko3baWbtupjzY3u1kNf62Gu9TLW+xhr/cz1Adb6AHtjkL3+mrs+xFt/y98YEWyMCTbHRVuTku1p6c6MbHdWvk9R7VNVBzTNAV17QNMc0LQHdB80zXXqK1T1+3nV/rxyb06+OyvfmZVuT0m2piSbk6LNSdHmuGhjQrQxIVqfEK1NitYmhGuTbqtTvkSrUyLfLStTwrUp4dqEcG1CsDYuWBsXrL0TrI3x18b4a6MeIyDe2gh/bZi3NsxdG+auveWuveWsvmGvvGGvvGEtD7KWB1muV8ylAYazn+5Oyyv6Uj+IsdzPWB5gLg8wVvoYK/3M1T7mah9z7RrGWi9jrYe+1k1b7aKutFOWSbMuwrQTO7mIfGdvGbbC3lgaXhmr+wwVPfqSDm0RWZ2PV2Zj5RloWRpCmgSXJLSI4ppEMU2CmEZ+ZAM/soEf0cCPqOeFN/DD6gVhDfywekFogyCkjv+ijveihhdcww2q5gbVcAKrOYFVnIBqdmA1O6iaHVjNCqhiPa9iPq9i+lcynr1k+FUwnlYwnpQzHpcxHpcxHpYyH5ayHpQyH5Sw7hez7hWz7oKKmHcLmXcKmbcLmbcKQIxbEMYtCOMmhHHDJxI38mg38qg38qi/5lJ/zaX+mjP/S878z9f9kjPvDkMO9ddc6o082o18+k0I41YB83YB604R524x514x934p70EZ/0EZ/2G54Dr+owrBo3LBo3LBw3L3APS4XPC4QvC4Qvi4QvjYGwZ3HsRPq8R+Hv5VoufVooAacVCN+EWtOKRWFFYniqgTRtYJouoE0XX8mHpeTD0/1qsBJIhpEMY2imIaxdFQSTRUFgWVRTXJI2HKCJgqolkV3qwOb1aHNWu+Ed6sCW/WhsM04TBNuDcVMFUYTBnWpAgFQRVhbsowqDIMpgyDqcKbVeHN6shmNThpiGrVRcN10W36WIQhFmmMQxrjUOZ4lDkBA+bBkoixJIHckbAmY60pOFsKzpaCdxciFZxAEO1uBLs3Em4EazrBmoY3p+GNqVhjKlaXitKkoNQpSGUqUp6GkKa1STLaxJkIcRZClIMQ5iIFuQhBHpKfD3YCBRJCUMI8lDAPJcpDi3PR4jyMNA8jzcXKcrGyXJw8FyvPwclz8YpcnAKMRB5ekUeQ5+HkEIIinyDPx8sgeHkBQV5AAMMg9yoiyUvIihKywrnz6Zcnscs7H9iaTY52i6Pd4mq3eLptvn5HYNgRGHaFxj2RaV9k2peY30ss76XWA6n1QGo9lFkPZbZr5J7B6v7n2hbS0eWfZLaDa6wHGdmV/98fPjKyK6WWfYll3/sstewv734czE7e0Zvt/b0L/b2L/b2L/b2ugV7XQO/qQO/aQO/GQO/mQO/2QO/uQM/+QM/7/u6D/i6Q7zdmZFf2N7R8s+V4sPd4sPd4sO9wsO/9YN/+YN/OYP/OYP/WYP/GYP/aYP/KYP/yq37nq37nq37Hq/5tqTLF/8nO6Z/a59dAndR14Muf/p8e+loPY72Hsd7D2PgDvcyNPtZmH2ujn7U5wN4c5Gy94W2/5W2NCLZGhdvvxDuT0t1p2e6sYo+i3Keq3tM1B0zdIctwxDEe80wnvvimU77plPcd7pUTrvGYYzhmG47YukOW7oCpOaBr9unqPZpqj6rcnXfbmVfszCu2Pbaoii2aYouq2KQpNmmKLV9UxSZVsTUv36JefX6botiek2/PybdnZduzsu0ZL+n2tMeUdHtKuj0p2ZoUb02INyfEmxOizXHhxphwfUyw7knL+gh/bYS/7rHpJtgc5m+O8Lfe8jeH+Ztv+Ztv+VugIf7WEG/rDXfrDXdzkLMxwF7vY6x1UVfaKS78jBM76UCMLTQP2xpfW2oHzJW9xtIuXUG7Jo+gzsYqM9CKVIQsCS6Na5HEwsTRUGFUozASKoxoFIY3isDnsEZReKMotEEUUi98USd4UScIrhUE1fKDanhBNbzAGl5gNTewhhtQzQmo5gRUs59XsZ5Vsp5VMv1eMp9WMJ9UMJ+UMx+XMR+VsR6WsR6WsR6UsB+UsO+XsO+VcO4Vs+8Vs+8Ws+8Ws+8Use8Use8Usm4Xsm4Xsr7vxE0I4yaEfiPfF+3XPB+5nmzkUX/No93Io9/Mo9+A0G9CmDfdbWDfKebcvWqDOwmPKoS+HlcIH78UPX4pBD25RuRWKQaT4FMFiV+15Fm15Fm1xL9a8rxGElAjCayTBNdJQuolofWSiHpxZIM4qkEU3SCMaRDGNApjGoWxHuDLGKgoBiqOaZLGNMmiYfIomDKqWRXVrI5s0US2aCJatBGt2ohWHSjcq0UX0aKLaNFGtmgjmrURPqkIh6m8wmDKcJgqHKaOgKkjmtURzZqIFk1kqzayVRcF10XD9TFtBnDSEIs0xiLBeYMpHm1OQJsT0OZEjNUNa00C4axJOGsyzpqMs6bg7aBUEDiHINrTiPZ0N1s60ZZGtKURbGl4SyrOnIo1pWINyWhdMlqbglKnIFUpSEUqUuEuBEKchRBnIoTZCFF2mzAXIchDCnORwlykKA8lzEUK81DCPDTYBkkuRpKDluZg5DlYWS5WkYNV5GAVuThlDk6Ri1OAkcjDK/MJijy8Ih+vgOAVEIIin6AoIIJ5kBcSFYVERTFJUUz2ICmWdj79+iTOtnY6JXBOCZ3TwqUZ0dKs2DUrds1JlinSlXnZKlW+RpOv05XrDOUGU7XBVG+y3LZY6i225gpLs8XWbC1sXJQ3YHdOvrLVm2zNJluzyVJvstWbLPXmvyYPTNU6U7nmY922dtqbHLWp1OrxOCMeZ8LjzHiclYizE7CLBKyTgHERMStEzBoRs0FEbxPRO0T0DhG1R0TtEVG91Q3f9MB33FfT+J6M2W/H7LXjdttxW+247XbcRjt+nYxfJeOXyXgnGb9Ixi+QCDYSwUoimImEdb4o8dHd3bM/dVDXvIAvf/rnHuZGD3Pzj/UyN3tZW33srX721ivO9mvuzhB/Z1iwMyrceSfenZTsTcv3Z5Xv59UHNM0BU3fENhxzTSd8y6nQeia2nUvs59KFC5mH9DsSkN3Xudh2Jradia2nQsupwHzCNx3zTUc84yHXcADi6EH7HP0+R+e1x9XtcfV7HN0uV7fL1e1xvLR7HO0+R7vP1u6ztfssDyZIs8/Q7DM0+3TNPl3z3k29T/Ogqvapqr155S5FuUtR7M4pdubkO7OynVnZzsw1u6Bp2e60bHfKx6Rsd1K6Oyndm5TsTkh2JyS74+LdcfHuqHBnmL/9hrf5irXRy1jrml8hz7lw00vId4utI3boG2vtK8vLHlNpl6GgXZtL0GRiVWloRVKbPKFVFtciiWoSR0HFkVBRBFQcARWHN4rDGsVhjZKwRklogzikQfyiXhRcLwyuFQbXCoNqBUE1gsAafkA1D/S8iutfxXlWxfZ7yfZ7yX76kvWknPW4nPUIVMZ+WMp+UMp+UMp5UMK+XwKu8HDulXDuFl9zp4h92xMJD+btQuYtiNtNCPOGVz7DLY/+jZv5jJsQxs0C5q0C1q1C1p0izp1izt1izr0S7vdtePxS5OtJJUgMevq9Kolf9TXPvG2okTyvkQbUSgNrpUF10uB6aUiDLLRBFt4ojWiURjZKohol0Y3iaKg4Bip298BNAoYhBiaPhimim5VRzeqoFk1UizaqRRfVqouE630YIuGGCLghAq4HRbbqI1t1ka26yOudADMQ0aL20ES0aCJbtJGtuqhWXVSrPrpNH91miEYYYhDGWKQpDmmKQ5niUKZ4lCke5W5DAtqSgHFLxFq9fDphS8bZknG2FII9hWBPBRGvRQJccUrDW1Px1hScOQVrTMEYUtCGFLQuGalJRqhSEMoUpCIFIUtDyNLaJOkISQZclNkmzkSIstpE2QhRDlKUhRTlIEU5KFE2UpSNEueipdloaTZamoOR5WDk2Vh5DlaRhVNk4xQ5OGUOTglGIgenyMUr8/DKfLwij6CAEJUQggKCVxQQFAVEZQFRUUBUFJIUhSRFMVlZTFYUk5Ul7Urnzqdfn8aZl49H2fYxtv0dxz7OXRjnLk7wFif4jkmBc0qwNC1cAmsxJ1mhSFco0rV5mRtVvu6LJl+nytctq2eldZitoy80+RpNvkb14d07f7+s5N1OkS6D5iXLFKmLInGZlo974sM25CotEqFFIvRIhBGJMKMRVjTcioYvouFODNyFgS9j4atY+AYWvoWFb2HhO1j4Nha+jYX3VNZ9n6WM7MreyvpdXNseHrGDR+zgEdt4xAYesYFHrOARKziEC4dYwiEWcAg7DmnDoC0YtAmDNmDQqxx+/P1bu2d/7qRteAFf/vTPvcytXtYP9LG32YLtVen2tnDDyV5/RzZ0YHQEhAqH0xJfWV8xNkbFe+OSvUnZ/ozigKI6pGkOGbojtuGYZzoVmE+FtnPJwoVs8VLh+KB0flAt/S6ll/OKwnGpcFzKFy/ki+eyhXOZ/VxiP5XYTsXWE7HlRGQ5FppBR0LzocB8KDAfCs2HQtPBt4zXCIwHAuMhiO/BMx7yDIc8wyHXcMg1HHKuY4P0hyz9AUt/wNQeMLUHDO17d0jUezTVnjshqn2qep+q3p9X7VNV7+dV+/Oq9xTV/rxqn6J6T1Huzyn3Z0GK/RnF/ozcbUq2NyHZGxPtvOVvv+Zu9jHWu2lrZMoKftqFeudoHVloHLLVvLJU9JqKOvUQsi4br0lHq5KRygS4Iq5FFtMsjWqSRDZJI6CScKg0HCoJb5SENUpDG6WhjZKQRklIg/hFvTioThRUJwqqEwbWCgNrhQE1gufV/OfV/OdVvGdVvGeV3GeV3KcvOU9fcp5UcB5XsB+Xcx6Xcx6Wcx6Wcx+WcR6WcR6UuS8Nul/ids/jKhJu7DvF7DuFbrcL2bcL2bd8FbBuFbC85fBNyM0C1u0CsC7s20XsO0XgmhL/vndNyVMFdwOqJD7EflViv2rQ1a7/WbXkWbX0mho3/xrp81qQLKBOFlgnC6qTB9fLXzTIQxrlYVB5OFQeAZVHQeVRUFm0R0yTNKZJGgOTxcBkMTB5DEwe06yIaVbFtKijWzTRrdroVl0UXB8F10fDDVFuxu8YIuGGqDbwXX0kXB/VqovydCKyRRfVqo1q1Ua2aiNbtVFwbRTcPV2IbjPEtBliEEYwDLEobxjMbmhzPNoC8ubhm0gkYa3JWFsyzpaMtyXjbSl4WwreluopBJiHqxUngi2VYE3Fm1Nw5hSsOQVjSMbok9G6JKQmCaFORqqSEcoUhDwVKUtpk6UhZOkIaTpCkoGUZCIkmUhJFlKciZBkIcVZKEk2SpqFAtsgy8bIszHybIwiE6PIxipzsKpsnDIHp8rBK3Pwyly8KgenBPOQR1DmEZT5BCWEoIQQlRCisoCoKiSpCkjKIrKyiKQsIiuLycpisqq0XbW08/nXp3F658EQ3QJ6y7C+ZVqHmbYRln2UbR/jLLzjLo7zHBN856RgaUromha5pkWuGfHyjHh59srKrHhlTrIyJ1kxLp8U16A3Dj7P+n5AsjwrXs7IrvzrX//617/+NSO7EpyjzIpcM6Il3+3TIue08BqD87ArOnhdKle1wFQtME0LTNcCM8BhJjjUDIfaWqGLcKgTDnW1QVfaoOtt0I026EYbdMtHd0WN9yvAb+mpqNlBNu0gYTtI2BYKtoWCbaJgayjYOgq2jIK5kM1OZPMiotmKaLYgms3wViO8VQ9v1cJbl5nsuDu/7p79uYu+4QV8/fM/97G3+tjb39OIdz44Tj+sXNoV+5MjS0S0Dt2qbGkU11bxSkvodc2i7smlKfnBrPKAoj6kaY8Z+mO28YRnPhVaz8T2cykVD4CPCCrL9VG7/JE9lARE0tjLn7RXPvrSLH/UuK6olz6qlj6onJcq54XScaF0XCgWz+ULZzL7qdR+KrWdSG0nUvFMoPtrMG+sxxLrscTqwIcBQNg0xXoksR66WY5AYuuR2CorA64eAb0OT2mOheZjgQ++6ZhvOua5HfGMR1zjEdfoKYf+gKW7hukx1hEHAHFt7AOG5xQL3XN+hao+oKoP5tXv51UH86r3FNV7iur9rMKnELytQfZmL2O9k7pKnFvBTDnbxhyw4YX617bqfktZt6mww5BD0GXitCloVQJCEQuXxzTLomCyCJgsskkWAZWGQ2VhUFkYVBbaKA1tlIY0Sl80SILrJcH14qA6cVCdOLBWFFvUiGAAACAASURBVFArDKgVBlQLn1cL/KsF/tWCZ1U8v0reU9BL3pMK7uMK3uMK3uNy7uNy7qNy3qNy3sNy3tVVQ2W8B2W8+6Ug7v1S7j2vEu694ivXs8G5U8zxrkd9wzPnABesOHeLOXfdMxXe/VL+wzI+OGnwhuFJpdiv6rv9frXUv8aX7Dmo9rq6KwF18oA6eWCdPKheHlSvCG5QgBeehkKVYeAZYJgyEqaIgimjYcpomCIapohp9lLGtChjWlQxLeqYFk1MizYGro327MSj2wzRbUYfJh/ujVFtxigE+ElDVJs+Gg7yTBHgHm366DZ9NEIfgzDEIAwxSGMcOGNwM8ehzHFocxw4Y/C6qsI14PqSZ5XpKhKp30bClkYAT0tYUwjWVJw5FWdOwZqSMcZkjCEJrUtCa5NRmmSkOgWpSkaqUpGKVIQiFSlPQ8rTkbJ0hCwDKctASjOQ0kyULAspzURJM1GyTJQsEy3Pwsiz0IosrDITo8zCqrJwqmycKhuvzMGpc/DqXIIqF6/KwSvzCKo8gjqfqM4jKCEEVT5RVUBSFRBVhSR1IVlVSFIVkVXF7apisrqkXV3Sri7tUC/tfv71afwkz5YNm8xpnsxpmcptmcmHz+TDZyFts1XosTrsSD12pAE32ogfhRLeNRHfNRHHYaRxGGkCRppoIs/UtnNrO3hXOrlTgsXQlEq1fa+2k1vbwa3r5NaBgw5uRnbl169fv379mpFdWdvOqW1n15LZNWSW7/YqEqOaxKwmMatIjCoSs4rEmOBYEf/n31hG3008fzz9/PFMwGNKwGNawGP680fswEe8wIeiwPuyoPvy4Pvq4Pv64PvG4Pum4PtmH8TEZO9XgN9CTEqxhDywhDy0hjy0hj60hD40hj7Uhz7Uhj5Shj6ShTySvHgkfPGE9+IpK+gpPciPGuRHCfKbC/TTkdv9//Z/3Dv/czdj0wvMww/aQGFtHKn3vm59vDj8ryb9CXVuDdWqbGkU11Vxy0rouTkzKcmjJVX0t+yNOdURTXPM0B2zjCdc86nAcia2nc+/SgAAoJL2Ub30kTWUCABJXZpP3LdJQCSNu/pJ/4d0K25X2XB90Lg+qJcu1e5UnCscZ4rFM9pAAgAAL+dP5fZTGQULAEDQgFNmP7lCwQAA5q3tRGY7kdmOZbYTme1EapOXA0D53InUdiKdwwBAPF58IrGeSKwnYuuJ2HoiAllORNYTofVEaDkRmEHHAvMx33zMNx2BvMHg/mC2ccTWH7L00kIAKJw4ZOoOmfpDhvaQrj2gaw9p2gOa5pCmOQSDQVG+n1HsT0r3xsW7w4LtN9ytAeZGF22NTFnFTbuQ446WkcWGN+AEwlzUYcon6bNw2lSUJhGhim9VxrQowDxEwOThTbLwJlkYeGl8oyzEnQfpiwZpcIMkuE4cCKoVB9SKntcIn9cIn1cL/asFz6oFz6oEz6oEfpX8p5X8Jy95T17yvR5XuK8K9Qz4j8r5D8v5D8v5D75R5sW7X8YFy3GlxEcx934xx+veN0o598D2uC9D4j8qFzyuEDxxn0/2rgiBh//f7v0D6nzJ3erlAfWKgHpFoFeDW1CDIrhBEdyofNGoDIEqQ6Dui4vAFf9ImCoSpopqUUW3qGPcVJ4kqN1haNXGtGpjWnUxcH1Mm/t8AHiAH4MwxiBMv8PoA/wnhtg2Q0yb3sMQi/CBNMQijb7iv5k0YMxXSfgOeGraK9lzBsJ9HgKEd98YkUrwnK8mWNMI1lSCJRVnTsFZUrDmFIwpBWNIQuuT0foktDYZpU1BapJR6hSEMgWpTEUq01CKdKRbBlKegZJnoBSZaHkGWp6BlmeiFRloRSZGmYlVZmKVWVhVNk6dhVNl49TZeFUOXp2LV+cQ1Ll4dR5Bk0dU5xPU+UQ1hKjOJ6oLSBoISV1AUheS1YVkdRFZXdyuLmlXl3RoSjrUpR2ask7N0u7nG37x4xxrOnQ8HTqeAR3PgE5kNk1kwSazYVPVyKEpvn2avzAjXJwVOeZEDorYOS9Zmpe4qFIXVeZqIo5XEtmVpCtVJM441x6cVKG07VaS2JUklq+M7MoPHz58+PDh+8Ul7/YKPK0CR6vA0Srw1AoctQJHHWOb2/73/9k8PDL2+O7Ek7uTT+7OPLlLeXKX+uQO0+8Ox++2wO+m5NlNqf9Npf9Nrf9Nvf9Now9CfKL373sfGdmVxPhEc8Atc8Btc8BtU8BtQ8BtXeAdTeAdReAdScAd0fM7/Of3OM/vM57dn3/2YO7Zg5lnD6b9HmgIxGf/9n/YO/9LD3PLC/j6538e4Gx77IBecXcczNUj0ca2+dhhv1DJ30+MOprBNhTT83KmU5JHo6IHg4K7oDgpRX1M150wDacc4xnffCaynkullCAAqKR/ULk+aJY/6lc+GVY/Gdc+84eTgCg6f+2z8TsGX6tu7mCAtQBT4fqgcX3QLF2qly5UTlUlAFRSz5WOM8XimWLxVLHwnXksAGBHPC/lbooKAKignMrspzK77/gUXL/yErudiG2eZlhPhJYrV/MM8zHP6MY1HnONxxyQQV4EAEWTR2z9EUt/xNIfMXWHIIbu0D230B7Mqw/ACcS4ZHdUtDvE3x5gb3bT19upq7iZZdTEUuuYo3FooXbQ9rLPWtJlLiAbsvG6dIw2CaGOh6tiWpTRMEVkszyyWR4Bk4fD5OFNsrAmzxwCKgtplIU0SF80SF/US1/US4LqJYGeTgTUiANqRAE1ouc1Iv8aoX+N8FkVSPCsSuhXJXxaCRJ4PXnp9thXxTWPKvjfKvco+wbv4R/wXJP6uEL4pFL4tFLkVyV+Vi12nypwrwjJA+rkQQ2KbwR7NSqCG5XfewGCKl9AwSS4Lz8Ng6nDYepwmDqiWQOeW45q0US1aKJbNDGtbrGtmthWbSzcSxcLvwpDLLhPv9qJm+K+E3vF/bE4N7ABhjiEL6Mb0hiHNMajPNBG8ER0Itp8DdZ8NVH4Ee+Ncsk4Swre6svTBmsqwZrmIx1v8ZyaNqfiTKlYYwrWkILRJaN1KWhdClqbgtamotSpKHUqSpWGUqWDt0SgVRkYZSZamYFRZaCVGRhlJlbllYVVZ+HUWXh1Nk6djdfk4DW5BA+iJo+gySdq8kkaCFEDIYJV0BSSNYVkTVG7pqhdU9zhVtKpKe3SlHVqyjq1ZZ3apd0vN/wSxrnWDOhkZtNkZtNkVvNkVvNkdvN0TvN0NWpomr8wI1iYETpmRQ6K2EkRL81LXPNSF03mosmWm4jjlSROJYlTReZWkbnVZG41mTvBW3yRUqmy79W0c6+Q2TVkdkZ25ekfPjKyKysJzEoCw9c429r2H/4Xy/DoxJMHk08eTPvdn/W7P//sPu3ZPab/Pa7/XcHzO9KAO/KAO+rAO9rAO/rAO8bA2yBCQpLvl34zJiYmmYPumoPvmoPvGYLv6YPvaYLvKYLvSYLuiQLv8QPvcwIfMgIeUgMeUZ4/mn3+aObZIx2J+Ozf/pu987/4nl8Avv75n19xdr4xyN3dYS9vTi3IGesi/s7slIuAUdVW8cqK6Xk5Mykpo1HRr4KCux49IcRnDlM1xwz9Cdt4yjOfCa3nIvuFlIoHAMLY0keN66Nu9ZNh9bNx7bN544twJAmIYgjXv5jXN3ujvKs7ST26L6b1L4LhJCCKVBfl3fjZtPbZuKav9X6wWadf+aRb+ahb/qB1fdAy8ACAf7d0oXaee5ypnGcqx9koFACgShUV5/2nwYMupePMQ1kJAC+pZ/LFM/k8DgBwwwtn8gVw7H5UzJ9J7WdDDQDQgC33bCyfA7OxhAvzfjAeJwJTIS/1bMEIj/kzGADADJjkxd4PhsxMGI7Gu+O9G/y7Fpm6IyZn+hkQl18V5/kO0Zh47y1/e7AfDgCt9dQ14twKZsoFH3M0DS/Uv7ZX9VvLu82FnaZ8kiELp0tBaxLb1HFwZUyLIrpFEdWijGpWRDYrImAK70wivEkW2nR1XxU4k3DPJ+olQSD3fOKa5zUgEci/+sozX1XX+FUJv1Xp9rRS+PTlFc81Rdcz8xK8NUHw5KXg6UuBN05+lcJnVWL/aol/reR5reR5nTSwXhbUIA9ukAc3KF40Kry7eA+V1/f3HHio3XcewNRhMHVYszqiWR3R4k6Cd8U/Gq6Lgeti4LpYuC4Wro1t08b5QujiEHoPz94cafDswcETxaYEj/jf5dndo76V4JHohTYmoo2JGJOvJIwpGWNOxpiTsR64Kyk/koq3+PLcJWdNI1jdl7ESLekESxrBkkawphEs6QRLBsGchjen4UzpOFMazpiKM6Ri9ak4XRpGn4bVpWF16RhtGkabjtGmYzXpGE0GVpOJ02RiNZlYTRZWnY3TZHlk4zTZeE0OQZsDPhO0uURtnkc+SZtP0kJI2gKypoCkLSRrC8jaQrK2qF1b3K4t7tAWd2hLOrSlndqyTl1Zl7asS1vera3o1r3s0bn2vtzwS5jiLeS1zoLy4XMQ+Bykba4AQalDj8wK3JMGithJlbpoUhddtkyXr9AVqwzFagt5sq6DX9fJr+vk13fx67sE9V2CKYEjLK1as3hQ38Vv6BI0dPHru/gNXfyGTn5GduXhHz4ysivr2jl17Wxfkzw7/B/+1jo+ORXsNxXiNxviNxfiRwv1Y4b5ccL8eGF+ojA/WZifIsxPFeGni3hiiHxiinwM8v3GjOxKYkrqN1vMUU/NUU/N0X6G6Ge6KH9NlL8iwl8W4S+J8BdG+nMj/dmR/swIf2q4/3y4/2y4v6G749m/+5/2L/7Sz9n2An7787+85u1+Y5C7u89d1To/a52f1Y7PioVPMttHkfmSb7xg684Y6lOq4nRWejwpPhycX6XpTljGU675jG89F9kuJAuXtMFEIILKWv6kW/lkWPtsXPts2vhi2fgqGkkGohiijS+zrQA4MG98EY0kAwB5FnwXAEJHtswbW71RANBqMG9s9kYBocObpvXPpjV9LQDUsj8ZVj/qVz7qVz5whhKByHn28qXWdcl+nejevTapNEvnY00A0KRSO8/VNBwA4Mac5yqHD6eq8urUA27Uca5cPFfIKEFAAkl2rlg8l1NxAIB7u3D+tvF6KgDcEDgIm6PYziS2s7n+eADAvrEu4cKAgL4lkeVUaDkVWk4FsxgAwAyYT/hmeTEAFE+f8Ewn3CkMAMQj+cdswxGbN+0PAIUTRyzu9DMAAF5MvVUfzDImnwCx9ZS9EeFOWzFwD2Hooq+TKKvY6WXk+FLzyGLDm4XqV7aKXnNJlxlCNmYT9BlYXTJCk+AuhDKmRRndooxuUUY1K8BORMLAVCgiYOB9tvKwJvfdVSFQeQj02uqTpxluQVfxcAv8Rq0ksFYSUCsJqJU8rxX/QM13qt38r1yPzXXPq8E4iQNqxAG10sA6aVC9LKhBFtwge9EoD4EqQqDg3WTKMJgqDOa+wwAU4SOyWR3Z8nu0USB3DLTRcF10my4GhNDHIvSxCH0cQh/vkYD0gdInoAw/YkxEmb7fg/8utCkR7ftho1cSxpjsZvKVgjGlYE0puB9IxVmufNuAb6UTrskgWDPA26SJ7l/UyCBZ0sEf1SBa3PdOE0wZeFMGwZSBN6bjjel4QzrOkI7XZ+ANGTh9Bl6fidNn4nSZOF0mXpeF12Xhddl4XTZBm4PX5RB0OQRtDkGXQ9TnEnS5RF0eiKTPJ+lAELIOQtYVtusK2vUF7bqidl1Rh76oU1fSqSvu1JV06ks7dSWdurIufXmXrrxLX9Gtf9mjf9mjr+zRV/YaXHtfbj1LnBcvFaPoRSh6MYpejKKXYuilGEYpllGLn2rEv4MSxpsI4zDiBIw00UKabGmfam2fam2fhnfOtHbToL2Spl4JrO8KReKKyqjVOw5g/VJYv6SlX9LSL2nulzT3SUrqO/74triSunZYr7CpVwg+N/UImnoEsyIn/D//nX12di42fC4+fD4unBYXzowLZ8WF8eLChImhoqQXsqQXyqQX2pQXupQXhpQXJg9iZpb3jxMzs77fYkkNsaSFmNNCDWmhhrRQbUqoOiVUkRoqTQkVJ4cLEiO4iRHsxEhmYiQ9MZKaGGkcGHj+v/7N+4u/vuLuegG//eVfhgR7vt7w997w9/a4q4uDBmKbsqVRUlfFLS2m5WbPpCSPRkUNBgZ3PXxCuHEH8Q8/wf7zrVaG/pRtPONZzoW2C8nCpczxgfE6EYigsVc+61c/G9e+mNa/WDa+Wje/ikaTgWiGaNNQDwD1vK/WTZD7pefdr5bNr6KRJCCKIdIzQoFrj9DhTdPaJ9PaJ8PqR97bRAAgTKx80C1/0C1fapcvx2EAAFNrXRfgQLN0oaG7ZxiapQu1l1NdBQBVtAuVghIMAJW0C6XjgjGYcP2rEkiy8xEoAEBV8oVz2cK5TEoJAhIIEmU5AJRTzqT2M4n9TGJXlgNA2dyZ2ObChQFls6ci66nIeiqcxQIA9pX5RGBWlABAycwJ33QyUAcAdXKu8QRcd+qrBYBaGZs37Q/EtXGOaJpDisoODQIeE6yjImEaEF0+vtlN3yDPr+JmVpCTrpZRR+PbxZpBe0W/taTbDOkw5hANmXh9KkqThFQntKni2lSxbao4uCquTRULV8W2qqJBLcqoFmUkqFkZ0ayIcE8vFOFeTYrwJkVYkyKsSRHaJL8CvRLi1fitF42ybzX8jnrZi3pZUL30Xy+4XhoM9sCdBDn4ExRhTcpwmMp7vB/Voo2Ga6PbdF4x18W26WIRP+Zz+K+PQ+rjkYZ4lJv7yB3tPmBP+k4y5hue3TfWlIw1pWDNV37nED7lmwN87Hdw5hScOc0X3i3di/CtDILlW55dfObvyCJdySZZQZlkaybJmkWyZhGtWSRrNvgBonuQSTRnEU1ZRHMW0ZxFNGUTjFkEYzbRmE005rifDTlEQy7RkEsy5JENuSRDHsmQR9LnkQx5ZDcI2QBpN0DajQUdhoIOQ2GnoajDUNhpLO40FHUairuMJZ2G0k5DaZehrMtQ1mUo73ar6DFW9Bhe9hpf9hor+4xVfcbqfmN1v3F5/+u94AyGdKm2XVBJ5FWReFVEXjWJV03i17QLatsFde2C+g5hQ5eosUsM7ZE09UphfbKWfjn8laJtUIV4rUa8ViPeqJFv1KghN7piPSan0eQ6QQ+pQSjP4Dsq1JAK9QakRL1Rol4rUa8VqNcK1KACHCAHFXTZKuqX/7BIZ9CyU+jZKczsFHZ2Cj83hZ+XLM5LluYnyfOTVPlJ2sIkfWGiuTDeXBRvLYq3F8bbi37M5h4kLBQnLBQn2IsTLMWJ1uJEY3GysThZW5SiLkhRFqRKC1KlkDQRJE2Yn8bNTePkpnEKsizv3gX9/d8dXP4V3P+DgN/+8i9vhe9BQz42GMv/ytkD03DGMZ3zLRci26V04YPc8VGlpAUDQDXri371i3Hti3nji2Xzq3Xrq2gsGYhmiLY8edgCefLgftcnJAZGKJDca/hq2fxq3vji8dm0/tm49tmgoYUAQA3ro37lo275g275wwQMAGAarQvshEbruvTk4VKzdAmesVAvXaqXNGAe1M4LNQ0PAPhR5wVjMAGIoDAc50rHudJxrnCcKxznw2AeHOdyhycPUlU5AJTPn0nt5xL7uU8ezsQ2ZRkAAEACTuTJg+VUYFGUAkDxzAnf7MmD6YRrOuEYT/pqAaBWzubN+APxbZwjmuZoTnX4ihgLBE6gcTHA8zECZ6uHsdE+v0aYXUFNulrHlpqGHXWvFyr7bWU9lsIucx7ZmEkwpGL1KRhdElKTiNQkIjUJSE08QhuP1MQhNHEITVybJhbuFgNXx7SpY+DqGLg6Gq6OhqujWr1UUa2qSF8tqshmVWSzKuIbsCvhMGW4b2N8SuOh9OHeGAr97xPm6VYYzPMTQy3qyBbwv62JaQN/hE4Xh9DFI/Xx4M7dh+8RfaIbuETjGaOvScIYk9wLNZ61GhDOnIwzp/4O7/7ax4+O0/GWdM+6zQ+lXY2/PahPJ1jAI/o/kEn6gSyS7fdkk38gp/2a3HZ7Dtme027PabfleuS123LbrTnt1twOW267NYdszW235LZb8siWPHDQbs5rN+e3W/LbLfntZki7Ob/DDGk3QzrMkA5zgZsJ0mEu6DQXdJqLOk2FXeaiLnNxp6m4y1zcaSrpMpd0mUq7TaXdprJuU3mPqbzHXNFjqug1vQT1mSr7zVX95up+U3W/uWbAXDtgrhkw174yr7z/zT+mhKd0Yoa1sD45rE/e3Cdv7pO39Cta+hUtAwr4gAL+StU2qG4bVCPfaFBDWvSwDjusx40aCGNGwjsTaRxkJo1bSOMW8oSFq91NLGixr122T1raJ8wdk+b2STM4cJswd0yAG00g8oSJPG5qHzeRrxjI4wbyuJE8buRqtlF3/nGZJ+BVFPMrigUviwUviyWVRbLKInllkbK6UFdbqK8tNNVCzPUQWwPE3gCxN0IcjfmOxnxHI8TD/dLp2eJshDihECcU4oAWLDYVLEILrI0F1sYCc32xqb7YUF+sqS1W1ZTIakpkNSWi6lJRdakU1mCaZyT+9J8OLv/bkOC9twjAP/3lX0bEByPig2HRwYjoYNjDxlxdnl4YR8vKimngdUpRUa/c84bbiP/0U9O//491f/P3L8tgLJbxnGu+EFgvxfYP0sWPCudH1dKndzAAAJK6NJ+N61/MG19n4cl9ht9Eo8lANFO0+XUWDgAAeXbzq3XzN9FoMgCQZze97/5mcY8Zos2t3mgAiGaINr6ar3w2rYOF+DTZDH7LR93KR93yR3celj+AedC4LjXg+QnXpcZ1qV7y0lQCQCXtUuW8UDmXyRFA8OCyUk4JBoCgwWWF40LhycMIFACABKLsXL54/rYRAMIp8wvn4CrTG/uZxH42158AALg3tnOR7UxkPRNZXdgwIKB3STCLBQDsgOWU75k98Mwn3GkMAABFUycc4wmHP+MPAEWTJyx3Ho6pmqM51eG0XJwFAAAApA3sDnC2epib7dR1/NwqemoZ/m6pacRZ92ax6pW9rNdW1GXJI5tziMYMvD4VZ0hB65PcdIkoXRJKl4TSJSDd4pHaeKQ2DqGNd9PFtXlp49p8T7FeifHVek10qxoU9Y2WH/NdzIloVvv2JrIF9AeLP+pI8O+0aqJbNdFwTQxc650NxCP13mP8RLQxEQ2u1Zi9rhbif8c3h/apePMPV2DSwKX5a3vwK3+417ZlEG0ZJLdMki2TbP8WuN3HH+zTs8ggu1v7Ndkdv2fBV46vziu5Xl0LuV0LeV0LeZ0LeR32vI6FvI6F/E5fdkinHdJlh3TY8zvdIJ12SIctv9MG6bRDOm2QThukwwrptEI6bQVdtoJOa2GntbDLVtRlLeyyFnVZirqsRd3W4i5LcbelpNta0mMp6bGWdltKeyxlvdbyXmtZr6W811rRZ63os7zss1b2WSr7rVX9lqp+S9WAtWbAUvPKrfaVpX7QUv/aWv/aqnRc5DX01jS2MVXbXbNW7JgRPWJAD+vRI3rMiAE7asCNGnFjRvw7E2HcTBy3kCYt5Elr+7Stc9reNbvQNbvYPefooTh65x29886+eWffvFNiOcwoQTq2P/dRnf20pX6qs5/q7Kc5wcEAzTngHjsGqI4BqqPfo2/e0T+/6OHom1/sm1/om1+QmN/jHt9YlcglsEZJc6OsuU7RUqdqqdPA6/TwOkNbnQVRZ0PULqBqHejaJUzNErpmBVO16gvtgfle9Rqm2oWtdmFrnZhaB6Z+EVlvQ9XbUA0mZIMR0aCDN6jgDSokTEvALE5PTw2MojKyDj/8N3D/D0YB+Ke//L+jksNvjEgO6LwdF31Z9doIr2R8v6b0v/3H2r/9+8qA6J4RzibbdM6zXAhsl+KFD1LHR7nzk9L1WbP8hfM26WqpBm64mj1sfrWA+333I7nX8Jv1B3lgijZ/s+iZPutLyT36r6b1L8Y10GfD6ifu28Sr94HEDtUHjevDO3cePmiWVjsiAAAAgl+vgG1QLV2qnJpKAKikXigdFwrHhYKKB4AEkvyc7ru+FE6hLZ4PQwEgPCHIc5ZiyD1jWMZfnZpOwInOhFYX1rulXsm3nPJnsACA7Tedck2nkz3xAAAAITPjxpNrp6a7nSz9CZM78wyIh7OP59VHs8qDKfkBthwAAEQbf6efvd3N2CTPr+FmV1GTy63vlqBvwdnDQmmvraDLkkc2ZRNNmXhjOs6YitWnYPTJHkkoQxLK4FsI71p5/HXX1lV+qO2aWPdajTamzRsPTXTr74pp1Ua3aqNbNVHXaK8+AweBi/7Xm+TjqlttujgkWAV9AsqQiAZX503JWFMKeNnlt6vt1lT8tStwfsi9oyd6f9H6d5DsmR5Z38km/2vl/LH2hR/K/e8B7tC/s+gr/xudbhCvrkVI12J+l3sA6XJAuhwF3Y6Cbgek2wHpXizoWizoXvCxWNC9UNi9UNizUNhtL+y2F3YvFHXbC7vtRT32om6PLltRt624x17SbSvptpX22Et7bKU9ttIea1mPrazXVt5rK++1VfTZKnqtFX22l/22l/22yn5b1YD7uWrAWj1gq3llq31lqxu01Q3a6l7b6l/bGl7bG97YB1gbSuvuo5CM0mqoWLtkWL5QO87UjjON81TjPNM4z7TOM+3SuXbpXOc617su9K4Lw/KlYeXSuPrBtPrBvPbRvPbRsv7Jsv7Juv7JuvEZVFBDuPz6f3tf2n7Xp29YQeufrOsffXUF3Dta3V7l8ta5vA0ud5PH3eRxt3ncHR53V8DZFXAORKwDEetIxDoWsY5FrJN/nVMR203MPhGzT8ScIzHnSMI5FHP2Rbx9AW9fwNsBSSRmDv9d96uE2zfsaydC2wdvBcYkh8A//eVfxiSH3xgVH46KD0XszQX6snjIjKhlRkT0PXyC97Sh7m/+vjIgqocwbKHrz1nGC575km+9FNk/SBc/yp2fVK7PmuUv2tUv+tUvxvWvxvWvzMJi0QAAIABJREFUpmuH/1/NG19NG99v/M3D52Pr1xjXvxrWvoAXv+pXP/veHqFxfVQvfVAvfVAvXaqWPqiWLlXOK0ovMAmOC8XihQy8H3vhXLZwLrV/S2I/f9MAAA0qic398x4i27nIeiayngktZ0LLmcByKrCc8s2nfPMpD+T5zSiO8YRjPGEbTlj6E5b+hKk/ZuqPmfoT5v/P3nv/NZU9+t75O+5zz33uOfdbzvRx7nGe8/I7YxedccZxqh2xDDOjolgQRR2VltBDEakiPSFAQoDQaxotgfQGCb2lUENCEvD5Ye0kOw2CYhld79fnlVfY2Xtl702y3llr7dLYX9g4UNiApKB+oKC+P78euEGRVS1Pr5SFnMVgzpDjSgS4Il5Eft/9HG5IZvfNx11XUzouJbJ/i2eei6GfxradiGg7Gtr6y4PWHxE9NH13t+m7u02H7jR9e6fx25DGb283fnMbDJw2HrwN3NB08FaT9c8m19g63JFjZm4hOXir+eCt5q9uNVkDzNFw4Kb1YB5788J26Gf9/hv2yt3HJftBIyCoHukdsg8M2IeCXfN1cOPXYENuN39zu/nbEORwne/ugmFY6xWq/0TdxuA+/Yf79B8fMNbNTw/sVb9dAKFuw/w5lPlzGPMX73IkzPHXejjz6LqJYB6NYLnm2MZzPHKdgErfHqTqRzSABOcYbMdJbMcpHPsUln0Ky/bFsk9h2adwLF8cCzz3xbF9sSxfHJLTWNZpHAjzNI7ph2WexjH9cMwzUcwzyCPjTBTjbBTzXBTjXDQDPJ6PZpyPYfwaw/AHiWX8Fsv4LZbxexzjt1j673GMP+IZF+IZFxMYFxOYlxIYlxIYAXjm5URmAJ6Bzetp6FSeup78xTf+H//rO3Q++eLwJ18c/vSLw59+efjTLw9v+fL7Ldu//2z7D5/t+OH/7vzxv3b+9F+7ftq6+6fPd//8+e6fP9/zy/8HsveX7QeO7NiE/GLL6b//j0P/geS7//M/vvvb//P93/7n93//tx/+8W8//vN//fje//7pvX//+f1///mD//PLh//n6Id/O/rR349+9PejH/3j2Ef/OGrLx8iTXz76xxHU9F8++scvH/3j54/+/tOH//jxg7//8P7fvn/vPw6/9x/f/fPfD/3jf3/z9//34N/+7eDf/u3sp//EHf25WzRObFamVijQwUzPGGyuSAXeoIDIHlFkeSRhbUF37RM2Mbnlm33RH3wY/B//uPbfu8JPBhTF5XOf1inzGlRFTYOEluGS1uGy9hEKc5TKGqvqGKd1jtd2TdT3TDRwJhq5k43ciabnSiPHOQ09E/U94/U9Y3XdY3Vdo7VdozXIydUjtI4RGnu4mm29IAdyTY6hShDkck9I1U+hq8BpDeQ2x4Cx5TZleZsy7hIGc6m6rBVxQKldAMj4AbFpgNA0QGgaKG4aKGocQATQ0F9Q319QryioV+TX9efXKfLqFLlI+kGe1vU/re1/WtOfU9OfU6PIrpZnVsrTKqSPnqR9itl/Pl0QVcQPz+99kMO5k9Vz83HntRR2QCL7t3jGuWjEDcdCW39+0Pzjn+DSys2H7zYdCmlC+pduN35zGzQXrJ1LSMWKNCNAB72DGG6hxGD1wcFb4EBMl0MtwSH5Nxu/surBUQxI1mhS+IAmBdJNZNODbXC4yVOs6wnGisGxQK2H7oJGAzhg33bfAoZjmD8+XD8/gYQi+XnthLF+8S5HwlhHwh1y1JtEsI5GsF1z7LlyPHL9nIjssAdrD5DBSVzHCVzHCVzHSXSwHadwHadwHSdxHadwHaew7FM4ti+OfQrHPoXrAE98o9i+UWxfHMsXxz4NbBHFOo1jno5inY5i+UUx/aKsqohmnolinIlino1mnotmnI9mnothnotmnI9h/hrL9I9h/BrL9I+1eiKO8Xs88w8giQQmkMRFPPMSngkkEUfkN/aMcuVqW3rRUaj7FOo+haavX8Pr1/AGtPwBLV+pEyh1QpVOqJoRDc6IBmfEg7PioVnJ0JzHDLtOnF0vM24yaItObA36ufeRgAzNSEGGZ2XDs7LhOdnInHxkTj4yLx+Zl48iUYzOK0bnKczRVKrCKfaxB6ckk6XopJClKRTpowpZaoXsMVWRXq3IovU/qRkAhihsHCpuHi5pHS5tHymnjyKSYI/ROsdqusZru8brusfqusHjWF2XNcjEtVLbNV4LHrvGa5CM1XSO0TpGqztGqlkjVayRKtZwJWvYfmk/xlAFY4hCH6LQByn0QTJIOxLwq7+0dQC5VAY4ha1JgaS5n9DUTwCPTf1RFzCYC1XFyG///sIGRWGDAqn36xX5dYr8OnlenSK3VpFbo8itUTytUeTUyHNosifVsifVsuxqWXaVLKtKllUly7QmA6RSllElz6iSp1fK0qmyVIo0pVxy0w+DwWA+Dm6KKOh7mMO9m91zO73reir7ShLrYgLDP6b9DK7NN6L1eFjLkYfNP91v+uFeI9KnFNJw6HbDt7cbvrlV/82t+oO36r8Orvs6GBmR/uomkgNBdQeCwNH6DV8FN3zldMSO9cj9r4Obvg5u/vpWM7jjmIsbmr8ObgK9TDYx+Fyv9ble63O9BmSfQ8Dwg+uU2n3X6/bdqPW5UecTVI8cXIS0G9bUAyIJMNjQ8u2d1m/vth6623YIZYjD7g3B8NYQXuoBaUB4LYnwDUpiU/WwaZLAukgC23ECixjiJBZpT5wEhsCyTmKBKtinsCxr88LapIhi2toTp6OYflGgScE4E8U4E8U4G808G8UAngBxaEwAScQBSTD+iGf8Ec+8kMC8CIJnBuCZAYnMgETm5STWlURmYBLzajLrWjLrajLregrregrrRio7KLXj5uOO4LTO2+ldIRnddzJ77j3h/pnT+zCXF5rHD88XRBQKI4tE2GIxrlgcRRBHEyW2xBAlMSWS2BLkMZYkiUX+FIMnsSXi2BJxDFEcQxTHlohjiaLYElEsURRDFIGzj2OIwhiCIIYgjAHXqii2hR9dzI8q5oFEgyuiFvXhivqiinhR6KtoO6XInuhiXgyBH0vkxxEF8SXCBJIIXypOKpMkkaXJZFkyRZ5CkaeA9oCLFex6mJoxJJdLk8nS5HIJSJItjge8JpeLk8slyWTpowrZY6o8rVKRWd2fRRvIqR3IrVMVNA4WNg0VtwwTW4dJbcNl7SNkxiiFOVLBHKGyRqiskUrWCJU1QmWCDFOZwxXMYao1FaxhqjUVTA9hDFNA6MOgri9rHyxrU5W1qkitKlKrsqRVWdKsLGlWEq2PBJAmJbqfp7BBUVAnLwCXP6qR5tZIntIkT6slT2kg0qc1khyaNKdakkOTPKm2Xz4vq0qSVSnOpEoyqJL0CnF6hTitQvSYInpcIXpMEaWSRalk0SOyKKVclFIuTC4TJpUKkkoFSaXCRCQifJkIXyZKLBXhy8QJpeAsE3FCiSiWKIwuFmALeeF5vQ+ecu9mdt9K77yR2nElkXkxnv5bTPs5XMvpiOYTYc1HHjT+/GfDD3frD4fUHbpd/82tuoPB9QeD674Orv3qJpIDQbX7b9Tsv07zuV6z/0aNzw2azw2az42a/UhqDwTV7UfHNuaMnPzVuP8m6OEBZ3hZz+ZFTtxt+upm04Ggxv1BNjHU7LtG22c7wSKwyh77WReuoYHbIey9VrMXGXau9wlq2H+z8QC4b4GHWOXRDNR1EJwwfKcV3MbAelkI+mH7/W3s+eEBc938+MBde8Jt7BZhofOLp7g2KdYNIhI2OkdfON66JKLDnkgkJyLtz49jO45jO6y9UkAn7BNY9olI9kmkn4p1MhKMT7BPYlmnkOesU1jmSSzrFJZ1MpJ5Css8hWX6Io8MXyzjNI7ph2WcxjH8sIwzOIYfjoF0PeHoSNdTNP18NOPXGMavMfRfbaqIZfwex/wjjvFHHONCPPNiPONiAuNSAuKJy4nMy4nMK4mswCRWYDLrahLrWgrrWgo7KLUjKLXjZlrnrbSu2+ndIZk9d7O5fz7pffDUaogCYWSRKLJIjCsW4wjiKKIkCi2JEkdhECUxViW4RBRDFMUQhNEEUTRBFE0QRhOEKCUgiSoWRBXxkcukAjEUWq+cDaxQgLrPQoHzXRgcVcGLLubHEvhxRGFciTCeJMaXisGBSclkWTJZDiTxqELhGqRzaUpnSCwTJ5aCiEDwpSI8SYQnCVER4UlCfKkoqUycVC5JpkhTK+SPK+Tplf2ZtP7sGuXTWmVuvSqvYbCwcbC4eYjQMkRsGSppHSa1DpFah0pbB0uRR1Vpq6qkVVXSoippUZFaVCTwJ2qiQxwnEptVxGYVoUlV3KQsbrL25IDUKwqsPTl5oBunVmFLTo08p0aeg/yol2RVijOoovQKYTpFmEYWpJEFj8v5j8mCVLIglSwEeVQueFQuSCkTpJQJksv4yWX8JOQODTx8CS+hhBdP5MUTeXGEvtjivthiXkwxL6a4L7q4LxrcPAO5jVJvZAEXm98bkd8XUcCLLOBFFPAiC/gRBbyIAn5EAT8inxeWxwt92vcgp+9eNicko/tmaue1FPblRObFeLp/TNtZbLNveNOJ0Iaj9+t/ulf/fUjtd7drDt2qORhc83VQzYEg2oGg6gMOJ8TR9l2r3ne1eu/Vqr2BVXsCK/derdx7tQpk37Xqvddo+66D1Oy7VrPvGnIpIR/kUqPWn/NITd104GbTgZvNX91sPnCz2fpn4/6gBp/r9T7Xa32u1ey7StsTWL37StWuK5W7LlfuukwFF4vd5ZKd9unggh/IzdSsh6tab4fp9lpDHgxx8HYLMMS3d8Ct0IAhrDdBczaEd3rYsCFYXhnCbaeTV4Zgu+bFJeGlJ9xK4piDIUCbg30iko0oxCoJ63RkZPsklnXCaoiTkUyQU8gj42Qk4xSW4Wt99MUyTmMZp60j2Gdw9DM4xtkoxpko69h1NON8NOPXaPr5GPqv0XT/GLp/LOO3OPrvsYw/HIYlGJfwzADrsMSVRNaVJFZgEvNqEutqCutaCvvGI9CM6AxO67oN2hDZ3D9z+h7k9oXm8cPyBRGFosgiERYYolgcRRBHOTYjnA3hXg9OhhA6GAK0Hor40UV8uyGQdoPNEH0bMATSjODFFPNjiYI4ojAeMYTEagg5YogKeYoHQ2CmdEuOGhDiSYKEEkFCiSC+hB9fwo8nolIiSCAJ8SRRYpkkqUySQpE+qpCnVSoyqvszaQPZNconNcqndarcelVevSq/QVUA0qgqaFAWNigLGgYKGsBgLOiZQapyJLX25NbKc2vleUjl3p9X22/tu1c8rVU8rVE8rZHn0ORPaNLsaml2tSyrSpZVKc2slGZYk06VplOlaVRpWoUkrUKSShGnksWPyOJHZFFKmSCplJ9Ywkss6cMTehMIvXEEbhyBG1fMjbUmpogbU8SNKuRGFXKjCji4Ag6ugIPN50Tk9UTk9kQ87Q5/2h32tDs0p/vhk64H2Z0PsrvuP+n6M7v7z6zue1ld97I672Z23snovJPZFZLZFZLRFZLRHZLZHZLVE5LFDcnihGRxb2dybmdxbmdybqVzgtN6bqR2XU/pvJzIvhjP+D2m/XxU65nIppOhDcce1P1yr/bHOzXf3645FFx98Gb1V0FVX12v2n+9at+1Kp+rlT6IACr3BlbuDazcE1i550rl7iuV1vs9VOwOqNh9uWL35YpdV6i7rlCRK21cqdpzxfYzv3p3YNVu8KP+Gm3v9Rrbb3mfG437gxr3BzUduNm0P8iWRp/r9T7X6/Zdq9l7lbY7sGrX5cqdARU7Aip2XKLsuETZfpHsMZfI2y9Rtl+i7LhE2RFQsfMydcdl690xr9bsuVZrv/eZ7cJ27oJc1Ci4+avg5q9vtXx9u+VgSOs3IeC2aO2H7rYfukv/7h79u3vWu9zYb3fD/H69/HDfnTDcxq4QllN+fujsDLfx2NRwlMqRMPZLirciCe+wJ8IeoI1jkTaXgCcdtufHI9jHwVFSEazjEczj4Uzk4CjrYbInwhnHI5gnIhgnwhknIhgnIxknIxgnI+inIui+kYxTkXTfSLpvJMMXSz+NpZ/G0sHBTn44+hkc/WwUHTnSKZp+Ppr+azTiid9i6L/FMoAnLsQBTzAvxlvHrvHMy4msy4nMwCRWYBLrWgr7Wgr7RmpHUGrnTaQNwbmbzf3zSd+Dp7zQPEFovjCiQBRRKI4sEkcWibHFYmyxGEeQ4AiSKFQQSRAk0URxNAEdUTRBFEMQRxPEMaDpUCxEHpEIoooF0UWCKCT8qCJBVCEfV8hDB1vIwxX04Qr6sAV9WPuTXmx+Lza/F7zkEMQToA0hiCMK40pEwBD4MmlSuSwJGIIsT6YoUiiKRy7BTOqWHARA5McTeLbEOYXIjyfyE0iCBJIosVScWCZJJktTKLJUquIxVZFWqcioGsisHsikDWTTBrJp/U9qBrJrBrJp/U9o/U9o8uxqeXa1LKtKCpJZKc2gIkmnSpySViFJr5CkU6VpVIm9rqdK06nSxxWSxxWSxxSJrT/nUbk4uUyUVCZKKhMllolsnTmJJCGeJEwgCuKJgjiiIJbIjyHwYor6ogrADVN7InO7Ip92hed0huV0huV0huZ0PnzS+fBJ58NsUOl33s/q/DOz414m+24G+046OySNHfKYffsx89ZjZvAjxs1HjKBHjBsp9BvJjOspjOvJjOvJjGvJjKuJ9MBE+pVE+uVExuVExmWkbcu+nMS+nNRxOakTPAYkdgYkdgQkdlxMYP8Rz/othnk+qt0P2+Ib1nT8Qf3RP+t/vlv7/e3qQ8FVB4Mqv7pReeA6df9Vqs9V6t6r1L1XqHuvVOy5UgHu7rDncsVu+4/0ip0BlB2XKDsukndcJO+4RN5xibwjgLIjgLIzoGJnQMXOAOouEDDz5Yqdl6ng+n27A6v2XKXtvVq773qdz/V6n+vAEHYx7A9q9LnR4HO9fu+12j1XabsDq3ddqdwZQLVZAdx06MsL4OZ0rin/0paL5O2XKDsCqDsDKndergJnQTvcHTOo0VP223Kz6UAwaEmASxu1fhMCbpyJloRTXJzhmO//dOmV8pQ1LbJWs8Oanx96McIRylzXHy8e16ERd4Ml7KPh7KNh1tjlwT4Wzj4agYyaHLM+Hgu3TzlmO9w2jGE97pZxLIxxLIx+LIx+PIxxLJxxPIx+LLz9eFj7iXD6iXD6ifD2E+HtJyPaT4a3I+dMRLT7RiI5Hdl2OrLdD9t+Btfuh20/i2s/F0U/h2s/F9V+PqrdP7rdP4b+W0z7bzHtf8TS/4ij/xHHuBBHRySBeIJxJZF5JQn0NbGvg2ZEWtft9O7bGT13s7j3nvTef9r3IJcfmi8MyxeGF4hASwIENCZsiSKIowiSKNtz5FEEEo08ETqkSICzh48r5COPhXyc7cLaBeCxzyH5iBUiUcE6xi6JIl5UEbiTG8oQpdKkcmkS6GWytSQcg5nULoF6P47Ii3X1QTEqyER+HFGQQETGOhLLpEnlMtsoRyq1/zG1/3FlfxpVkVapSKMq0irlj6nytAp5GlX6mCJJtdbpKWVCkOQyQXIpkiQSkkSQUkESSZhUKkwqEyaViqwRJpYK8SRhQokgwdq+iSPy44j8WAI/tpgfS+DHFPNjwPAO2NcFfCy4/1Feb1guN/Rpz4MnXQ+yO+5ndvyZyb6bzr6TzgpJY4akMW8/Zt16zLyVyryVyryZyryZygx6xLiRwrieTL+W1B6Y2B6Y2H45ofVyQuvl+JaAuJaLsS0XYpsvxDb/EdP8e0zL7zEtv8W0/BbT7B/dAk70P49rOR/Vej6q9XxUGziC+3w083wMCOtcDPNcNPNsFOMMlnE6sv1UeOuJh83HHjT+dK/ux9s1392ifXuz6uvr1K+uV+y/WuETWLH3CmVPYMXey5Q9lym7r1B2B1B2B1B2BVSA7AyggNjE8OXF8i8vlINaG1HFRcqOS5Sdl5Cf+cAZOwKQH/I7A6i7LlftvlK952rN3mt1+6x68Llh1cONRp8bjT43GvZdr7Pr4XLlzgDq9ksUmxu++KPMmlJrytwEMUTFjgDqjoDKnVdAA6Ju7/V6cFecNfSAGMJ6eVRwKdOvb7V8fQtpRqAM0b5RPbgawqMe7iOHRT23Hrw0xCvQwwY8EcayG8Kh/cE6GsY6GmYbXWceDQena7COhrNQ52QwjoYxUE9skmAcs56SfTys/XgY/XhY+4mw9hPhyOPJiDarJ9pORbT5Rrb7Rradjmw/Hdnmh0U8cRYHPNF+Pqr91+j2X6Pp/jHtv8W0/x5L/z2W/of1VIlL8YxLCYxLeMZlPOMynnEliRWYxLqazL7+iH0jtTPocdet9O6QTM697N57T/oePOU9BIYoEDkZAovWA0oMuGIgBkdDEFwMUSRwMEShO0MUWA1R6GiIgvUMUYAYwtaGiCkGvUz2NkRiuczJEMlOeogt7kNC6Isl8GxxcEOx1RYEfhxREE8UxpeIEkqsPVlkazuFIk+hKFIoCuQNyHJwPnZyuSSpTJIExjZIQnyJIIHIT3BorPTZV6MI6c0Hj3EEflwxP44giCMIQO2PCKCIF1PEiypEAnZlZH5fZEFfREFfRH5feF5faG5vaG7vw6fc+zmc+08497I597J67mZ23U7ruJ3GDk5lBj9i3Exh3EiiX0+iX09qv5bUfjWx/Wpi+5XEtiv49gB8W0B826W41gtxLX/EtvwR3fR7dNNvUU2/Yht/xTaci2w4G9lwJqLeL7zeL7zhdHj96bCG0+ENvmENvmENp0IbToY2nAxtPBHaeAK5qkzLibDWE2FtJyLaT4S3HwcJaz8a2nY0tOXog5Zf7jf/eLfx8O3aQ8G0g0HVX9+gHrhG3RdI2XuFvAcoIaB892Xy7svkXQGUXSg32MSw81LFTqR7x/pb/iJ5+wXy9gvkHRfIOy5SdlykbL9ERtxgSwBlx6WKnQFr6KFxf1CTz43GfSDXUXq4srYe1k75lxfI2y9WbA+g7gyo2nmFtjtwA3qw9j5ZGxDBVj3cBoPVbd/eafvWvR7o362nhw0awmMf1AYMsb4kXp0hnk8SSAsjDC0J5lHbOX2hyPOjYYyjoYwjVjccDQWP4HId7cdC6UfD6MdC24+FtR8LaweGOB7efgI8D287Gd52MrztVHjbqYi2UxHg1Ou205Ftfogk2s5g29CSOB/d7h9D949u/y2G/lss/fc428l0YOyaEQAMkcgMTGJdS2ZfS+m4kdp5M63rVnpPSCb3bjb33pO++zm8h7mC0Dx7G8ImCduYhJMncIgVxFHFdkO4aUAUr2mIArQh0K0Hh2ZEpIsk7KpAGhB9UUX86GJ+DAFck1ucQBLjS6WJzr1MDobATGr1KD3w4gg8Bn+CI512jJojU3OkauQJEg1HruHKtVyFtlehc0of8kTbq9ByFVoumFOu4chA1ByZukem7pGqe6Tqbqm6WzLtIepuibpb6pwuiWPE011idZdY3SWe7hSrO0XTHSDCKbZwii2cYgmmWIJJpmCSyZ9g8CYYvHHreYyjbb2jbdzRNs5oK3e0lTPSwhlt4Yy2cEaaOSPNPSPNPSNN3SNN3SONXcMNXcMNXUMNXUP1XUN1nYMgtsuJ11hD6xiqsV+4yXoWHnu4GjknY6S6Y6S6w/6kij1SxR6uBEdwMZDba5PbB8rb+sus9x1yTL81A6jn9pBsaXaJ9SWXpQaQtCpLW1Vlbary9sHy9sHy9qHy9qHy9mFrhqwZLGtTlbWpkDNCWgasbwfuj7RemhQlTeA5WJ+B0hZlaauqtE1V1jZYZn/fdUIGoQ+R6cNk+jDZdmwbY6SCCTJKBWE5p5I1tn7YG06VUzq8TfWLp/OlhLZ+xh2z5swdqCfgeceoQzpd/uwcqem0nt6EPI7UIOfAIqkD6UJS3zUCzpZt6B5p6B5t6AaXeUbS1DPaxBlt4ow2c0abOWPgKp8grb1jbeCkaN4EnT/J4E8yBZNM4RRLNM0WqTvE6g6xulOs7pRoQLqk9nRvIG7qNHtApWer/STTXa4RT3eJwZOpdWKrS6XToL7tkapBPcyVa7lyba+1AmeLNU5tCMykVh9TZNcDgz8RGv/kvS9PeMjJ9788+f72k+9vP/XBDt8Pdvh+sPP0BztPf7jT78Ndfh/u8vto1xlr/D7a5ffhLr8Pd/p9uPP0Bzt9P9jh+8GOUx9sP/X+9pPvf3nSueQvjr/3xfH/tAb8aXv1/e0nrTnlNsjK7PD9YKev4/r4uayPfWXeByuz/eT7X1qz3V1c19bTznFYEKzYKccVO+2yYmdcdpTjLnLZGy7/Czcr7G6dT7631mY67knn3ej6b7XtRl+wG73bRZ72m/WtPe4iGBiYl5sIfB5iCGsbAqUHAi+OwOfI1O99eeIZBAKBQN5qVlefmcyrC0sW7Zx5Umf6aNeZXoUO3YBAxh7iCDxw2BJHpn5/+8nXvdoQCAQCeSmsrKwum1bn9YgVbLHqQZZMBsPGQA8EXjxREE8UxJcIuTL1Bzt8X/f6QyAQCGQzWV19tmxa1RtX5hYtmlkHMaD1kFRu1QNZjpnULcUR+PHIdTmEXLnmw51QDxAIBPKWYLasGpZXFg0roB9pSmeacnHDpM700W6/XoUWORmCIkumyDCTuqU4Ih+4AV8q6pVrPtp1+nVvDgQCgUBeiNXVZ2bL6pJxRW9YWTSszC5apmdMUzMmT3r42KoH++2AwFnTCSQhvlSILxX3KrQf7/Z73dsFgUAgkOfHZEbEoLc2GqZnTN7owXp9bpseSgTgcnv4MhHUAwQCgfx1sVhWl5ZX9MYVvXFFb1iZW7SoZ83qWdP6etjj16vQJpGRSyXZ9QB6lhLLRL0KzSd7oB4gEAjkL8bKyjODTQzGFb1xZXbRop41gayrh0/2nAF6AK2HRxXu9XDmdW8mBAKBQLwFHJW0ZFxZMtrbDboFs2bOvEE9aJLKrXpAjT0IEkhCPNQDBAINK4yhAAAgAElEQVSB/KUAByYBNwA9LBosunmzZu759CBOJktSKFLU0HQJP4EkTCgV9sph5xIEAoH8BVhZfWY0rS6h3LBkXFk0WLTzZu3chvXw6Z4zvXJNYpk4uVySQpY8okhtF/TmxZfwE0gCrlwN9QCBQCBvOEijAcTuhhXghufTA1euSSwVJZUjhsBMapdiCH2xhL64kr64Eh5XNv3JHrenxSnw2zAYzDa8YhM3kOaPwWAw/jT374Xmxd8XvNebUw4EAoE8D6vPni2bVg3LK056WDSs6ObNL6QHmRpfKkQMYdVDbwyhN5bAjSX2cmRTH+855W6VXq8enqdKBqVYS3/+an2zyoFAIG8rptlhNT3utQToAYxFv6AeODJ1AkkADlNKKpdgJrX66CJudDEnurgnuri7Rzr50W63V2x99XqwvZfNFq5zPk/pm7WWEAgEAlieGZ7oKdbMGhaWTMZly7LJqxiXzUsG8+KSaV6/PLtg1M0bNbOG6ZmlSa1+XLM4ql4cmVoYmpxXjc8PjM0pRmflwzPSoRnxoE6k0gqUWolIONEWu7S8ojeszCyYdfOboIf4EkECSZBYKkosEwE9cKKKuqMKO6OKOrul4x/uOuZu8z3pAVSertU3aro/zalB4PhLfF092EtzXNDTJIw/zbH9sQ2vQL+XrXjrMtZ3cl3JNcvxtPkey4dAIG8nBt3wcGfhzLxRbzB76YZlk8VgNOsNJr3BNLe4PDNv1M4Z1DNLU7qlCa1+TL04Mr0wNLkwODGvHJ/rH52Vj8zKhmckgzqRSidUavkDGpFIONgUg7hhM/TQI5uOI/LiiYL4EgG+VIiZ1Opxhd24wk5sYQe2kNUlGftg5xF3m+9WD+jKEV1FOk73p7nMCcrxXg9INb0Nr3B9U3ulvTE9bHMRlutKrq0HD5vvsXwIBPJ2sqQbHmA9jx6AIeYWl+cWlzeqB6FQIK+Pnlkwb4oePtlzpkc6HQuOVCLy40sEmAmtHlfYFVnQEZnPishjdIpH39/5s7vNd6MHdJ1t+8uf5jTdGVT9umE92AsHC1lnpCG1uENRjqW76MFBUc7r6ioB13I8bb435UMgkLeJRe2QlJH/Iq2H59ADXyAQ0HCbqoep6KK+2GJeLIEXT+RjJrR6bEFnRD47PI8RltveKRp5b8dP7jbfox6chghsfSoOVbXLYPMG9WCvZN0MWzs3H5AF19GDQ7W+Da/wtJLr6MF18z2WD4FA3lLmNUOCtrxXrIc+vqCnEruJeuiWTkUXcaOR20vzMBNafWReR3guK+wp/eHTtg7RyH9u35gerBWnhx/4z549c/fTfSN6cOjCdy0cDXqMYqN68LCS67UeXDYf6gECedeYUw9ym3Od9GAyWyyWlZWVVVRWzOYVux4MJrNlxWS2mMwrS0aLds6wsGRaMppn5vV6g3nRYNLMLMzMLy0smeb1ppkFg3ZWP61dGFPrgR56eXwWOWLz9OBn1QM3uqg3prgPM6HRR+R2hD1lPsyhP8hpYwuH//nlGnpw+/PfZbLTvM5DAV7qwQm348eOQnKc1b5ynoamnz1z/dHvspKey1ln7AHqAQJ5V5iZHuxsfIrWg8WyotboeHxhc2t7c0tbc2t7c2s7i925smLXg2VlVUkskeUXSvIKFvVG7ZzBsGwu4pQW9pAKukn5XSV5nSV5nSW5HSVP2cQcNvEJi5jNIkxp54EeOH38ltLwzdSDZApXyI0q5EYVcqMLuZgJjT48lx2aw3yQTf8zu40lGPnnF2uMPThXnR6PXELPjh6a9qd5PfbgRg1uX3fWg60821Tv9OBhJT2X42nzoR4gkHcM7dQgoy7HpgeLZUUkltTWNYDUWJ90dHZb0HqwrEizssUZmcL0TJN5RTtnmFvQ53YUZ3fkZ7Pzs9h5may8TGZeBjMvnZGbxshNo+c+ZZO080agh+5efi0h9AX1MK5ZHp1eHple/mSPX7dkElfAxRVyowq4uEIuZkKzGPaU/fAJ688s+p+ZbSzByD/+5VYPEAgEAnGPelLVQnsC9GCxrCj6Byoqq6mV1bSaOrFENjmlHh0bF0tkqsFhdOeSxbLSF58gSEzi4ROBHhaXTEtGs2HZsmQ0z87rE5pTU9ozk9sz5haNMwuG+SXTtHZhaHIO6KGLy6soeLgxPehM45rlkenloUmjasKoHLfHqgcOroCDLeDgCjiYCc1iaE7Hg2zWn5n0uxntTP7IP/7l9sBWCAQCgbhnekJVV5UN9LBkMFKoVaQyMoVapdHqLJYVk9liNlsslhWzZQU9NG1cNvVFRffhonqxUQuLBqeh6aVlM7YuLq4lOa4laW7R6Do03cHhleQ+WFcP07OmSa1pTL08PGVUTThbAa2HLskkLr8Haw1m3K4Hxt2MdiZ/9B//Ovq6dzUEAoH8lZgcV1VVZM3MG40mi1giLSwmFhYT+3gCi6MPnKJfMvLCIzgPHvbcfzDvood5vSG8DodtjMU2xswtGFz1wOrpy8/+05Me1LOmSZ1pTL08NGUcmjQOThoHJ9bXA9aNHrJY9zIYdzPoTP7oP7+AeoBAIJANMD6mJJdnzutNJvNKY1PL07yCnNz80bEJsxkxgdmyYllZtaysooWxsrLKun6j69btzuBbyyazkx4W9MZblDsP6yIe1IXrDWZXPTC6+7LS7znrYc48NYP0IA1PLw9PGTesh7yeyLxubF4PGHvoePiEfT+LeS+TwRKM/fMLtxfVgEAgEIh7RkeVJaSMeb3JbFmtrKJlZD3JyHoyMjpm04N+yVBZRausojFZbJshVlZWO69d6wgMZF8JNFtWnPRgWLZcK71xl/bnHdqfeqMbPbR39T16dMemB/WsGTQXRtXIaPNG9dAtmcQV9ID+pcj8bsyERh/2tOthTsf9bNafWSyWYOw/vzz+unc1BAKB/JUYGVUWENLn9SaTZYVWU/focXpqWoaiX2kbbFhZXX30OP3R43QyhWpZWQUTlwzG1vO/si5cYP7xh8HofFqc3mC6Unb1ZtWtm1W3tLMLrnpo6+qNTwqZWTCrZ00TWtOYZnlMs/xiepjC5XNwBRxsPicyvwcc2Nr1MKfjQTb7QRaLLRh7D+oBAoFANsLQyEBOYdrc4vKyaYXD7U1MfpSY/Ki0jGwzwcrqquvE5WUzJyCAcf48/dx519bD/OLSNer1a9TrV6nXlty1Hlo6e7Hxtya0pnGtaRy44YX0cKZbMoUr4ODyOdh8Dja/BzOh1Yfndoc97Xz4pONBNpstHH/vS7cX9IZAIBCIe1TDAxl5qeDIJb3e8OhxelxCYlxCIoPJXllZBedOp6SmxeOTiCWlNj2YzZZOf/92X992X1/jsslJD3ML+mtV1y5TrlymXHarh6aO3gfRwZuohy7JFNauBw64qEZ3RG5XaE5n6JOODuH4+9tPvu5dDYFAIH8lBob6U3IeWc97WOXxhdGx8TFxCdGx8Tm5+XQGi85gpWVkRcfGFxNKVqx6sFhWan/4ofX48dbjx11bD0aT5WbdzQvlFy+UX3SrhwY291Zk0Ga3Hri4Ak5UPicK0UMBJyKvOzy3Ozy3q1M08cFOt3eLg0AgEIh7FIP9CdkpqLOmV3l8YWLyo5i4BCAJ8OikB6PRRDt8GOjBtfWgNyyfKz5/sfzixfKL84tuDmytZ3Gvht7YXD1EFXJxhVxcISeqkIOZ0OqxhZzIAk5EXk94XnenePLDnW7vNQ2BQCAQ98hV/dEZyY7XXFrV6w08vpDOYBUTSsrJFXQGi8cX6nSzqJPjzIt6g2VldcmwvLDofDsgzcwiOH3asGzWzrvRQy2Tc+HPa5ulh0/3nOmWItdcwhWCi2po9VGFvbgCLhiL6BJPfrz79Ove1RAIBPJXQqpUhD9Ocr2gt9myYrGsriBnPKw6nTX9ghf0pjE45+5c3UQ99Einoou4UUXWS/JNavXgD9Dl1C2Z/HiP3+ve1RAIBPJXQjyguJ+S+Irv91BF55wMvrLJeijsRQxRBPRQ3BtV3BtV1BtVxO2WTn0C9QCBQCAbQdgvv52Y8Ir1UN8p/Ol6wKbpYS9oPfRGF/VGF3Oji7mYSe1SdHFfdBHQQ2+3dOqTPWc2vnNQV9R+jmtX2+4Fp8BvexXXvqb5b+xdNjr/yyhhc9nU9XnB/9rz327Vm0/di2zpm/Zfg7y58BXyG/Hxz6eHBf3y3OLyzLzz2MP6NxPt13x75dKEdnlcszxud4NxdNo4Mm0cmTYOTxmHp4xDk8ahSePghHFwwqCaMKyjh+Le6GJgiF7MpG4phsCLKeqLLuqLLurrkU5/ulE9KPDb0DdtUODx7u/k5gmav8ebv20i6K/6G6iHV1wTvTnCe97/vrefOqgHyKuAJ5cfv3M3rawii0J9UlGZQ/UqTyoqsynULAo1k0zNKK9IL69IK6M8LqWkkiiPSOSUEnIykZxELE8klCcWl+GLyxKKyuILS+MKS2MLSmMKSmPyST4XL4xO6Uen9COT+pFJ/fAEkqEJ/dCEfnBcPziuV43pVWN65ZheObqoHNMrx5aU4wYPepiOKe6zBdFDdDHProe9G9KDAr/tBSv3V/MlhHrY3LfbRD08Rznef+qgHiCvggmNJqeyykMqs6n2PKFWZVdUZpArMsooaaXkm+FnkvMePC7CXb5zMLWk/BGxPIWAJJlQnlxcnlxcmoRKYnFpYlFpYlEp3pqhsbmhsbmh0blBa1Qjc6qROeXwrHJ4Vjk8N2DP/MDIgnJMv74eiqx6iCXwYgi8GEJfTPHG9bDG9xTV9EfdWm4bHo++dbTjnTrRX0jr4tvweOtEt1U8zR+zzd9/m8t9TNFrhbqnG3Lrum14mq18hcsKO22Rm7XCeLg3nvNdRpGZXCsa9CJOq+dx19k206V8t7vr5W2Ru/3psTTXf7qb/4vDvfU8bzhq7dx/6tba8262yd2KuduTbot1XisIxIXVZ88sK6tmCxKTecVoNOuXlpX9ffVVCXWV8amxu6pK/GrLf08I+4BWEVdNiWMzqGPjM2PjM6NjupFRJMOjuuER3RDIsG5wWDc4rFUNa1VDWtWQVjmkVQ5qlYPaARCVth9EqVWotP0qXb9K1z84OzA0NzCyoBxb8ty5NB1D6Ish9MUS+mI3Rw/uf2ChOg3sfdM0f4f6BvUtdVPpo6vKtfVgm4qagebvUhOhl8W4vI83y7rdqDW63mnuxGZ9xaFicV49t7vO5V283l0vd4vWLs3tP/3FNtzjp26N9XTdG54+ja570v1+gy0LyLpYj2ddNVtWl5ctS0vLCwuGuVl9Qdbvxek/NJMDHFJ+sSrvaGjwe0NDalsGB9WqQbVKhUSpUiuV00rl9IA1/QMgU/0DU4qBKUU/Enn/lLx/Wt4/LR9QK5RaxeDMwMiCanztsQdEDzFoPcQSeKBNsWmtB8fp1srQ489/54kO3/91qyQ3P11dfjF76lxCveO6y7rdKLd7wPlnsYsenOsep61Ye9e5lO92d726LVqztHW69Ta44c/czOnVerrZG95/8Lz4h0IgLthOdzCZVwwG0+KiYX5OP6Ob16hns1JO9Pckm7UdlpluELO2wzTVoO/PCA1+TzkwYcvAwMRA/8RA/8SAYrzfGoUt8nG5fFwuH5fJHCKVjUtl4zLZhEw+Ke9X96t0yjG9F0cuTYN2QyyhL5YA9EDkAUNEE3ibNvbw2vTgqbHvjR7WW9bLytQ+xbYZ7msTUGU575l1d51r+R718Gq26JXrYf1Pnct6ulnC6w+e1/9QyDuLTjPUUB2BTn0VklpqeA0lrJocWlX2oJJ0v6LkHoVwNz7sy/6elJVFxeqyZnVZs7qsXlmQmaebgR6Iebeck+smhNxbhNxbUsmwRIyKaFgiGpaIRySSUalsXN4/PTA8Nzhh8OrAVtl0LJGHGIHIw0zqluIIvDjQgHgePTi00Z89sx1D4tRRsHY/kpedS6ivuL1x79w7sV6vyFrv6EWPiutGuXTF2GZ36CFxX7a1vlmjj8VN35e78t12Lr2aLVq7NK/1sP7ijsu5furWWk/XveH1B8/bzYe8u8xpBayaw94nGft/+3tSVhb7rXrQoPWwoaJEAhUSvkrIV4n4KpFgUCQalkrHFErN4LgeObDVCz1wZOo4Ii+OyANSwEzqluKIfGQSkdcj27genjm23G3fFPvEdetldzNYm/MOY622Nr6/v/tuffSaOP5YRBb11Kuw1rJu50HXCPauB4fx8W3+/p5+bDot4bB66+461/I97K6XuEUe9qe3/3R3a7L+4o64+dStueed94b3H7y1/6FQD5BnRn2/YUFsXJR5mZzUn9fQg/flzE5SBb0KQa+C36vg9yoEff1C3oBYOCSTT6pG5pDzHlCnxXFl2vX1UMKLK+HFEe16QAzxPK2Hl82LHzr7TgF3FwTyyplR81soX3ufxIgt/T0pKwuyVcP4qmF8xTBmWZDa9LChonq7JX3dkr5uCY8jE/b1S8QjA4Paockl17OmuTItpU2xth7iifw4Ii++hBdf4qQHAo/z5ulhjS4SiCtwd0Egrx7D0qxSQe+XtUkETYLe+r7uWk5HdRezgt1GYbaUtTeSWuuJzbWEZlpxU3VhQ1UBPvJAf3eSWUM3axjW0G1D03WUPO/D6RBwO0W8bqmIr1IMTA1PLI5Ou7moBnDDunqII/JthsBM6pbiSwTxJYI4oiCOyOfI1G+GHjx3EkHcAHcXBPI6WV1dXV42LS4s6TSzk+PqkcEJpXxYLhoQ9cl53ZLeDhG3Q8Bh8zksfg+T18PkpUT/JGeFG4cJjileEMeHBr8H5vEyXLaAz5XL5RND4wtjavfXXOqVayltirx6eXmLfA09cOVqoIP4En58CR8zpVuKJwqs4b+BrQcIBAJ5k7GYLUt6w6xufnpCOzo0qVKMyEUDwl5Zb4fQU53+JOV3fOh/Zcdtd0oq9r+xd//Lezf0dUtkktGhsbkxtdHhknzWDE8jbihsG8bldxXXidfSg0ydUMJPKBEklAgSgB7As4QSfjyRz3m+oWkIBAJ5J1lZWTEalhfmFjXTM5Nj6pHBcZViRCEZlAr6RX1yIVcm4Erdpq2+vK2+vLXOOZ10Bp8jQ9KDjtQWHkcm5PXL5eNDo7PjaqPTFVvH1AvqWcWUzjSpMw2MjtZ3dJeyxlIq5ffTWnMq+Wu3HvAlAjyJjyfx8SQBZkq3lEASJJBAg0LwxnQuQSAQyF+DlZVVk8mybDQbjSajwWQwmAwGk16/vAiyuLxgzfzi8vzC8vzC8tzC8tyCcWbOODNn1M0adbNG7axBO2vQzBg0MwaNzqDWGdQ6w7TWMK01TGkNkxrDpGZpQrM0oV6aUC9NaAwT2uVJnWlSZ3K9oPeYZlk9uzC3ODupne8WD5A7xvMZkyGprbdTmtJKuevogSSwBTOlW8KTQFMC6gECgUA2zOrqs5XVZysrSCwrqybz6rJ5Zdm0YrTGsGzPknFlybiiN1gWliwLS5Z5vWVeb5nTW2YXkcwsWHQLZt28WTtv1s6ZNXNmzZxZPWtSz5qmZ03TM6apGRNoHLjVw7hmeXrWrJldHJqYaRGoSZ3T2OK+S1HV1+JrE4u61tBDr1yNLxUklgoTS4WJpVY94EkC0IaAeoBAIJANsYLSg8WyajJ7pYfFl6kH1YROrBrjD2qbRNNPWkb8I6hnH5IvYCujclhr6yGpTJhYJgCPznrgyqEeIBAIxFuQpsOqgxvW1YPe8BL1IOifbO/tIneMlXVNl3bIQzIaj98mHrtNOPegPDS9fS09KNRJZcKkUkFSmSAJaT2UChNKBPgSAb5EwJWpN3w7IAgEAnknsbth9ZnFsmryWg+LL00PvXJtSSM/sVKRQBu6m9u7/7esnSdDDwfmfn8t/0QIMSS5eU09aJLKRUlloqQyYVK50N56wJME+BI+1AMEAoF4iU0P4KYO3uvhJbUeuDJtUa0YVyoJzOzb93vOlsPYT74J/fjrB599F3bgQtbPNwqvx9avo4cyYXK5KLlclFwmxEzplsBABDAEV65+rntNQyAQyLvF6iqiB9sNf7zSg3FFb3gpeuDKNAU04a3Mzn0X8j48+PCDrx58/E34R18//ODAvfd97nz09f1vA55eiqR51MOeM70KDRBDik0PSaWCxFLkWFeuTP3JHr/XvdshEAjkjcbVDV7qYcm4on8JrQeOTJNbJbiT2upzNmXnididJ+J2nkzYeRK//Xj8F0djtv0c9d8/YveeTj5/n7qGHvoUmpRyEcgjssiqB5Ig0dq5BPUAgUAgawP0YFlZfRP0wJGqc6j8jPLeRyU9+MKumFx2ZBbjYVr73eSWmwmNV2PqLkXW/BZadfZexanb5Z708MmeM30KTTJZlGINZmpmKRFpPQjwJD5Xrv4Y6gECgUA8gzQdwM3gNqIH5IyHl3zkkus1l7y538Mne/z6FJpHZHEKWfQI0YNuKalUYGtAcOXqj3efft07HwKBQN5QVp85uOGt04PoUbkolSxKBa2H5DIBYohSQS/UAwQCgXjGdo70W6eHMzyFJpUiTqWIU8mixxQxZnpmKblMgATqAQKBQDyz+gx1gvRG9GB84/Xw6Z4z/H5tWoU0jSpNq5CmVUgw0zOGlHJhSrkwuUyYXC7sVcCxBwgEAnEP+vJKb1nr4dO9Z/gD2vRKWTpVmk6VpldKMdMzS4/KhSAp5cI+BTxyCQKBQNxgO5j1rdTDln1n+UpdRqUsowoJZnrG8JgiTiWLH5FFj8iiPoUG6gECgUBceX49LP819CBQ6jKr5ZlV8qxqWVa1HDM9Y3hcIQbDEY8o4j6F5pM9Z55CIBAI5F0C6CGrWp5FU2RVK7Jpcox61pBOFadViB9XiB9TxDyFBl5zCQKBQN41tuw9K1DqsmnybJo8m6bIpimAHqTpVGl6heQxRcLr13y658wsBAKBQN4lPt1zRqDUZVXLrIaQY9SzhoxKSUalJL1SkkaV8Pq1n+6FeoBAIJB3i4/3+AmUuqwqWVaVLLtall0tw6hnDZnVsowqaXqlJJ0q4Q9APUAgEMg7x0c7fQUDmoxKcVaVJKtKklUtwahnDVnVsqwqaUalNKNSCvUAgUAg7yAf7DjB79dkUEWZVFFmpSizUoTRzBqzq2VZ1bLMKllmFdQDBAKBvIu8/+Uxfr86vUKQXiHIoAgyKoQYzZwhm4b0NGVVSQVKqAcIBAJ553jvX0f5iuk0Mi+NzLfpwfiEJn9Ck2XTZNk0mUCpg3qAQCCQd43//NcRoId0Ci+9QpBZIcBo5oxPa+RPauRAEkKoBwgEAnn3AHrIoPAzKviZFEEmVYjRzBmf1spzrIYQqqAeIBAI5J3jvS+O8vvVmRWCTKogq1KQXSnCaOaMubWKpzXynBp5To1cqNLB0+IgEAjkXeP9L48LBjTZVaLsKnFOtTiHJrHr4WmNPKdGBvUAgUAg7yAf7DghUmmf1kif1khza2S5NTKMZs6YV6fIq1Xk1ihyauQile4TqAcIBAJ5x/hol694UJdfr8ivVxTUKwob+jHaOWNencLWgBCpdJ/s8Xvd6wmBQCCQV8one/wkQzNFjcqiRmVxk7K4SYm0HnJr5blWPXy8+0X0QPLD2NkayX2eMriRW5930RdaFgKBQN5VPt17Rjo8S2hWgRCbVXY9PK216eH0C7wFyc9eO5P8MBiMH2njC77Im0IgEAhkw2zZd1Y2PFfSOlTSMkRqHSK1DYHOJXlerTyvVp5bKxepdB/t2iw9gN/yXvoB6gECgUBeG1t8zslH5khtw6XtI6Xtw6X0YYx2zljQoMivVwBJiDdXD2g/cCO3In1OYAL6b1SXlB8JVQjJD7M1MtLPqavKPjcys9tl0e9gc5T7AiEQCOQd5zOfc4rR+TL6SBl9pJw+UkYfwWjnjYUN/QUNioJ6RX6dQjzorR5EqjF0rJM96QE1neS3NZI7S/JzbFc49UrZ9GCt2kl+Lh1VjhZxtyzKTOsU6LQ5MDAwMG9NvKnSP/M5pxibL2eMkBmjZMYImTGC0c0bi5sGipoGChv7Cxv6JUMz3gxNi1RjTjei86yHrZFchx/yyI95buRWh9/vnqp414noBoPn2Rz7tawy8lDg7OxruXsfBAKBvAK8MQTQA5kxRmaOUJijFaxRjG5+mdiiJDQri5sHipsGpMMzH693YCtwg4cXPYw9eBiEANbwXHGvXe9b3bMZeoBAIJC3FW8M8ZnPuf6xeQprrII5WsEapbJHMTMLy6Vtg6S2QVLrYEmrSjY8u+5pcV7rAd19Q/Lz0NdvreO91oNtmkOX0bqdS7YeJagHCATybuGlHgbGFqjsMSp7jMoerQR6KGcMl9OHytqHytoG5SNzn+49u3Yp6+nBw2kP6P4lP5LT+LJ9Sdehaefa3FrQVj8/pPXgdln0O7pVAtQDBAJ5J/BGD1t8zg2ML1Syx6s6xkAws4vLFawRCnOEwhwmM4YVo3Nb9p1bu5Q19QCBQCCQNwsv9aCcWKjuHK/uHAPBzC6aKtmjlexRKmuEyhrpH5vf4gP1AIFAIG8PXupBNbFA6xqndY7RusZoXaOY2UVTNWhKsEcr2aMDY/OfQT1AIBDIW4RXeth3TjWxUNM1Zs0oZnbRROscq+4YreoYrWSPDoxDPUAgEMhbhXd6OKuaXKjtRtxQ0zWKmVs01XaN0brGaJ1j1Z2jSqgHCAQCebvwUg+Dkwt1PeN1PWMgmDm9qa57vLZrHDQoVBMLUA8QCATyNuG1HhbrOeP1PeMNPeP1nDHMnN5U3zNe3zNe1z1e1z2umoR6gEAgkLcKL/UwNLXYyJ1o5Iw3csYbueOYeb2pkTPewJlo4EzU94wPQj1AIBDI24WXehieWmzqnWi2BjOvNzVzJ5u4E03ciUbOxBDUAwQCgbxdeKuHaX1L36QtmPklc2vfVEvvZEvvZHPv5PDU4kb1oP2ff4OBgYF5u7MJlfTrw8sDW0fV+nb+lDWTmIUlcxtvqpU31XjmoDUAACAASURBVNo31dr3nHrYhNWHQCCQN5W/ei3n5Wlxo2o9XTBNF0wxBFMMwRRmYcnczp9u40+18abaeJMj01APEAgE4sBfvZbzUg9jaj1TOI1ENI1ZWDIzhNN0wTSdP93Onx5V66EeIBAIBM1fvZbzVg8aPUusZluDWTSYWSI1U6gGxhiDetggZQzJyeTGL++UwcDAvE05mdxYxpCAr/lfvZbz8oLe49qlDommQ6LplGo6JRrMosHMFqtZIjVbpGaJ1FAPG6W6d4Kl1L3kez1BIJBXDUupK+gcAV9zp1oOj8cHBwcHvlaCg4PxeLyX1dQz7/QwoV3qkmpBumVazKLB3CnRdog1HWINW6we10A9bIzq3onX/TGGQCAvBbd6wOJwiYmJk5OTltfK5ORkYmIiFofzppp65p0eJnWGbpmuR44EozdYumWILjolmgntEtTDhoB6gEDeVtzqISgoaHp62mQyzb9WTCbT9PR0UFCQN9XUM6/1wFHMcBQzXMUMVzGD0RvN3TJtt0zbLdV0SaEeNgzUAwTytuJWD4GBgRaL5fW6AWCxWAIDA72ppp55rQeuQmfNDEZvtPTIdT1ybY9M2y3TTuqgHjYG1AME8rbiSQ9ms3nuDcBsNm+uHqZ0ht7+GVsweqOFo9BxFTqOXMeRQz1sGHd6oPnbb7iN2YZXuLzqT3P9JCrw2xyWsf69DY9HF+e+TOc3dfcGL4YCv83t224MD9sO1n5jK03z93J93K+558XtO3Lz96Lj27iWb1sr7/6bG1hVT3se9bHzuDu93tWbvOzrZw09vKb6xoHN18OMobdf19c/0zcwwxuYweiNlt7+GW6/jqvQceU6qIeN4kEPtq8Ezd/ly+vmm+pYhdH8wetOX621v2moVzde126EF/rCu6+lFPht2/z9t22o2BesdzwsrsBvs62gAo9/1X5A68G6euhVeoFV9fCpQ030WAjUgxs9zLwBbLoepmcMQAy8gRmecgazZLTwrH/39eumZwwvoAeSH+onz+dYLjKZi/0c9ddbxnp6cPf1VuC3OUzwVAE8rx5e7nfyxQp33nZk2ja8Ajy+otXwtPirrM3c7Ap3etisVfX2U+cK1IOzHkwmk9YO8TSq3jtN1L4yTCbT5upBPWvgK2cEylmBalagmsUsGS085SxPOcsbmOkbmHlhPdg0QPLDYDB+JG9W3TPoAt9Q1teD7Xton+xYE3r8nr5A68E2o73zANUiodk6rqzFofoY7L9IHZYEhaI6PcB8bhak+WO2+ftvw2C2bUNvGLJWrhawTnF4heaP6lZzXc9teDy6JvX3t/4O9rA+qF/iTou77kaXF9Yu07FOt6+Jy653meC6K9zpYc0OOcfl114BLz91rl1Wbnagw8fJq3+T+2JRa/sm4rUetkb0aLVarbYnYusrFMTL0INAOQPcIAR64CtnrdlEPYBGwwv64W3Vw7NnNH+H75Jr9eX8E9L1T9c3da7DnGqZbXgFMhuYZu/RQvVG2SY610qefti6LIiutlCF2J+it91h89H1F6pTzv4m9mcK/DaM69t5XB/nzUQt7gryT0Ct+BplOpeP/k+61t2O/wuXXeF+7GGN2tPNqnpeAY+fOg+4/sc9fJy8+je538Y3vGWxhh40dgi+mK3hXa7PXzovTw/CwVnR4CxmadkCXAGinjVumh7sfrBNJ/lhPvfz+xxpVnCxnyNfAJtF0JNQXVXgdfuLtgVsBX7+OdpF4A1fiVy804O7oVGHH/joKsBtRez6p4c3deyStg93I19jh0KQKttxBVAT0e+3fre4VQBOVae1ykC/reOvWHd7wl3969q82ND6uF3c5Se+fbUwnneO59aDxwEDN/8L513huSjvVnX9EYs1PnUOc1nX0nFl1vk4rf1v8lzsG8waelDbIfhitoZ3Wp/6EmwTfX23YsDfneFbrRsPXrfPiF68M3yrLwE9NzKPywTAy9CD0OoG0eAcZmnZIhycFapmha9ID7Y5UDOT/D7Hct2NUTj3ViECsM+IKpDkh5aGH+kVtT2eZ+zBOpO7nopn7usIN7N5fFOHn+POb+3c8eS5BrTO4Vz1bEgP7scVHLfdCddh+ZepB88ghW2mHtb+GHgoyotBAjft0/XfzsMc9sm2/eXul4fzCj9bZz+vUewbjCc9LC0tDdjJPmb/9B7LRk387F6z7TnyQvO9z8Dk7GPIpOxjn332GZiz+d5nn91rtr9kL8pekvXZwMDAwNLS0kvQw4xINSsanBUPzmIMyxbR4JxwcBZIYrP1YG80OD5xaAogzQE3nVFO8zs0DxzFg5pmtc2rwZsjl9z8IH7mMFToeAjJi+phzfY7aor9G+vUf+I8gmntRli3c8ndAVduj0qybbvzNtlK8bg57jqXvFwfLzqXaHh0pWzrP3Ep07Gd46FO97jn0aBHjO0FuGs9eLWqa6yAu7dzPXLJVoaH3jmPPWZr7+e1in1zWUMPCjtZRzFb7jQqFAqFovHOFuS508SjWai5j2YpFI13tmy506hQZB3dcicLPLdOaryzBWNbGPnTjr0kxcvSw+CMXQ/ioXnx0ByIZm7z9GCv0D3pwVEGL6oHREc2Kb0a1jvvwV33DILjT2rUQg4teW9/8Dr/Zkd9G517A/z9tzl3Uthnc+0KcK7IkVechz9dqwnUlrk5pnIbXuFmk9wP1LisldPQtGNbzfP6uFncdTc6brf7MlEz+vt71rljSc7/C/SuADM7eM7NR2idVV1vBVB73mXTHH41YDAYjF3qTq5y/jh5t5/XLPZNZQ09yO1kHcFsudMAnjfc2YI5kuU40TbNOveRLDB1y52GrCNb7jTIG+5sOZIFJlhna7izBYPBHMlyXhzN5uphy75zmjkDEIN4aFYyhHQuzQkH5zZ77AHVF+RWDw4dTYANdS45icc6/XM/v8/ddF+9PF7orGnnkclXwGv4TtLcHnrzGrb9TeUV7wq4573Gkx70er3UTsYRzJaQOqlUKpXWhWxBnqMmSjOOYDBHMmwz2J9u2bIFzFQXsuXIkSO2BaS2GULqwOJOLwH0ev2m6uGsemZJoNQJlDqBckagmsEsGsxdUl2nVAvyYtdcQp/3gK6Y3erBsX8JqfjtJdiqf/sf9vnRznAwAFpKfwE9PD9OXfbeHxr4yvWw/hEyEMgbitd6sIFWAqpKrwvZ4jwD2iWOz+3lISJBLW6ftul6+HTvmTH1Ils0xRZNdYinO8TTmEmdMYYkiyHJokmy6BJZj1z3lz5rGjU+/Yr4q11z6VXqAfQnQDlA/qqsoQfxG8Dm6uGTPX6dosmwXE5EHicyvxdX0IdRTep9o7t9o7tPRXf7RnfX9kw8tx4wHvBm7TeHVzzsMDs7+9fTAwQC8RZPelhcXBS+GJ5qSwwG430hi4uLm6iHj3f5UunKw7ervr9D++le7ZH7DRjlxOIJXNdxXNdxbNcxbBet6/n18FoBHU+v4Rw6eLc4COStxNPd4oAe+G8Am6uHD3eeIrcpvrpGPniD8u1N6qHgKoxyYhG44S+uh9eGfFRbI4OBgXkLIx/Vgq+5kx4WFhZ4bwALCwubqIcPdpwob5H7XCndf7XswLWyg9cpGOXE4jGrG45FQj1AIBCIM053ixseHtZoNL2vFY1GMzw8vIl3i/tg+/HSFumeS8R9l4k+V0j7r5YiejgG9QCBQCAeQNdyOBwuISFhdHR04bUyOjqakJCA27x7Tb//5fHSJumui8V7LhXvDSD4XCFhlBOLR7FdR7FdxyKhHiAQCMQNTrVcZGRkUFBQ4GslKCgoMjLSy/XfkB52XyTsuUTYF0C06iESpBPqAQKBQJz4q9dy3nUunShtlu66QNh9ibDnEnFfQAlGObEI3HAksvO59QADAwPzdmcTKunXh5dD06Utsj2XSvZcKtl7mbQP6VyK7DoS2QnyHHqAQCAQyJuMN3r4aOepslb5vitlPoHl+6+U779ajlFOLNrcAPUAgUAgbx/e6OHj3afJbf37r1EOXKN8db3iq2tUqAcIBAJ5y/FGD5/sOUNuH/jqBvXroMqDQVXf3KzGDDjqoboT6gECgUDeKrzRw5a9Zyl05cHg6m+Cq7+5RTt0q9ZBD79EQD1AIBDI24ZXeth3jspQfXur5tvbNd/erjkUAvUAgUAgbzte6cHnHJU5eOh23aGQukMhdd+F1GEGJhaPRCBugHqAQCCQtw9v9PCZz7lK5tDhkPrvQuq+u1P33R2rHn4Jh3qAQCCQt5MN6OFOw+GQ+u9C6r+7Uw/1AIFAIG85z6+HX8I7kUA9eAcejw8ODn69V1yBQCAQNMHBwXg83m2VtTE9WA2BGRhH6SEc6mF9sDhcYmLi5OSkBQKBQN4YJicnExMTse6u4eqlHqg2PdxpgHp4HoKCgqanp00m0zwEAoG8MZhMpunpabd3gPBeD99BPbwIgYGBFovldX8SIBAIxBmLxRLo7v5x3ncu2fRw+E4DZmB88efwjl/CO6AevCQwMNBsNs9BIBDIG4bZbH5xPYDY9WAzBNTDugA9vO61gEAgEGdelh5AoB7WBehhBgKBQN4wXlwPh+82HrYaYjP1gP0cg8FgMJ9juW4X42I/d33N7UQEkp/zS65TNosNlBwYGGgymbSAnoitmK0RPVqtlngaefLcvHgJEAjkncZkMm2GHhoP32lEhqYd9TD+Aq0HLyvZ557tzdODHagHCATymnlxPdg6lw6F1EE9bLhkoAeNMwRfzNbwLpfJG+DFS4BAIO80L6KHLUAPIfWHQuoPhdQduvWy9EDyw3yOxfphHHqbwKskZCoGg/Ejoetl+wt+JMfSHMsnOXVikfwwn/v5fW4rzk0hzmsyC3q1UDO6K9mDMoAe1AgEX8zW8E7rE0L4VgwGg0EmuUDwxWz19d2KwfgS1Gp1JzIz8qe9KNeX1ARfjOMElzlcJkAgkLcPjDtsr76QHvadpTIHv71d++2t2m9v1XwTXIMZGF/8Oexl6MFaQZP8UM9Q8uA6LeK2ENeXrJW3fdCC5OdmvGPtNXEd8UCVbJvNsx6WlpYGELKPYT671wyeYJCnzfc+Q545kX0MY3vBtuDAQPaxz+41Oxbl9NL/396b/rVx5fn+9Q/cB3Of3Xvn0bx+r18ncbyQaehpxzveMYuQQOzIScdZu41jY3YkdrCd2MmkO7fTztLTScc23kBIIBACbYCA4GxObLMZIRavESA8duKZvg+qVKpSlaRCEgjQ5/36vmxRy6mqo9J563xLVYdZgnPZ1I95pvOsAgBYVbi5gTnr0aNHfuthw86DDabRA3nqA8fV+3Ob9h9rWjw9cAXgSw+ub/5e9OCaUi/ja8W9FeJ8PVAT5exc8JXsI9FE6mGQ4mwKEVGkZb6gpqacHRzUFkVQO5NydpC9jGsWPd85l2fW4ODZFOffrmVc2+NdBQCwSqE/627TA9HD+mjZVcPIvmPKfUcb977dsOdIg1MPFaHWg6vJHqiJEqIHegXGRB+FBFMPtyjOSomIojbmi1u3brUVRRDSs7c4MJbhWcQ5lzvLNaWtKILeyq22ogiCIKRnPW8QALBKIQiCOzEQPazbnnVFP7Qn5+quw5d3Hb608w+XGHqoCKke6GmsrBFPcoma5Gri2f0Pb4XwzObsOd8uscnJyZmfn79B8ZGUiCjUkC+oVzc0hRGE9KMbXOiF2ct7KcptjqYwgj1HUxgRUajhKw0AEHbMz8/7rYfnt2Zc6hiM/n199FsXdrx1Yfsb54OpB8aFXe96cGaAWJemndeKo2Qyr70HmYy6puz8/u/epfBciNtrglFOUPQQIZVSOR5eObD1QLb1TqQfsea6z3L+HSGVunTA3pT7KgCAsCMQPazZnHZRd3P7G+e2vf7l1tf+vuXVL9h6qAiw9xAWkHr4geLPyUTyn38AAIDQE4gent2cWt9+Y8urX2x59YtNr3y+6ZW/QQ92u91O8OFp4ZycHIfD8T3Jh0nEhjz19wAAEHocDof/etiUWq+9sfnQ55sPfb75lb9t+h30sHBIPXz77bfffvstQWw43vQtAAAsBwLVQ/uNLa/+nTLEoc+hhwWTk5MzNzf3DQAALDPm5ub81sNzm9Mu6m6SFx62vvb3ra/+HXpYMLm5uVar9f79+9cAAGDZcP/+favV6vdocWu2pl/qGIx+6+KOty7sePPCjrcuQA8Lpra29vTp0zabbQ4AAJYNNpvt9OnTtf6ONb12G3Xfw+6cy7sPX959+DL04A/V1dW5ubk5AACwbMjNza2uruZtsgTdFrcj+6pxZP+xJurG6aON0AMAAKxyBD1zKfpgo+k2+Ty+2PzmA3lq6AEAAFY5gp7YuvMlpXksoagtvqg1vqjVORwQ9AAAAKsXYQ/0flnZZU0s0YlK2kXFWlGxFnoAAIBVjsDhgJq6rWJ5R2KpLrFEl1jSDj0AAMAqR+Bgok3d4xJFp0TRKZZ3iOUd/ujh6dOnPrcEAABgmXB9dOLp06fel3lh98uqnvEkRadE0Smh9SBZoB7sTkMgEAgEYvmHTze460HR6b8e7Hb7PwAAAKwEhDTpTj3oJU5D+K8HAAAAqwZKD2X6pDI9Sw8S6AEAAMKYF3a/rOqx8euBDOgBAADCEFIPyWX6pDJ9kkKfBD0AAACwu+mhTJ+k0EMPAAAAnHooNySXG/j10AQ9AABA+PHC7pfVTD2UQQ8AAADs9ghncim5TJ/Me+0BegAAgDAkYtfLqp7xZIU+qawzqawzSb5YehiojiQoIqsHFrp2vYxacaA60p/1hbGohQMAwIoiYtdL5F3TSYpOibxDQt81HUw9DFRHEoSs3vVndb23xTnUy5irB5l6GZQAAAAcNuw82NRtlZR2iOU6cUk79cTWoOphoDoywMZ9UVtw6AEAAHhYHy1Tdo0llmgTi7Wi4jZRcVuw9eDFDoyEk3OJehkRWV0tY2Sh6mWspBSjNXeuHlld7ZzIbOvrmRNlMqoD4yqO/ZfzT/fCve4bAACsWtbtyFaabycUtiYUauILNXEFLf7rwe2JgNTUgepI/qaUkTJyJf3rZXR77JrvqdGnZg9URxI+9MBtzet9GUXgvvEcOAKBQCzzENKkr92W2WgajctXx+apD+SpDhxXUeM9LFQP10cn+J8I6Kn3wJ5eLyP/8Pj1330iyzo+23qGHdx6I54KF7pvdjseVQsAWGkIMcTzWzMajCMxucqYY8r9x5T7jjYSw5OOpMqF6eG6t9HiPPghJHpwbZRePwh6AACAlYUQQ6zZkn7FMLTvaMPeI1f3Hrmy98hVSg9JQdMDKytjt9O/XHJL4HjPIwlMLjHadVdKibE6/ZKVMvKZXPKybwAAsPIQoofnNqdd0Q/uOXJ5T87l3Ycv7z582akHpyGCoAc760qvq111TeRtdr3rwZUmYlyaZuSOZDK+1enL2TKZs/dBreHx0rT3fQMAgJWHMD2kXtEP7sm5vPvwpV1/uLTr8CVieMqRXGmhDREcPSwqgf90FgAAwomF6mH34Uu7D18mhqccyVVOPVQKemJraPXA+8skAAAAnhCcXBra+/aVvUeu7DlyZc+Rq8TIlENaZaE7EMtVD8x0FboOAACwAARemr5qGI7Jbdx/rHHfscb9RxuJkSlHSrWFNsRy1QMAAAA/EaKH57dlNJpGY/PVB/JUB/JUsXlqhh6qLMmVFugBAABWGUL0sHZ7ltJ8O6GoNb5Qk1CoSShqJUamHKk1vbQhoAcAAFhlCNHDuh3ZTV1WcWm7uKQ9sUSbWKIlRqYcaTW9qdWUIVSWKegBAABWE0L0sD5a1tRtlcg7JIoOiVwnkeuIkan59NretJreVOgBAABWIwL1oOoZT1J0UCHvIEan5jPqetNqe8kUkxp6WCA//Hizrd1Qf0mJQCAQoY22dsMPP97kNlOCkkvR2apuKykGiVwnKdURo9PzGXV9dAdC3Qs9LAzr+N079/GcPgBA6Llz3z44Osltpv4h6NpDVlOXVVyqFZe2J5ZoE4vbiNHp+cy6PtoQ0MNCsY7fDfUpAQAAFH7rYe22TKX5dmJRq6hIk1CkSSjQEKPT81kn+jLr+jJqe9NqoYcFAz0AAJYPfuvh+a0ZjabR+ILm+LzmuLzm2Dw1MTo9n32yL+sE1YFohh4WCPQAAFg++K2HNVvSG4wjscdVB44rD+QqY44pST30Z53oyzzRl1HX19wHPSwM6AEAsHzwWw/PbU5rMAzH5DbGHG3cf7Rh/9FGYnR6Xnayn+xAZAaqB8ZgzmHzaCR/9DB4ZiOx8cygX3MBAMAzAegh9aphaP+xhv1HG/a9fXXf0QZidHpedqo/+2R/1sm+zBN9LX3TgekhqsY1EkNwBcEofDmB3gMAYPkQiB4aDMOkHvYfbXDpQXayn0wxtfQHSQ/Bb82hBwAA8EFAySXjyIFcZUxuY0yucj957eHgqX6yA5F9sk8TLD0wG/OBmihWwqleRkTV1FMTZfWu+a7m37UKPfIzO2nlXiZ7H2pkbgW61neNPip8H5y7wKcnfj0Mntno3OAhNTlJfYjYeOjQRoI4pP6H+hCdPnIuufHMGedENevFmUMEtQDyTQAAHwRyabrRNBqfr47NU8XmqWPzVJQeaEMErAfulQeWM6JqBqjFyGmMl4x8FHPw55oo16J8XROqTPY+cIrh7IyQfWBvYgF6UB+ireC6kKA+5GrimQKglhw8s5Hg0YNzNqNIAADwhP8/bN2WoTTfTiBveijUJBS2svQgOxW4HqJqBsg23dkuM/oBjEGeeXNQfKvb7fUyzrd3njI5++D22mUur7Jh7YOnTbDg0cPgmY2Mplx9iPyD0WOgXw+e2ejqFKj5ew9uqwAAgGf8vy1ue1ZTt1Vc2i4ubZeUtlMP1Tj4Tj9tiGAllwZqolyvPH6F9/BakB48NdjeC6T3a2H74AXoAQCwfAjgoRrZ6p7x5LJOMpIUHU49vBNkPbilcTj5H69Ns3tyiZPt4SnTa+H0NJ+pKi+77X9yiU4Pcdt6n8kl6AEAsAD81sP6aJnaYpOWG6QVhpQKQ0q5nqWHg8HUA6MpZiZqhCSXWKu4CqTyQ+6XpoUkl5xLR8lkAnsP3E34eWmat31nvFbTV549XJqGHgAAgglQD6kVxhRSDxUGhh7e6T94qr81ID2EI0H7YSs7JQUAAH7gf3IpOlttsZH9Bmm5XsrqPYSTHghfCC8qWHpg/rAJAAD8I5AHeqt7xpPLOpLLOpMVnUlyHVsP74SLHoJIYHpg3B+BrgMAIGACeaB3U7c1qbRdUqoVl2rFJVqOHr6CHhYG7poGACwfAnmgt9J8O7G4NbGoNaFQk1CogR4CBaPFAQCWCYGMFkfdNV3QHJ+vjs9Tx+U1Qw+Bcu/ew/E7PyEQCMRyiHv3HnKbKSF6eG5zWqNxNC5PFXucCugBAABWOcL0kNpoHInNa4o93hR7vOnA8SbnQzWgBwAAWKVADwAAAHgQmlwyjcblq+LyVHGuaw+n+mlDQA8AALDKEHhpWmkeFRW1JBS2xBe2JBS2MPRwCnoAAIBViBA9PL8to6lrTFyqFZdqE0vanPc90Ho4JUgPT58+9bklAAAAy4TroxNPnz71vsza7VmqbmuyojNZ0ZGs6Egu6/RHD3anIRAIBAKx/MOnG+zkA70tttQKQ2qFgXwwHzXWtEsPAh6qQRKSmz4AAAAsFCFN+vpoWbNlIq3KnFZlIsN/PQAAAFg1rI+WNfdOpFeb06EHAAAANOuis5stE1TXodKYVmmk9CCDHgAAIIxZtyNLbRlPqdBTwwGVd0IPAAAA7Gu3Zaq6rVKFTqrQJSt01HgPpB5k0AMAAIQrz2/NaOoak5S0SYrbxMVt4uI2lh5k0AMAAIQla7akK823RUUaUWGLqLBFRI73AD0AAECY89zmNKVpNL5AHZ9PRrO7HjTQAwAAhB/PbU5Vmkacj+RTxeWrg66Hehk9djIRWT0gbKWB6kjhCwMAAAg2S6MHqqFftDbftQkAAABBwZVcKlDHFzTHF7Qsoh4WrR2HHgAAIMis2ZLeZL4tLtaIijSi4tbE4lZidHpedrJfdnJR9VAvIyJlskiCkNXbyW4Fhayes5ZrrnMmaxIjeSWr510aAADAQnl+W0ZTt1Uib5fI2yWl2qTSdmJ0ej7bLz24PRHQOZk3uVQvc12IqJfRTblrCZZI6AUjqwf4clSsZbhaCPnDEREIBGJZhZAmfe32LHXPuLS8U1remVLWmVKu91MP10cnPDwRkHlpmm653ToHrhbd2bw7F2B0LKgC2MvzleaeaQrJAxEBAGDZIsQQ63ZkN1ts5NOWXM9cyj7ZT4ZAPVz3Nloc74WBBemBLQPveqAXQXIJAAA8IMQQ5AO906vM6dXmjGpzRrV5yfXgnlwiXzKTS27re00uMRbC1WoAAOBFqB56JzKcbuDo4eQS6IGZQeL7jRMzv0RpxJWwomVC/eE+BwAAgDtC9EA+0Du9ykQHSw/ZwvTw4J//PwQC4V8E7yMPgFAE6WFHltoynlqhd44nqvdTD557D36BOxlAeAA9gJAgRA9rt2WqeqzSMp20TJdcpktW6EKtByqVBDmAsAB6ACFBiB6oB3qXaiUlWnGJVlyiJfXQF+LeAwDhAfQAQoIQPZAP9E4s0iQWtiQWtiSSD/SGHgBYGqAHEBKE6IF85lJCgTohn4xmWg9kQA8ALCLQAwgJwvSQqjSNxOer4vNU8XmqePKJrVkn+rKgBwAWH+gBhASBemiEHgAIFdADCAkLTi4VNCcUNDv1cILKL0EPACwe0AMICQu6NC0q0iQWaagHepN6IA0RiB7ePX1aSPh/iACscKAHEBIE6WFrRlOXVVza7gwdSw9ZJwLVg4OPx48fP3ny5NGjRw6HA3oA4Qz0AEKCoPsetmWpeqxJZR1JZR1JZZ3JZZ3B18NlpYYZlv6vP/6yM6+6fmjUNj8/z9RDTRRBEAQRVRPqW+LqZdRO0C8EM1AT5XMVIcsERVYcoAAAIABJREFUl6XZIvnAq6BtZ+GV77M8cve814bHucHeH7vdDj2AECHorunt2WqLTVphkFYYpBVGaYVxUfTQd+06Gf1f//Dg4Yz0jY93pr2v6fj60aNH7N7DonwCF15+AHoIdNPLAf92lfHk3eAcbHBrjLl7y2F/KKAHEBIE6WFHttoyIa0wkZFSYSJGp+czF0cPX33zw23r5JWWa7vS3n8l74upqWlOcgl6WA74rQd6reWphwBLgx7A6kFY70HG1IN0kfRw/ebwqHXi+o2h2TlH1pG/7sn4QGv8YXBoyLMe6mVEVE09lW2S1dsHqJf0B5S1gOtTSy/H/iYrk9GTeZ72zXkKuFc9uDZB7Re1BLUsvQpzObcBsdnl18jYh+ZaNaqmhrMDvAdOHyM5djd/JVDLsvafe0juY3dzl+arNNdfruOh13Evg723HmrWwz6zj8hz1bELZ+7egK/6530HhZxy/EfrHegBhARB1x62Z6t6bEnlRjooPWQGTw9my1eWa8N/u9zz4OHDVv31fVl/+t3xLx4/fnz9+g9e9UBwXzIyBIypriaaObIQayLnk88L1wrc5RlT6mXOtoYcaMLV9rkm867odpiuA3J/NVATxcnlezxwxjHyVgLniKj95+baWcv4auR468rDa1eN8VvXw254fFv5qs5tW/7Vv6d3kODsEWeLvmuMBfQAQoKgXy5ty2rqHhcrOsUKvVihFys6idGp+cy6YOph5PbYH+QX9mR8cO1766v5X8bIPmzuuP7o0aOh4REfvQdvbQ2r4aY+kgM1UfzjkvpKerh9ufSiB8bXWNa3Ye73dPem3edRMFZkHZlnP/Eeo/dK4O4/e3n3TfAJylel8ZTArjFPfTIPuyH8beV9dxZa/wt6B/nrcwFJKOgBhARBt8VtzVR2WUUlOjqIkSkHqYfMIOnhq2vfjIzd2Zv5x33Zf4qRfXjw6OePn/zscDjGrNYg6cHZfvinB9dadMPsXQ+cL4e8eqAX56ZKgqYHem8WpAe3sbu96sH9KIRUmrf98XBQQdSDp6/uC9eD+7EvYIs8NeYB6AGEBCF6eHZzeqN5LL6wLb6wLa6gLa6gjaWHzGDooaun9+59+8k/t+3P/vDAwf97VfMNedPD5ORkYHpwTnV9RN2yEJzuP2/DRE/znopxLc3NgfAll5w4m88FNU8+kkt8B84sx0slcPffa3LJ/SiEVBrP/vgsfyHJJS9vK2/aineXhOrB7vsd5N+ie415AHoAIUGYHtIaTKMH8pqd0UKMTDky6noz63pJSQSuh96+/lu3Bketd079ufXMx+2zc4/uP3hw7979O3fuuumBcdVPUO+BvuDs+prm6uzzK4HKiHC+CRMEQUTJZD57D6xNEISshm7UnM2bcxVX7oU9QDb30jR3P53rero0zTlw9n56rwTW/vs9dreXSuPUs/sWefXA3Q3effZ+VvAenZflvU7kqRUBW/RYY/xADyAkCNHDM5tSrxpH9h9XOUNN6SHDqYeWIN01PT8//+TJk8ePH8/PzzPvoPb3rmlPTczqQmBmxjd05wYsL6AHEBKE6OFXL6ZeNY7sy21yhooYmXJk1Dr1UBeoHhbtmUthoQe+zIVfBx4WtbUigR5ASBCuh/1OPexn6KGPTDEFoofFZBU3eB7zI3a7fcEHThW2WutqxQM9gJAgOLk0GpOnijmuijmujslrJkamHOm1vXR+abnqAYDVAPQAQoLAXy41mEZj81ti81ti8zVxBa2kHiy0IVr6oAcAFgvoAYQEQfc9bMlQmsdExdqEYq2oWCsqbidGphxpNRbKELW9LX1T0AMAiwT0AEKC4LumrWJ5h1jeIVZ0iBWdtB56yQ4Eeg8ALB7QAwgJAh/oreqxJZcbkivIMBIjU4606h66A4HeAwCLB/QAQoIQPazbIVNbJlIqTalUmImRKUcqqYcaS3qtBXoAYPGAHkBIEK6HtEpzWpU5rcqcVmkmhicdKVXdlCFqe5uhBwAWDegBhARheshWW2yplaa0SlNapSm10uTUQ1V3Wk1PWo2luVeQHhAIhH8RvI88AEIRpIftWWrLeEqFng5ieNIhreyiOxBCeg/XRyfQewAAgJWCoEvT2zJVPdbkMl1ymS5ZoUtW6IjhyTlpZRdpiLTqHiG9Bz/0wH4GUL2MiKwe4J/ntQzGWna7faA60m0KAAAADoJGi9ua0dQ1Ji7VikuoIIYn55IrzHQHYpH0wHLAQHUk4WrXB6ojhbXxHD0sLku8OQAAWCwE3fewJV1pvp1YpEksakksbEks1FB6oA2h7p1cFD0wJDBQHSmrro50PtFfqB2gBwAA8AtBd01vTlOaRhMK1An5ZDQTw5NzSeUmpx661JbF0YNLA+QL5nA6zm7FQHWk+6Pp6mVEpEwW6XyyPllCvcw1kAA9JbK6mnryvqtRdxYYWV3NaetdG3N5iu8p/uS4dO4LAwDAykGYHlKVppH4fFV8nio+TxWfr6b0QBsicD1cH51gBj3dNSpkZPUA4z/mGDWMltplAme7TspgoDqSJQ+2MJjFMEZhY2WzWHvD+Nu1HeeeMbbM0YLbYSIQCETIw1Oz7L8eJGWUHpIrzGrLRCB6IGcxYbXAjFE4yU6EK7XEbPZZIwzTzXq9jIiMjHS7qM3oPQywJ7KyVryXtXn6GewxzhjpMHe92P8BAADLDE8O8DKLxpVcKlAnFDQnFLSQejBKnB2IQPTgRRtUIxtZXc+86CCrZl2R8K0HIjLSbSl/9UBv05U94g7TxlrFtTAAACxLPGlAiB7WbElvMt8WF2sSizSJxa3i4lZieHJOrDBKyoySMmNSuUm1eHqgGlhWc89ob92SS3SCyL3dZyd9POvBe3KJsU/OVBI3/eS+ivDL6AAAsPQEoofnt2U0dVsl8nYykuQ6Ymjp9OB+owJDCPRst6vLvO0+3dp714NrcHmeS9PcEeSZ+SVnz8W/4eYBACAkBKKHtduz1D3j0vJOaXlnSnlnSoWeGJqYEysM4jIjmWJS9SyiHkIGT+4IAABWG4HoYd2O7GaLLa3SSAcxNDGXKDeIFQayD9HUY1t9euBmjgAAYPURiB7WR8uaLRPpVeb0anNGtTmj2kzqQU8bYhXpgZMtAgCAVU2geuidyHC6gdKDSK5PlOsTFQaxwrCK9AAAAOFFQMml6Oxmy0R6lYkOYmhiVlSqpzsQTd3QAwAArEgCu/aQpbaMp1boUysMqRWGVPLSNNV7kOsT5dADAACsVAL65dK2TFWPVVqmkzqf6U0MTcyJSvUi6AEAAFY4Ad33sDWjqWtMUqqV0A/0pvRQqidTTEroAQAAViYB3jVNPdC70PlAb4YeOkWlemX3OPQAAAArkUD08NzmVKVpNCFfnZCvis9Xx+erWb0HkRx6AACAlUogenh2c2qjaSQur8kZKrYeSvXKLugBAABWJAHpYVNKg3Ek7rgyNk8Zm6eMy2uCHgAAYJUQDD00xeUp0XsAAIBVReDJpfh8lTPU1H0P0AMAAKx0Ars0naY0jyYUNicUNosKW0SFLaQeDLQhlkAP754+LSR8lgMAAIBJEH7YWtxKRUkbrQfDUurB4QvoAQAAFkqgwwGRt8WRIdcy9CBfUj1cVmrc4kpTa5OmvU2n96QH9+GD3GdG1bg/s5t34sIZqIkKSjmLDud4V8yeAwCCQKAP1ei2Jit0zuhg6sEgki+pHvquXafj6+9uXL8xNDg8qjea+fUwUBMVJZNFeWrsFlMPCyOEe7LExxuS6gUAeCSgR/IxRouTlndKy/Wh18NX3/zw7fVbNwZHhkfHrOO2ru4eXj0M1ERF1QyQ//KVCj0s2VZCtTkAgA+CoQe9tFwvrdCnVBg4elj8u6ZpPXz1zY9ff3/z+x8HB4dHx6zjE5OT09PT/V99xacHpxfc/DBQE0UQBEFE1dS4mireiRT1MiKqpp5egB6TOkomi6JSV87VGaMI1XMLZ+S5mJNcw1Iz8mCciTybcC3Kv1GPKzJ3nl6lXkYtwZwSVVND7YirUrzVFedQWRPcDoqnXgAAS0yAg4mqLbaUCgMdbnowLMEj+Ug9NDZrr98YujU0entsfHp6+v79+w8ePHjw4MH313/g0YPLCkw/uC5GDNREEYyWkTORpl5Gt46uvHy9jKUKZmvIaFtZL+z2epnTV27b8Nl74N0EY0FyXr0sKiqK3tOomgHP+8byXM3AQE0U1zG0MJjFeK0rhqncD4E6dtYUaAGAkBNY7yFb3WOTlhvoCJkeWto6hkfHbBMTd+/e/emnn2adDA2PcPXAdIKr8WP1JJxNFe9EF6wpzjbNrXPA+trPWoDx5Z36nsxe3sNGhWzC/VDrZVE19eRrRs/Jy745txLFEg6f2ATWlZsxuMfO6VQh0wRAaAno0jSZXCrrpCNketB2GMZtE3fu3Hnw4MHs7KzD4Zifn3c4HGNWK0cPjDwGM4ERqB7o5nZBemDLIOh6oA6A/H4+UBMlq6ePSJAeiKgot6X81QO9s67skY8jdS0MAAgFgf1yKUvVbU1SdCQ7I2R6MJi6SDfY7XaHw/HIyeTkpLse+FohZ8voT3LJlaZy5Vg8ZX7cFmBmclw7E1hyyb05HaiJYqaVZDKZh8QX785H1Qy4JX0868FHXTH2x5na8nmknn87AABYdAK77yGzqcsqKW2nI2R66O3r//7764ODQ7fHxianpu7eu3fv/v179+7fuXPXTQ/cRojVNnKvrPJOZBQmk0Vxr+66FnNlUbjtKTvHQq3v6tywdord7LMm8mzC7fCYmxO8b67XdGvvXQ9e68r9sHiO3XVQ3IUBAEtOQHdNb81Qdo0llrSJnUEMTc4lhkIPIbpr2r/fYobBhVe+fgwAYGUR+EM1REWtoiLquRrE0ORcosKQuLR6CN0zl/zSw0JWYl4hWfDehQ5u5ggAsOIIXA8JRRoyREUaUg/GRMXS6SGkLFAPVDpltTacPJkyAMDKZbH0kBgWegAAgFVLsJJLoqLWxKJWWg/GRIUxEXoAAIAVS6CXps1jicVtdEAPAACwSgj8gd7iUi0dbD0ooAcAAFipBHrfQ7dVItfR4aYHI/QAAAArlMDHe0hS6OiAHgAAYJUQ4DOXVD3W5LIOOqAHAABYJQSsh/Hksk46iKGJuUSFAXoIOs1tuitNzZcaVQgEwktcaWpubtPhc+Rf/bgR1NHiqCe26hPlhkS5AXoIFg2qlk5j18zs7FMAgFdmZmc7jV0NqhZ8jnjxUj9cgq6H2YTSTlGpXlSqJ2+Li4AeAuayUj07O/fLL7/4fLoUAGHOL7/8Mjs7d1mpxueIFy/1wyVog4mW68mxpmfji3XxJR3xJZ0JJZ3KrvGIXdBDoFxqVD19+jTU5xUAK4OnT59ealThc+QJT/XDJdDBRHtsKeUGOohB22xsYVtsoTa2SBdXpGs0WyN2vuS9FOjBJzitARAO9OCdpdODxZbqHGg6tcJADNpmYo5r9udpYvJbY/LbGkxjG6IPei8FevAJTmsAhAM9eGcp9ZBSYUx1BnFr3L7naNPeo6o9x1R7c5uvGkfX7cj2Xgr04BOc1gAIB3rwTsj0cNP6U/ThqztzGnblNO46orysH1m7Lct7KQHq4bPPPhP+p8BChK+4NOC0BkA4S6SHry9UUFz42uMSH+qsQdtgsFjCaw/j0nK9tEyfUq5PKTcQN8cebn/z4va3Lm7//aUdb12+2DG4Zku691IC1wNzMe9/CiyEZPH6Lgt1D/QAgHCWQg9W3Ye0Faw6Hb8fFqSHpXPJEulhe5aqezxJ0ZEkJ++a7iRujD3c+tr5ra9f2Pp6/dY3LtS333puc6r3UgJPLtGtLfnC7U+/9bB4LHRz0AMAwlkKPQhqzMNaD89vy2zqsopLtOISraRUKyltJ27cfrD51XNbXj235dVzm187d0F749kXU7yXEhQ9kEuSL9z+pJchYa7F/JdehTmXuQA3bcUt020u75/cFd1ec0uDHgBgcoUPeu6SJJe+vlDBac6tug9Z6SZGi+8+y22SK1HlMVMVPJZGD87hgDSiQo2oUCMq0hA3xh5scephy6vnLmhvPLMM9EB3I8i59Fr0dHpFu7O3wVyXuRi9LrNAt/1kzmX+yVz9H064C3OPGnoAwA1PbnAs3aVpqn13tucMGXx94UOdlTGFO8uq+9DNLqut9/Dc5rRG02hcnooO4iaZXHJGffvNJeg92NmdAC9tvZ3jEq4DvC/mpUDu/tCvaXgd4NZjgB4AEAKvGxxL/Mslq+5D0hCuzgDdCXC2+NxZzEsXFKtND89uSmkwDMcca4w52hhztDHmmJK4OfbTjjcvbX/zIhkXdbee3bTo1x7sHDG4fan3ogd6IrfJ9qkWbuFuu8RcgIZ3Fd6cEg30AAAvXDc4lvyHrVRT76XF584KBz28KL2iH9p35Oq+I1f2Hrmy78hV4pb1p12HG3Yevrrz8JXow1cuLf4vl2jcugt2vq6A3WsT7/aVX4geuF7xXgJ3f7gLc4uCHgAQzpJcmtY5m3I6TcS9GsFMLrnN8p5c4malgimPpdHDMxulV/SDe3Ou7M25vOfw5T05l4nBcfu+o017jzbtOdq052jTFcPw89syvZcSRD14+UbPvBrsvd3nTvGkGWZGi7stO9tPzOvPbqt72isa6AEA4SzZpWnPF5vZySWeWQ7ufRPU36wVV7Aenn1RekU/uO/Ilb05l8kgBm0zB/I0B/JaYvJaYvJarhpH121furummctz12Wmd7ws7+UF9/U/+C5N2xmXmr1vnfzTy16RQA8ACAd3TXtnya49XDUM7T96dd/bV8gUEzE0MRtfpI0v0sYVaeMKtQ2msfWhfubSZ3wEXiyz/KDspxdwWgMgnJDooYLDIm0ocJbql0upDcaRA7lK6ur0sQZiaGJWVNJBRkJJh3J5PLH1H3wEUqCbaaAHAJYP6D14Z+nuezCNxuc3x+Wp4/LUsXkqYmhiLlGup6JUj/EeggJOawCEAz14Z6nums5QmscSi9tERa2iQk1CoYYYmiTHmqYCo8UFBYxyBYBAMFqcd5ZstLi127JU3VZJabuktF1c0i4u0RLDk3OSMqPYGU09GGs6CDSoNZ3Grrk5R2CjzAKw+pmbc3QauxrUGnyOePFSP1wC0cO67VmqnvFkRUeyoiNJoUuS66CHxeKqquWyUn2pUYVAILzEZaX6qqoFnyP/6seNgPSwI1vVM55crk8u70wu60wu64QeAABglRAkPVBB6sEkKTNKoAcAAFjJLJIeTNADAACsaKAHAAAAPASoB3WPTVpuoIMYnpyjLjwojGKFUdkNPQAAwIokID1Ey9QWm7TCSAcxPDknVhgTFcZEhVEsNyi7bbgtDgAAViKB6GF9tExtsaVUGOkg75o2JMoNIrlBVGrAXdMAALBCCVgPE6mVJjrIZy51JpToyVB2jW9YBs9cAgAAsFAC08NBtWUitcpMBzFkm40r7KCj0WwN+RNbAQAA+EEgetgQfbDZMpFWZaaDGLTNxuS103HVaF23HXoAAICVR4B6UFsmUqu60pxBDI7P7M9t3UvG0dYrhtvPb1u64YAAAAAEi4D0sPOg2jKRWt2V5gzi1vjMnrc1u9/W7D6i2Xmk5XLn6JotWd5L8aSBp0+f+twDAAAAi8T10YmnT59yp/urB+vMzsPN0X9o3vF79Y7fqy92jD672c+xpu1OQyAQCARi6YPXDQvTQ5U5tcqph5tW+463VNvfUm17s2nrG031upFnXszwWw92DwO9AQAAWGy8NMt+6mH7m01bX2/a8ppy82uNF7TDv9qYHogeAAAALCv81cOYfdubTVtfV25+tXHTocYL2qH//7fQAwAArB4WqodUuvdA6mHTq42bDjWchx4AAGB1sUA9mFOrzKnO5JJq6xtNW15Tbn4VySUAAFht+KmHW9aZ6D+ot7+l2vpG09bXm+rbh5/ZGNClaQAAAMsKf/UwPrP7SAv929aLHaPPbvLxw1bc3wAAACsIL795peHRw6Btdt+xtj1HW8k74y7rb/u8Lc6O+xsQCARi5YRPN/DogXzmUmxB+4G89v3HtfuPa68axp7fJhOioxD9rhcAAMDCENKkk3pIYT2xdWI2obgzvqgjrrAjtlDXYLKu2+HjkXwAAABWGTx6GJ6YE8sNiaUGUYleVNKp7BrfEO1jvAcAAACrDFoPKS49TM5JykwShVEiN4rlxqZuW8ROH6PFAQAAWGUw9ZBC6yGp3JRUZkxSGCUKY5OAsaYBAACsMtz0kMLQgympzChRGJt6oAcAAAg7+PUgKTNJykySMvQeAAAgTOHTw8ScWG4Qyw2Jcn2i3NDUZduwE5emAQAgvODRw9DEXGKJXlSiTyjWJxTrlV3j6/HLJQAACDN49TCbUNQZX9gRX9gRV9jRaMZ9DwAAEHbw6cE2G1eoi8vXxebrDuTpGkzWtdsF3TUNAABg1cCjh0Hb7IH89gN57QfytDG55EM1skO9nwAAAJYUfj3E5mljjmtjjmv357ZdNYyt2Qo9AABAeEHpoZKth5jctv25bfuPte072npFf3vNZt9PbAUAALCa4NfD/ty2/cda9x1t3fu25rJ+9LnNPsZ7AAAAsMpw6aGS1sP4zL5jbaQb9hxpudzpezggAAAAqwyWHippPRxt3fO2ZvcRze6clssdo8++6GMwUQAAAKsMfj3sfbt1T07L7pyWnYebL0EPAAAQfvDo4db4zB5SD4dbdv4BegAAgHCE1IOU1kMl2Xs42rrn7dbdOS27Drdc7sC1BwAACDtoPUhderDN7s/V7jvWtvdo6563NVf0t5/DD1sBACDM4NHDkG32QL4uJq99//H2/bnaK4axNVugBwAACC+YepBSepiYiy/qjC/qjCvsiCvQNZisa7fhmUsAABBeuOlBWukc7yGx1CAqNYiKDUqzDU9sBQCAcINPD5NzydRgoqYkhUnVbduA8R4AACDM4NHDyKQjpbJLWtklreiSlnepeyYidmIwUQAACC/49DDlSK3qTqnqTqnqSqnsUlsmMNY0AACEGx70UN3tNES32jIJPQAAQLjhQQ+VXamVXSmVXSlVXdADAACEIZ6vPVSYyUByCQAAwpANOw+quL9ckpabk8vNSeXm5DKTqmdiw078cgkAAMILfj0kKYxJCpNEbpTIjU3dtvX4YSsAAIQZpB6SKzi3xYlLDeJSQ2KpoakLt8UBAEDYwaOHoYm5xBK9iIxivdI8vm47HqoBAADhxYZopx6cQQxNzImKO0XFnQnFnQlFnUoznrkEAABhx4bog6qeieRyU3KFKbnCJK0wEUMTswlFnQmFHfGFHXGFHY0m65qteGIrAACEF+ujD6p6bElOPSRXmIgh22x8YUd8gS6uQBeX395gtK7BeA8AABBmrI+WqXpsSWXG5HIqiCHbbFy+Li5fF5unO3C8/aph7LnNGC0OAADCi/XRsqYem6TMKCkzJpUbk0g9xObpYo+3xxzX7j+mvWIYw2CiAAAQbqyPljV1j0sUeonCkFRmSCozkHpoj8nV7j/Wtu9o2xX97WdfhB4AACC8WBed3dQ9LlboxQq9pEwvKdMTg7bZ2OPtMbnt0AMAAIQt63ZkN3WPi+V6Oqjew4Hj7ftztfuOtiG5BAAAYQgjuUSGgRiyzcYXdMTl6w7k6WJytVcNY8/hl0sAABBmcPSgJ2+L0ycUdcYXdMYVkPc9ZId6PwEAACwp66NlTd028qI0dWl6eHJOIjeKS43iUkNiiUHZNY67pgEAINxYH32wqduWVGakgxiZdEjLzcllpuQyc5LCrOqZwCP5AAAg3NhA3jXNvC1uZMqRVtWTWtmVWtmdWtmltkxswAO9AQAgzNjg6j2YkstNyeUmYnTKkVFryaixpNf0pNf0NPdOYbQ4AAAINza4JZfKTcTotCPrRG9WXW9mbW9mbW9LH/QAAABhx4adB6mHapQbk8qNSRUmYnR6PutEX1ZdX1ZdX2ZdX0vfVMRu6AEAAMKLDTsPNnXbJGUGyhBlJmJ0ej77ZF/2yb7sE31ZJ/o0/VMvQA8AABBmkHoQKwwShVGiMCaVGRl6ONmXfaJP0z8NPQAAQLixIfog9VANhV6sMEgUBugBAACAfX30QWWXVVTakVjaSQZbDyehBwAACEfWR8sazWPxRe0JxbqE4vaEYh0xOj0vgx4AACC8Wbcjq8F0+0CBJragNbawNa6gDXoAAABgX7st84phdN8x1b5c9f5c9f7jamJ0el52ql92sh96AACAsGXN1vTL+uFdOQ27chp2Hbm6+0iDUw9OQ0APAAAQhjy3OfVix+COty5uf6t++5v1O966yNDDqX7ZyX7oAQAAwpBnX0ypb7+x+bVzm1/9cvOrX2557UvoAQAAgP2ZjcnntT+++LvPN/7u842vfP7iK1+w9XAKegAAgHDkVxuTz7f9uPHlv/325b/99nf/sfF3n0MPAAAASD388NuX//bbl//jty//beMr0AMAAAC7/ZmN0vPaGy++8sXGV7548ZUvNh36O/QAAADA/uymlPr2m1teO7/5tXObXz239fXz0AMAAAD7ms1pFzsGt791adtbl7a/dWn77y8To9PzB6EHAAAIb57fmnGpc2hnTgMZu3IaKT0chB4AACCMWbs964phZM9R1d6jqj1HVXuPqaEHAAAA9nU7sq8aR/cdb9l3vGX/8Zb9eRqXHg5CDwAAEK6sj5ZdNY3F5LfG5LceyG89kN8KPQAAALCvjz7YYBo7kK89UNBGBksPB6EHAAAISyg9FGipKNS666EVegAAgPADegAAAMCDK7lERgH0AAAAwG5fHy1rMI0dyG+jA3oAAABA/3KpjQ5+PXwGAAAgnBCqh38AAAAIJzwkl95BcgkAAMKaDdEHG0xjsQVaOpx6eAd6AACA8GXDzoONZmtcoS6usJ0Mhh7egR4AACBMidj1UmOXNb6kI75YRwb0AAAAwB6x6yVl13hCSWfNJFoTAAATHklEQVRCSQcZbD28Az0AAEA4ErH7ZWX3uEiuF8n1otJOUWknRw9fQQ8AABB2ROx+WdltE8kNIrlBVKoXleqhBwAAANADAAAAPlh6kBtEpQboAQAAAEcPcugBAACA3R6x62Vll01UaqADegAAAEDqYTyhVE8H9AAAAAB6AAAAwEfErpcbu8bjS/R0QA8AAADIh2qMx5d00rFYemjSmuSnPpUcKqfjWMX//eS8OvCSVxNnzpzJy8vLCWPy8vLOnDmDOmHCrRMun+m+Tz7dukneELaRfLr1M933+Hx5R8i5RLMUelBpTdk5daWn/tpuGrDPzP3s5NsfR/79k6uSQ+WfnlcFUv6qoaa29r333puenn4axkxPT7/33ns1tbWoExq3OuHyifa7f33fuK5nLvL6f4dtrOuZ+9f3jZ9ov8Pnyws+zyUmTj2QmaVF0MMfP7v0esF73/448uTJk0ePHs3Pzw/ftg3fts3Pz8/Pzz9+/Hhy+n7pqb8eK//Q702sGnJzc+/evfvzzz/PhjE///zz3bt3c3NzUSc0bnXCRfyuZr3F8ebo04t3fw7beHP06XqLQ/yuBp8vL/g8l5hs2PlSo3k8rrgzrrgzrrgjrpj7SL4A9PDHzy4dK/+zfWbu0aNHE1N3P/6yObfyL3R8/GXzxNTd+fn5J0+e/PsnV2GInJycp0+fhvr8CT1Pnz7NyclBnTBh1gmXTfKGyOv/XX/n5/vz4Rv1d36OvP7fm+QN+Hx5x/u5xGQR9XC1pfP1gvfsM3Pz8/O2yTvHq/7yh5I/usXxqr8MjY6Thqj747kTf/q7HxtaNeTk5Pzyyy8zYc8vv/zC1APqZIZdJ1xoPdxzPAnbEKIHnEszvs4lJmw9dAZTD9k5dd/+OEImlN77+PLvct/9Xe67p/9y8dp3t368NfrnvynJKWfOXpqZmZ2fn5+Zncs+fGLgOx8Xl1Yx5Okb6r0IPVw9hHR3lgVC9HBhOqz1cGFakB4W5e1ZUSxEDwcbzda4og5n6IKjh1Z9d+nJzx4/fjw3Nzc3N5d1+ETW4RO/L/5gcMQ654ScWFT3ycTUnbm5uUePHp1r6Pjg00sLPtzVAnn6/hT2cPUQ6j0KPQL08F/np5/cdYRvnJ9+Enn9v3zqIdTvZOgJQA9B6j3U/envWuOAw+Egs10Pf/rJZPm2d+D63Xv3ySnXb46kvVmd9mZ1fvVZq22KnDgxdS87p26h21o15OTk/Pzzzw+WlPPZhIvs8wtaMbKqf1H26eeff2bqIdh1cj7b/VAX8ViCBbNOuGySN/z6+n+dm3oyPfc4qNGQyTg9fl37w/TXp35N/Fv51x6W9zi3IdPLWkGKc1NPfu1LD4vz+eqvinTWUfDPo+CfnN7PJSaUHoo76AiOHrJz6mxTdz3pyzLw/cEjJ6WvV0pfr/yPes2du/fI6Y8ePXq94L2Orp6Fbm51ECI9OE++/qrIBQhiReshMpJ1qMKPJWQiCZ0egtKsr1499FdFMr9s9FdVLeA7lhBCqwe3aw9B+mGr5FD5/Pz8HT4aNcbk1yrIKHv3rzdujdCzZmZmSk5+FuZ6uL9onMuKrOzlTCPoiczXAgpbwMILg6uHoBZ/LouIrDxXGenafeHHwrtkb2Vk1rmg7iIXQXqYfDw1G9xoyCT+rezr5VOOtzg3+ViIHoL6tvRWRhKL/N4H/4MmXA+LdVuc5FD53NzcBIfvrt/MOlyX9GpF0qsVH/+96cebg8y5Dx8+LDnxaZjr4d5icC6LIIisc7wzIistzpfOJc5lOTvLrnUslZHMafSKHov2G64eglg4vefsI3e+ZB2lpTLSOeNcFhEZSacQOMcb/Epww7cevv+vLycfT878Z1CjIYP4t7JrvFMaMoh/K6t5mco71Vxnz71eFkVVVcZF5/SLp37NWjjI8eXk419/71sPwXxXLJWRHt51zifoXBYRWVlJTXWebfc4HyvuBMbJGSQWpAdl13hCiZ6OoCWXxsanuFxt1pNP1PjTZ1eHRm67zZ2dnX0t/72w/fFSTk7Oo0ePhoOLruQFgiBSP/Yw++NUV26Zu9DHqcQLJTqqFPIVe5au5AXPZfvLo0ePmHoIdp3QB+XlxfDwx6kvlOiGhz9OJVI/pv5lL8BbsJeaDgxmnXDZJG9Y/+0vH47MXZucDWpcFDOuPYg/J6f8JrfLOSvj4rXJ2WufHySIgx9MMuZ+fpCaxSznX+saWQsHOT4cmVv/7S/e9RDkc0lX8oLn02F4eJh9ahGuk4h65eljRb10noE+trFQvJ9LTMjxHhJKDXQERw/ydz5t0/ffvXvXLbP0yZcqUg9KjZGbd7LapiSHyhe6rVUDefoOBpWzKQRBRBRpvcx3ztUWRdCvz6Y424SIIi05K+UsZ8WICG9F+w1XD0EtnnHIZ1OIlLOuKdqiCEZrSB3x2RT6JWtdHsj13SoqOPjUw7pvfvnT0OxXtpmgxsVE4jdHTbxTmLM4E0016whineIaXzncMoMTfxqaXfeNbz0E813h+Vw4cfsEsc4c5vnGXp3nDPR+yvnDAvRAjRZnpCM4emjSGms/+HJ2dpbbtRkdGx8auT06Nu42/eHDhw0a84k/fbHQba0ayNP3VvBpK4ogCEJ6lmfWWSkRUdTmWkx61vX/rVttRRERRW3MKcwViYgIzuRgwNVDUIvnHrJzCs9hkgdKT2Wuy4SsYd5ZwUGIHj4YnO0bnwlqXBQRv3nbyDuFOYt34sxl+W8IghD9h6eFgxwfDArSQ1DfFt4zhu8TxDpzPJ9v/B+0IJ9XodeD3W7Pzqm79t2thw8fMq+KfP3djaw/1L2ad/q7Hwbdr5g8+On1/Pe+/v66H9taHeTk5MzPz99YLD6SEhGFGs8TNYUR5Gt6Gj2F8cptRd5CA2R+fp6ph2DXCXuXNYURBEFQUz6SEtzDlH5E/ctZ11VE0OvAHWadcNkkb1j7zS/v35rpHvspqFEfT/wmR887hTmLd+JP3WM/1Zf+Zm3pVx4WDnK8f2tmrS89BP/z9ZGUIKiT48aNGzc0hYUf8X6CmGcOz2xmcbwftCDi/Vxi8sLul5XdE4kKEx1B08N5pfZo+Z8fPLQ/ZPDXCy1kcum9s5eY0+fn59//5Ir8nU/92NCqYZH1wMtHUldXlj4LqSaTiJBKI5jnNIX0oxtup3hwT+Al1YPbATgPnSAIQlrI1SNVC672YIlYYXr4TOasRNm77uWsLj3cYJ8z1HnE/QTx6uEG52PldgZ+tGr1YLfb5ac+ff+TKw9+stvtdvLOhg7TV5JD5Rm/r23T99K3QTx69Ehr/Cqcb4gjIU/fH8Ierh5CvUehx7cevv7lzE27+fbDsI0zN+1rv/ath1C/k6FnuejBbrcfK//waPmfJ6buOhyOmZkZu91+/8GDMevE9J17drt9bm7u4U8z739yBW6w2+05OTkOh+P7JYTgYyl3gBeHw8HUQ3DrhPeQl8mBe4FZJ1w2yRuev/bzuz/+ZBh5EMTgVlFwyw9uvPvjT89f+9m7Hpb487U88X4uMVl0Pdjt9k/PN0kOlb//yZXBEdvjx4/JkR7+8z//c2Lq3pdXdVmHT4R5TomGPH2/DXu4egj1HoUeIXo49ePDjqH7YRunfnwoRA+hfidDz/LSg91uH/ju+0/PN71ecEZyqLz05GelJz/LOnwiO6fuj59d/P7mrQALXzXk5OTMzc19E/bMzc0x9YA6+YZdJ1w2yRvWXHty8vqD9sF7YRsnrz9Yc+2Jdz3gXPrG17nEZIn0QDLw3fcdXT10BKXM1URubq7Var1///61MOb+/ftWq5U5WhzqxK1OuIjf1fzKNCP59lHd9QdhG5JvH/3KNON9tDicSz7PJSZLqgfgndra2tOnT9tstrkwxmaznT59utY5Fi7qZI5TJ1w+0X73wnuGX5lnnht4ErbxK/PMC+8ZvIw1jXNpTsC5xAR6WF5UV1fn5ubmhDG5ubnV1dWoEybcOuHyl7ZvRadaNskbwjZEp1r+0vYtPl/eEXIu0UAPAAAAeHhh98vKblui3EgH9AAAAGAxH6oBAABg5QI9AAAA4AF6AAAAwAP0AAAAgAcPejgFPQAAQFgDPQAAAODBsx5OQQ8AABC+eLjvAXoAAIDwxsNd09ADAACEN171cKr/4CnoAQAAwhEBeuiHHgAAIOyAHgAAAPDgWw+XjBM55Wdf2P0yAoFALGVEkLHr5YhdL23Y+dL66IPrdsjWbs9euz2LjnXbs9btyF4fLdsQfXDDzoMRu16K2PVSRKj3fHXEGyV//qL9NksPw5MOph7qzt+8ZJxo7Z9u/Wpxop8nNAuOqZY+nmjunXQLNR2WCd5QuUUPfzRRYXOPbp5Q+hPjyi52dJPhLLbHRu0MteeTauoYp5p7p5pZ9TDd0j/d4k+tusL9PfLwPrqt1dI33dw31dw7pSbDMqWyTKksk2Q0eQ6VnzHlM9SsmKTDtVf0m9s94fGt4b47/GH1GGaeaHSPMeGhJKPLquyyNnWPq3psaotNbZlo7p1o7p1s6ZvU9E1p+qcCOQeWPlr6p+kPstoyoeqxNXWPK83WRvNYg+l2g3H0KiMaTKMNptsN5tvsOuGrai/vi8cQ+I77iu5xv1qDBcVEsOKL9tuln33H0sOpf/+49K/XmYZg/pBpUYK7rVP9Mt442Z99so+KE33ZJ/qyTvRlnejNOtGbWUeHJaOWivTanvQaKtKqe9Kqu8lIre5OrepOrepOqepKqexKqeySVnZJK83SSrO0wiytMCfTUW5KLjclcUJSRoZRzA2FeyQqDIlyQ6LCkKgwcsIgknuIUj0r5PpEMhQGscIgKTNKyoxJ5abkCrO0wiyt7Eqp6k6t7kmrsaTVWNJrLRl1vWRk1vVlnqAiix3ZJ/uyT/YzQ3bSQ80LOR/oN+5kf/bJ/qwTfZkn+jLq+tJre1NrelOqLdIqS3KVJbnSklTZk1TRI/EaSUKi0j2SKy2uqOIPKSt66Eiu7Emq6E6q6JKUmyVlZnGZiXqP5AY6nO+OXiRnvjudbpFQQkYHX+gSSnQJxXS0MyOeGUVaTrR5CG18kTahWCsqbheV6MTyjqQyfXK5IaXClFplTq/uyqjpyayzZNX1Zp3ozT7ZJzvZ5+ld9ifYp1CQoi/7ZF/myb6Mut6MWkt6TU9KZVdyuVEs70woaY8r0sYVth3Ib4k53hxzXB2T13wgryU2XxNb0BpX2BpXSNVJQpHWrXqpOi9hBu975Cmod5b7jnsIPU/wfdgTFxQ8zYhbmBYjjnx4jfjnf1nTfu1OyPXAbwimHk6y9JB1oi+LzxDkuZVe05PGZwhaDyxDVDIN4UEPZPAawpseuG8ts9FxC55zK1GuT5QbxAqDWGGUlBklZSZyP931UGNJryX10JdJBp8eslyVyZZEAHog3zjyE551oi+zri+9tjeNbQiqNV8EPbAMsXA9JFd2J1V0S8q7JOVmcZnJqyEMXgyRIMQQJTx68NcQlB4SittFJe2JpTqJojOpTJ9cbkypNKVVdaXXdGfU9mTWWbJO9Gaf6MteAXrozz7Zn3WyL/NEb0adJb2mJ7WqO7nCKFHoRSW6+CJtfGFbbIHmQF7zgbzmmPyWA/ktsQWa2ILWuIK2uMK2+EKqujiG0PEZQrgkFqoHPkPIAzeETz0siiGaeyeJf/o/z7z7wSeftNzmb7VD3oE45W6IbFaTx6OHjFpLeq2FYYgeRgeiK7Wqi5JEFSkJs5RUBdsQXElIvPQhOIYQ000M73u5AEN0itiGSCo3JZW7GaLHaQhLRi3Zgej11IHg70P4p4d3WG8c2YHIcnYg0moYhqikDBGoHvgkwepAeJCEL0N00YbwTw+COhAe9JDgZweizWkIraikPbG0QyzvTCrTSyuMKZXmtOqu9JruzNqeLKYhPPcUl40e+jNP9GXWWdJre9Kqe6QVJolCLyrVJRS3xxdp4wpbY/M1B/JbDuRrYvNbYgs0bm5wGcI9eOqc0Z/zEh3MEJUIjE734NNG4sJCgEKCGh9cvfXuB58Qb7zxxv/4n//r3Q8+ab92R/G3H0KoB0+G4NNDLx0COhBOPTgNwZNiqmTkl3zrgWOIRdQDpwNRbqJSTJVdKVVdqc4+RHqtJb22N4PqQ7iyTIL04DnL5ON8YL5xdAeCYQj3FJNXQyxeiknKEy49OPsQVIpJ7G+KSVTqSQ9OSQQ7xeTSQ4lOLO+QKPTJ5YaUSjLFxOxA9AZTD4smCR49lBkSSztIPcQXtsYVaOIKNLH5mtgCTWxha1xha2xhW1yhNo6n0pjBrmEqdMKig46F9jlYQXYxS/XM4E9GeQzPeWkqjEGJtz8cUFsm3v3gk//xP/8XUVNT88Ybb/zT/3nmn/9lzYn3z45Oz6+QcDj/dYxOOUanHCMLjUnHyKRjeNIxPDk3PDnHeBGcGPIeEwsOvq14O8DRqdC9O1PzzD0ZniLreUliaoHBWp393vl4R2aXKmY8hPuSwxOz5P6PTM4xTgOH88OyQoI+bcj3glkPNr7gq4rlGv588Jc4Trx39p//Zc0//e9nRCLR/wMXvA3Q8F9PRQAAAABJRU5ErkJggg==" width="200" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Click "Finish". If all above steps works fine, it will show progress bar and download source code-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" height="85" src="data:image/png;base64,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" width="200" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Follow the same steps to clone Framework base repository. Framework code base will of around 1 GB and <span style="background-color: #eeeeee;">you need to increase <span style="color: blue;">Eclipse max Heap size to 1GB</span>, otherwise Git Cloning process will fail</span>.</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Following screenshot shows both the clones-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Attach Framework base</b></span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">"Import" the Calendar Application code as Android Project (ignore compilation errors).</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">To attach framework code, Right-click on "android.jar" and mention the framework source location (location of Framework code that we downloaded in the above step).</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Once you mention the source location, Eclipse automatically does the indexing based on Package and Java file name. Now, if you click on "<span style="background-color: #eeeeee; font-family: "Courier New",Courier,monospace;">Activity.class</span>", it will open the attached Jelly Bean <span style="font-family: "Courier New",Courier,monospace;">Activity.java</span> file-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">We are going good. We have downloaded latest Android 4.1 Calendar application and Framework Base source code, we have attached the framework source with android.jar and Eclipse has done necessary indexing to find out respective Java file. So, all set to do the Framework Level Debugging.</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"><b>Debugging</b> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Lets set a break-point at the entry of Calendar application and then we'll debug files (both Calendar and Framework files).</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">For Calendar application, entry point or Main Launcher is <span style="background-color: #eeeeee; font-family: "Courier New",Courier,monospace;">com.android.calendar.AllInOneActivity</span>. I'll set the break-point at the very beginning i.e. onCreate()-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn8AAACCCAIAAAC4vzlCAAAgAElEQVR4nO2d/XNV1bnH13/R+0N/6vRSRsEJoHQ8VaedTjsdnXq17fGWeutkLO6RWsR6qdhKTQb10modd6YF1CCgXNpLY4ul5DBRxARFQ1BSkAPIaUgChpcTkhwSk5wk2H1/2G/r5Vn77L1zXsn3M8/AyTrPXmvtffbZ3/M8e+21WA4AAAAA5YVVugMAAADAnENW33Q6vQ2UEhzh2gKfFwCgFDBVd8sr/3MI7wiPjk/BasK870k6na706QMAuKZw1NcWhsp25drGPsJDo5NDo5P9l67AasLsz2todBIyDAAoLiwH6S099hG+NDL+z/MjsFq0SyPjtkGDAQBFgZHSOzIyaVtF+nSNYR/hgctjp84NwWrdBi6PDVwegwADAGYJob4jI5MHPj47//6Ndzf+uVLdupawj3D/pSsf9w56tvvZOtJ4H1jVWv+lKwiCAQCzgZGBr6e+nVu+zmtDJXpY29jS23N+pPufl3jb9ZtFU9NXJTu+e8XuZ+skT1h1Ws/5kZ7zIxBgAEA8Cqivqg2V6GQN46lv1ycXeHt9/WJVfU+/vTa9e8XuZ+skZ1h5bIVLwULPIMAAgHgUUN/89Ex+aiY/dTU/5WtDcI0t9YzVt4Rt/8j6pWzp+iMR3wpLS/1sa5gttvp+cm74/fQAb//3P0smp67a9kH/0Pz7Nz5k7uvrfOH022uP735w5zNLJH/enk8yltzOlWy/iy1Ztdd7cXBVHWOMsbrGP+sref/F/2IuCx4/GNBclJ4E2t7GBU4/o7wVtapZ2IoVKyzLsixrxYoVuhLVPjk3DAEGAERFVl97sJWnvhP5mYn81fH8zER+htcGbX1H1i9dWl+/NFjzoopibBGtFvVN913uOHaOt/996sbxyZnxyZmJ/IynvvZxHs/P7Hj6Rsnftz2NC+ru/W7dkpV7vMLXvsvsP9UXGtt4L/Md3l1ZxxY89q7WOUJPVCvUk9n6F9M8rbXlVvozYMN032UIMAAgEoL62rr78Ma2hze2zb9/48Mb28YmZ8YmZqR/dzx9o666I+uXLl1/xP5X3+icU9+jPdm3u/t527ruprGJmbGJmdEJX33HxmfGxmfGJma2rbtJ8vfstV8suf4XHfa/buG2O9iSn+4mX5DW8dMb2B1/4Ep2N1zPfrRe02KUnqgW3JPZ+xfZeMXlpbfghkd7shBgAEB4CPW9u/HPdzf++eGNbVc+m74yPq3+u23dTZraXNmV5ffI+qVOkrO+paXey3jWt7gCeWT9Ui5d7Yim/R/vv55ykzrA1c15+LU420ue0p9Fw1bfj05fbDvcy9vmhptyYzO5sencZ7765j6bzo3NjHw2s7lhqeTvWvuDCxc/uKu3bdeT1y18cotTuPV2tvjBXfoXjy6zd+26R9vbDve27XryOrbsKbJa0t/ZxMbbkOyJXe643t609Xbvs/veVrdX7Q8uZLc3uf5Ny9jCJ7c4b/H+T1JuXiveDvY+9T2+CbJyyYc8sL5JArxixYqCm9j20emLEGAAQEjozHPnlq8Pj04Pj04PjxH/dm75Ov00sC+6vPyq92952XRft9R7uue+9Nw4f8KNbz6gIW1zZF3FwlbfQyfP7+nssc2yrOyhrf07ktlDWy3Lujw65anv5SvTQ6NTQ6PTG9d+1fMX7PVfz1/46+bOnj2d+x9YuPiB1+3yV77D7NfkC8bufmVPZ8+eF5YxtqxRqMSz/Q8sZN95QePv19az54Vl83++X9+T/Q8sZI5Dp9Q37vULy5wmOnsa7/balXpOupHVFqw8YCvCVPUN9uft0MnzEGAAQBiIUVe5XG7j2q8OXpnatffQFxb/uGlLazY31bSl9QuLf9x5pCebc8p37T0kbSVLrq1nYliby+Vo9fUFsKXej1cV9SXcuOYDGvKDXzc6Z5wyS38WD1t9Dx4feONgxjbLsvp3JK2rH/fvSFqWdSnnq++l3FQ2N3UpN/X7J272/HnbtGrRV1bt816zOze/cTDzxsHN32aLfrIz+AX3eucTX2E/fFKoed9PFgT7c9y5WdsTomaqwoObv+24bf72gic20btAulHVPv9Dt2e6ylUfrekyzwGbSHbw+AAEGABQEFp9f//EzZdGpmy5/cLiH18YydsvOo/0XBjJe+XiRlyKWM7phlFf9Z4xqb76W8sBDQm/BSTN9beR/iwKtvp2HD3X0vFJS8cnlmVl23+XP9V413yWP9WYbX/esqyfbjtoq+/5oanzw/kLQ/nn19xs+4vW/C35CP/nr5zyRfV/DH7Bv36zfgH71rNczX/81Ty5Ku61/26hntCeagc++f3KRfNWvmn/20LvAummVOu3+Gb9Ak3llA9pwaOudFup1nH0HAQYABAMrb7Pr7n5/LCvsgNDU576DgxN0eorZ3k9xQuXec5546U9+aPVVxlW7b2rb0jvIql4ofFikbHV9+0j/X/af/JP+0/aga+nvnb4a0vvp4P5c4P5c5fz5wanfvvY12x/wdbfw67/5Qt+Sdt917Nvrj/5p/0vf5Mtum978Avx9fp7GLtnzX6vnM17qE32ESrxHIJ70nbf9aKnrgPbfznv+nu+eT3fB7XDnhvZpUX3bed6sv2X83SVkz6U8c8X6UpC2ttH+iHAAIAAaPX97WNfO3fZV9+zlyc99T17eZJUX/UWKxeLymOenL/9UVf+FuSoKs7f/ZMefCU1JKguY4x5sq06Ch0sGrb6th3ufe2t9Gtvpfv//vhQe33+VOOxV27Ln2oceqf+7N8f33vs0/5svj+b78vm+y/l+7OTT6++xfbnbfUd7N9X7OVLnltRx+548bW3XvwGq7v31bT7Yu+99hCp6x5/zn8r/ZrwOv3aM0kvbv3GM16dGv9XH/93z/uOF/U9sbcSql19h7OVWPnee69j7iZCW5y/+yfh5r3wdjb5jet0lZM+hHkTaxQsDGNth3shwAAAHbT6Pr36lv7spH2vt2lLa1/Wzzz3ZfN2uXrft2yUbIxU8bHVt7Wz56U9R1/ac7R/R/LzM+uGDqy+az4bOrD68551/TuSvRfzvRcnbTtzcfLMxcl1P7/F9oet/A67tVEt33Ar+8HKSvetoP3tYAYCDAAgodV33c9v6buU77uU76X+fXPzf1RyBaSiZ4dLia2+fzuYsS/H7z9zw7/ObcydMlv/8L3cKdM6u/H9Z2544pHb1j5ym/3v2lW3rV11W8Mjt1ZcOarCmh/70vzHnlLLG3/AyPLqs78cOI31GAAAKrT6Njxy69pVtz2x6ra1vDBw2lD+juZyOTeBXDva66rvXw6ctq/FAx9se/+ZG3gb+GBbxRWiKu3v98xnjNXd0yyWNz/2JUaVV7HtfOfUzndOQYABADy0+oJiYavvzndOVVwDYJW1HftOIAgGAHhAfUuLrb479p2o+NUfVnF7te34q23Ht7lAhgGYy0B9S4utvq+2Ha/4pR9WJfZK6phtkGEA5jJsGyg9r6SOVfyiD6taq/TpCQCoAGzbNoz6gcFgMBisrAb1hcFgMBis3Oar75KXrIIWg1wuF2czAAAA4NrFV99cLrfkJSv43xhAfQEAAAAJIfYtKMAxGoD6AgAAABJFi33zU9PZy1fe+/BE6/7D7314Inv5Sn5q2iqL+l5obVy+fPny5csbWy+Uui1d883durfodwAAAMxlihP7Tk5Nf5TuPXr63MDw6Oj05wPDo0dPn/0o3Ts5NV1q9b3Q2uiqLqd1niDrdLHIPYD6AgAAiEBxYt9PsyOHT/YPTl4dnLw6OPl5dvLq4OTVwyf7z14cKrH6djfz8nahtbG527K6m5fzMlyZkNhtHeoLAABApjix7973Pk4PjPSNzvSPTve5dnwgt/e9j0uqvhdaGxtbL1jdzW6Y293c2HpMlLzu5uWNrRckFbYLnSqUKLm7eXlzq1fuFOsKiQibq9N/p5zhOAAAgOqmOLHv9j0fHBoYf25jC2+HBsa37/mgpOrb3dzYesGT18bWC93Nja1vNwvRrht/dnPFXsTMh86+Q3ezfw+Zd1ULhRb8evjIO6ghAAAAc5PixL67Dxz9sHfw1ODEycGJk4MTpy5PnByc+LB3cPeBo6VU3wutjc3dfvzb3G0FqK8ver4mCkGqP2xLFFcHslBswfXzmvfe0TQEAABgblKc2Lf3/NC7R3vODE+cGZ7sGZ44MzxxZnjiwNEzvedLet/XDX2bu/0ctCbzbFlentr5T3xPqrfY6otwFwAAAEdxYt+xifx73aff/7jn5LnLZ3PjJz8d/ODjM+91nx6byJdJfW1585TY0zrhfu+F1sbG1m5ffIUssVDvLNTXb9EOeP28NW73AgAAsCna876fTUyduzj81sFjf23rfOvgsU8vDn82MWWV9nlfe4hzd/Py5csbm5sblws3Zskcb3dz0Agp+rauv6lSKCeUpXx2cze3EdUQAACAuUltz3Wlj0cBAACA6qXG53kWBzJDiQEAANQEtR37WniMFgAAQA1S47EviMvxGqHSxwkAAEpCzce+IB6VVtWwVPo4AQBASUDsO0eptKqGpdLHCQAASgJi37KTampgyZZUMWvbYA5EbajSqhoWYYcMZhTruHlkzIRba8pgNvFbyZiJkJuH84zQpYyZSJiZcN30ay7+AQUAhEIb+9pvz4HYd6AjkWwwusq3eW2q76Ykc6lbkyqKsKbW1LHkpgJOXoc5lbQ4VZq1goj1qn9Hr62Y6hupSykj9LGY3V4CAGYPHftalsV+t4j9bpElCnCMBqC+MsVV37gNRZXJwjoZmSjqK6sFFwZH0ByK4qpvSQjfpZTBwsW/oR0BACWCiH0ty2K/Wfzy0ZUvH13JfrPY4gQ4BqVV38yuDSzZYjQ1sGQD81RwoCOR3GAODJqrG1iygTWdsJ1TrpsbLJ4wkl5JA0s2sNUdGb9a3tOrlveMtjnXul4U7SbcDtt/JnYNUp3n+yPEvqEasjxVtXFVcFOSJde4xU6Qq1FJwdVzIOrk42ankPMS42llc2efZLEQ1dd5jyv0BStlMMM0E3adfiUZt0gOnhWp4zyDJVCXJebi9AIpbtUzapcihMlQXwAqihz7WpbF1i35RXu9Z2zdEssV4BgNlEF9HbnyQ72BjkRyg9HUYg7YDhv4F5YUFKrBa1cL4Snpoke4zbWtK/Dv2r8tgjfn37IiNHQ8taZO0Dz79aakp3ubkvYr3lFSX698U9LeyP3fKVM2E4RcVXVic/ugKFrBZ569t3Tqy7iX8qtCsS9/rzmMZBFBukYOY3sGdimk/JbkFjoAIAJC7GtZFlt7411vfF8ytvZGy7KqNvZ1tceTPUIpB83VXAknkKp8irFjgyreAqE2HzRX+5FxgcyzX+GgudoOfPWdl9U3fEOS9BHy6XoEqK8cEcshLSfOcvRLqS+1ud1ZRSskobUVSBv7yoW8ZgWrrxAiC8GzBlUpdZvE9SzQpYI/EbifIwCAyuGrr2VZrPHf2LoltD26NF4D5VNf/zVxLzaq+sqiFVF9pc2jqK/XVSd/Htj5cqivFwQXVl8q3BVKg2NfanO7s0Hq6w/2LYH6Rs7Qll59C3QpVI+r8OY2AHMNOfYNoMpjX054qJFQ3NhgQaL4e6tcncpAqsDMc8HN5Qx28KirrhaWbDF3bRDvWFOdV34WhG5In3lW1Fcz6opQX1KouYa4vDaptsTm9l5RmWdSaG03OzzUq68fLvOecnVuQ5F0Sto8YGRzbM/ALoXPPOO+LwAVpcaf9+XGNwXeyrUsR7eosUh+rpgYNsVJXVcLURh2c2+IVovp3s3V4zhzu0B1nu+PXx6yIU8MhRQxrb7HxdyxL6VERMxnj5XEc92aNcJGvjMx6souc44xMeqKSL16SdmEaRoB6st5GinPQU7pyq4FEs+azYXywIbCe+q7hFFXANQKNT7XlTYhDAqgyGaV4nQXqdJQ4IkjAGqGayH2hfrGoNKqGhavw9DfgmC2DQBqCMS+c5RKq2pY+D7jMZkgIh4dJ3uNAwpAhajx2BcAAACoQWo89gUAAABqEMS+AAAAQLkRYt+hL34ZBoPBYDBYUSyU+i55yRr64peXvGRZV62dXf1L739u3p2PLr3/uZ1d/dbVap3nuXRQK/fJM10EIowqFR7w4N/RjD2lp14o20BVqiH+CVv/YdRSdkeYHCPUI7cFKquyZ2yU46c8px4wqDBgZcn4vZGeP6b6ONuhb8VYGrJ2H5fK9CVY2tnpVJqx9oQ5blnjZqKdMdcSfRlr3EzYbzmkjHbmbaiSSrubd9nHJWN2+RWydqehVJol+tzjNm4m2o2URbVuWVbW8LftKnSsnRr4DocnwkV1dmNsyScCSv2YQFj1tWNf66pl7jt1Q7LhxbZ/7Dk68GLbP25INpj7TtkCHINaVV+KEwY53RVF0DSCIdQ3VKWlQ7nC6s7ckl4EU9yEGW5DcUW0+p6wIXoURX2LjLTshHYezmKorzpBdzSq77MMjad/vAxbWUNRuIzZ5StlKl1IetMpdSu+OfddTiC9RonW+e6ljHZmZIP2iHWZGaqScES5qM7y60BesEr7iHy02Ne6ai29/7l1r3e+2JGxbd3rnUvvf866OndiX83KfVFOFPmTotRXnseIWydPExkErTRX8MQggw5lSTvByysmr3cZM0Gu3Uc0lDLsOaUkV3JBPXUWKzqLEKVO8qtDeIauM2UwI5VR9513LbibfIfo1SrtRa5Md+o0bgHNAitLRlyvmvytqDk/hWNErtjIf1b+CaJOPaZbBpKa+4ue+kvvGb5OyZH/UIgPjswQhP4aZswuZmRF6bXkPx1cPcv0JYKETZQ9sSqnOQcv2BU9ydZTaXfDrMHaC//UoXchFMpFlV/IVTzDVfUlz3l6fVjLCrqOlWp6uMix77w7H/3ZjsM/evnA9zfsX/Zy+892HJ5356NzLvYlVi+glvKloSZGjBb7hjpPQochQiI7RczBqLkoCk3J1xa7SKyKbsi+OklSSrXOb05M32y3yU/QXLhO5YJtb0Pue7R+KnpC3i7QHGTyq0zHvva1qcD83va0oxFFl+8k3xtpRk41DcL9VCNPJe53JPfJyYeTe7uAp/77I2wRqXXhdxyx8iSV7tE2FDIUTxntCSMtCZWYJfbfShntCTMrSCZRoxDdSiqYMtrFYLddSEcbWV3rKaM9dNrZ3QW+G+EoeFGNdc6T68P6HY0vv7GSPnFi34e2vvvfOz+07aGt786x2NeyLDrLETr2pTK3JVDfsBMmkMGjJEu6NLm0F0y4YMp7obnXTVzIyNbpzQVX/u1QdZK7pPEMXSefM+VXWFIOm7ZL5Fc5MPMcvK4zFzEETyFOElF9lZNXs+ghtZNqakPjqV9IUfM1CNE67UntUZhP03UIPW/JuJnoMowuKZEraiT/RrrgzVRpWyXYFcNiTiC9DanW3Sg5dERbIDsdiHpRFVU5QH2pc55cH5bvaZzkM/f7LCIx7/s+teujpn0n1/31wzl637cW1NevPPDkkEVNDQNk94BzkRdvKs4k5JGqkGqd3pze6bB10t60Z+g6qX2n+6ntUtHV18ZbeCPcjTRyh4SzNZz6ai5fGvWlT2EiztSchkQKKGTrtGdo9Q2+Shf6GrpiJmaA5T9V/yBE7dTklh3XNJWFJlv3stn6vgmEdKORL6rh13NzEM/5Auu3xlNfywqfoBbBmOdYzFZ91aVn6Aua5pOPmCJRL5/cdcBvnA9eqcxaUI+8qtQLLq/IakPaEIiKTNS0csErZmCdXsVyqpLwDF0nte/a63WEg0yvVhlFfS3LOUv5NbhC/HCXz08hKlVuopBaFf6AhlPfsn6c6h7pbiMEHsnAr6F+yJVGYqWsMt2gn/JNGe0BQ66ULLQ35EppnYuStXG5ADXkKnS4SKovt0ZqQfX1KvGHSmhvwcwy81zq+77OnFZXBZtjc13RK/dZsxl1JWStVGHmy+X0FpnaUwvVVJx8GWCMMcPk4js6CciXuwGt6qeJ391NE2bGu6bpQxOlVr+f3rp/9FcjQp20N+EZuk5t7oJzDXOQqR8V4mqVtPqS56dQqNzrCnEh9DsafH6SWiWeJvLdVqmZkOpL12mRp0TY1klPzR4JrgG7GfZryKeFfaX0HxZql/LM4hBlHdzzQmLut8CQK33rwobBvwDEzcU70OHOusBRVy3mrg28poY85+n1Yd1OxRXf0qqvF/tirqsiEC9PUXKqtFulpTp3uny9KhSxAVB8qvCsi592juTIEyf2xTzPs6d6rvkpg48tq6NPZaRqd7oMZwifwgegPFTnWae76xD2Oxjr64rYt2LohwGVF11S8VrH2e8q3ulqOUNANZPpS0gPC4nPJl3LrRcL8psW8esXenC7D2JfAAAAoNwg9gUAAADKDWJfAAAAoNwg9r1WKe1Nw4rckuQeOSp9Y7OYnFYk/hTzIuLkRJUgY3aFuKVXqn6Ga73SkKdN0c6lGP0JnB0HVBTEvjVHoan0iLmKS9oD3TOrcesrprMKv2JaoEiEmM0gFNGvvPQCcGW6giszE3GzIFH6p/jr+2nvV8inVKk5xOKqrzgyKOLJE3RACMjTpljnUiyqdlQ/QOxbc+jkR5Lbkqmvfio/cR6k+DUWz1kia4ReZ1ScjmAWBF+sgzfUT05UMuTItdCsDsp0SNp+Zo1EXyrUUdVP8BQPrkvRP9ZoB4Ssv2jnUkxiPYsKSg9i3+qAnOyKK+QmuFOiXAdKfbnZpQLqTJimwRhz/nNrUTy9erUrNBVURmU3yT0SVVzSdKUNTT9VdBPjcWu2tPPzDVHPIMjPVKSMdiPlxdP+ZZqv02uUaCiVZkbWK9fPiW//2RfYkLskXKLPNNoZazfMvgQ3x5DaeQpZ+VJGl5nxwnFeh/Sr4lD9zJhdRkr5LcJNh5QwxwuttCPnKvw94vZR/Ti4IymsSx/u46APCL25/rSRCsV+CusOSXWG8HQLg84l5XsZf2kAUDQQ+1YFhWbd4yUvfOwbaq03d8ralMFYwsy494l0rau/o4W5jIO/0Jp4nJysX6fo6my5ZD/VRsiVUMfNBHnpJG7W8tdQ97VzWXQPLlfIXe6VQr8qPhkrya30W8G+qooNUV1yl75JGe2MpVPurIFU5zVHyb3oc9qTNc1xMiGsRnVkP/3JC7lZgnWZZKVOsnX5ICdcH/IoKWnn0B8HfUAinDZUId/P4DOE9KQ/zYBzif6GQX0rDWLfqoB4Ulu7hlr0zHPgWm/um74Ye5pMta4KKDV/cfjd1OyRJ6TKqBHRWdtP9fBQGVF5Rnv3KqnevJRmFSBiKTdFSdapaUi/+JqU8OSXMeeXeKOit0RfxvOxY0268/RRsu8xm0aa1x75+HjucjqB6qckw85x0A5G06QoRH96kQDq4+CPZKYvwbxDF+7jIA9I+NOGLpRDcH2XdJ502K3/ZJF8rkYQ+1YT/DJk2u/LLNSXqpNWX23rpPp6axiF+4rzu6nbI78fSrgVYhEoqlFCfeUp4/kknuRM3r6llqMh69Q0pB8eLF2yyXVvqC6JIZr7Z+h7z/ZNzZTZl8n0JRJ9KTtdTHaJ7D/ZT3k6JPXnSGCdVOv0IgHa1vnCdiMV4eMgD0iE04Yu5LPZjtBq6iQ8NZ9m8FBzqG81gti3yii0Lpul/SaFUF+qTlp9ta0HZZ7lddcCslshNDRlJEyTXgNdaoNuQmrdi3uEurqExWSIsTlZw3dQ1IK/sLqv/Toz/m1XTUOh14+jGqK65F6CnQs092fohdANI22knB03DSLczJh9RNin76eY6PYCYl3sqykXW6fXztMdJf5jjfhxkAckwmmjO5eUztN1Up6aTzNwqJom8wxBriyIfasBzTJkmjXUuPJCo658f/61UKdGfbWtB426cm8e801xfdKutkbvkSze5EKK2n4Si5jxS575F1z3Tz6k8MM1ekSMendNuMh62/p1Ug3phzFTQ67UhtQu+fG3NGKIHAWmwq0CO24mpFXhnGOi3o0Wh1yJ/ZT3kbt9Kw+5ouvUtE6snUceJeHxLb8nYT8OzQGJcNqohUKXhMS+XKfGk/o0A4fEa1ddxI3fioLYF0SkbMszIVsGrkXCLUofzbNANcQXKe7jgaB4IPYFkSmL/mKSAHBNQs8lMjvPINQvUnWu8TcHQewL4lDSmSbtUVm4OpSKa2NVuFol/FwixZh1BKtUVjGIfQEAAIByg9gXAAAAKDeIfQEAAIByg9g3MpoJmwAAAICwIPaNB56GAQAAEB/EvjHBWEIAAACxQewbE6gvAACA2CD2jQlSzwAAAGKD2Dc+4Rf1AQAAAHgQ+8YEsS8AAIDYIPaNCe77AgAAiA1i35hAfQEAAMQGsW9MoL4AAABig9g3HrjtCwAAID6IfSODmSYBAADMEsS+AAAAQLmJFvvCYDAYDAYrioVS3+CoF7EvAAAAUCyE2LegAMdoAOp7zSMPDs+YiZA3zcN5pgxmU7jOjJnAUDkAQC2A2Le28ZSpeDNiZsxEhAFnhHex1TdSr1IGhssBAGoAxL61SwTtilpt2FqjKfVsCN8SHhUDANQAiH0pUk0NLOmY0WVZlpXZtYElN5gD3rstKaewxWgSPF1nu9DZxBroSCQ3mAOD5uoGlmxgTScCWnceeOJzrSmDGaZb7GiLRo8EV8+BqJOPm51CzkuMp6nNLUrodFliri3nnfCeXg/U/DZZA3FgUgaeIAMAVBWIfVW6WngptdGrryOlXqHV1aJ62uprNLWYA0JVKhkzIWie/ZpTDze1yjvypAxfNN07svydWSo0FPRKFS/d5rooU65Bnw2O7Rm4R+QeQH0BANUEYl+VgY6EE7m2eNdrvfq6OuqKLh83++GvXWdgyGu3Q4sMJzauR4D6yjIjh7ScOMvRr9oF/ebauTjVndClguN6artUsB4AAKgKEPvq6Gpx5LPphBVCfb3XfrzLM9CRUOJpivDqq4sTCUmkxYgrDY59tVpWOfUtIK9QXwBAtYPYN4gTRqrIpYwAAAFUSURBVLKBre7I8ELrRMaS+g6aq3lPRWj16islRbWZZ0V9NaOuKEmkhJprSOqCol26fHDIzHPA6LDYnoFDmzWZZwgyAKB6QOyr4kW9QvL5hOGWmLs2CPd96TS1W766I2MFqK+dQ5VjzYAcryAtfO7Yl1JClvhUrZJ4TpimoYigbtQVL2LkHVceYtCXZoBXZE9Nl+QjpD3KAABQSRD7zoLg8VNzgfI9cRQeMiLX3SUHAIDKgNh3FkB9q09/1ZS0HfdCegEAVQVi31kA9bUsSz/4qgJUUVcAACCI8sW+F0f/BYPBYDAY7OLov8oX+1Z8V2EwGAwGqxJD7AuDwWAwWLkNsS8MBoPBYOU2xL4wGAwGg5XbEPvCYDAYDFZuQ+wLg8FgMFi5DbEvDAaDwWDlNsS+MBgMBoOV2xD7wmAwGAxWbkPsC4PBYDBYuQ2xLwwGg8Fg5bb/B8Blk0fA45goAAAAAElFTkSuQmCC" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Now, launch the Emulator, once Emulator is boot-up, you can find a list of already running processes and "Calendar" is one of them. To start the debugging, we need to attach <a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-javadebug/index.html">Eclipse Remote debugger</a> with Calendar process ID.</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Select the Calendar process ID on DDMS and then click on Debug button (green color bug icon). It will attach Java remote debugger framework to <span style="background-color: #eeeeee;">Android Calendar process 8614</span>. </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">We can also follow Debug Configuration option to attach Java Remote debugger with Android process-</span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<br /></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">As we have set the break-point at <span style="background-color: #eeeeee; color: blue; font-family: "Courier New",Courier,monospace;">onCreate()</span> method of Calendar application, if we launch Calendar from emulator, this break-point will hit and Eclipse will open "Debug Perspective". Press F5 to move into implementation of<span style="background-color: #eeeeee; color: blue;"> </span><span style="background-color: #eeeeee; color: blue; font-family: "Courier New",Courier,monospace;">getSharedPreference()</span> method. </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
</div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<img alt="" src="data:image/png;base64,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" /><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">I guess there is still one more question, <span style="background-color: #eeeeee;">how do I put break-point on Framework class e.g. </span><span style="background-color: #eeeeee; font-family: "Courier New",Courier,monospace;">Activity.java</span>, I'll cover this topic in my next post.</span></span></div>
</div>
Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com1tag:blogger.com,1999:blog-8883357886079721926.post-1157463834835289602012-07-01T20:55:00.001+05:302016-01-15T09:26:12.140+05:30Bulk Email Sender<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;">Few months back I had a requirement to have some kind of Tool which would help me to send emails to list of hundreds of recipients for Online or Email based product promotion. So, developed a small Auto-Mail sender tool which helps to send bulk emails with custom Subject line and HTML enabled message. This helped me a lot to do Email based product promotion.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif; text-align: left;">
<span style="font-size: small;">This would help people who are doing Online or Email marketing to promote their product/service. Please download the tool- <a href="http://code.google.com/p/android-java-sample-code/downloads/detail?name=Auto-Mail-1.0.zip&can=2&q=">Auto-Mail</a> and share your experience.</span></div>
</div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com2tag:blogger.com,1999:blog-8883357886079721926.post-8020777416707924322012-03-08T22:40:00.002+05:302016-01-15T09:26:12.218+05:30Android APK Extractor<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">I have been working on Android since last couple of years and its really amazing to watch how SDK takes care of few brilliant stuff, like XML based resource mapping, Delvik class generator (.dex or .odex file). So, thought lets explore internals of APK file structured and create a APK parser. </span><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Somehow any<u> Hex Dump</u> fascinates me enough to explore its real meaning, crazy? this is how it is :-)</span><br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">I did google and found few solutions which require Android SDK AAPT (Android Asset Packaging Tool) to decode APK resource. So, I thought to create an alternate parser (independent of Android SDK) which developer community can use to extract content of APK.</span><br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"> </span><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Android APK is a zip file, any ZIP parser/program can parse and extract its content. But this is the easy part, the tricky part is to convert resource files stored inside the APK (i.e. Manifest, Layouts, String.xml etc.) to plain text and convert Dex/ODex file to readable JAR. To speedup the run time processing of these resource files, AAPT encodes XMLs to Binary format. This binary format is <u>not WBXML</u>, it has its own structure and it took me a while to understand the same.</span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">To hide all these complexity of parsing Android binary XML structure, I have created a simple Parser interface, which you can use in any kind of project- an Web Service which can extract uploaded APK file and show its content or an APK analyzer. </span><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">There are few known limitations and I'm continuously working on the same, so you'll be getting updates pretty soon. </span><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">Please download <a href="http://code.google.com/p/apk-extractor/">APK Extractor</a> and share your comments.</span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com15tag:blogger.com,1999:blog-8883357886079721926.post-27390870871653401712012-01-12T19:04:00.002+05:302016-01-15T09:00:30.881+05:30Android Fragment<div dir="ltr" style="text-align: left;" trbidi="on"><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Fragment is being hanging out since Andriod 3.0, but with the release of 4.0, it has become an obvious choice for Android Application development for both Tabs and Smart phones. Few people think, fragment is a "<u>Superman</u>" which can add any kind of UI layout/style/decoration. But that is not true, rather than being an UI layout or decoration enhancer, <u>Fragment is a very important concept to manage segments of your UI component code base</u>.</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Prior to Fragment, developers were able manage UI flow only at the Activity level. All UI components were Views (mentioned in XML layout and part of Activity) and there was no way to manage these components separately. As a result all view management code were in a single file i.e. Activity class. <u>With fragment approach, we can now remove View management code from Activity and place them in their respective Java classes. So, a pretty neat approach for code management.</u></span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Here I'll explain various concepts of Fragment with an example application, which has a split layout- List Fragment on Left and Image Viewer fragment on Right. It explains <b>ListFragment</b>, <b>Dynamic fragment width management</b>, <b>switching fragments</b> and <b>back stack concept</b>.</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrJf3VjUE2Yb5L2B4tiJyR8-iZbTZkNw-pp2city9yEoU_5d14xmq46B_g0rTTw9BuEMr8RfxZjatLJFhZyJWXPBkH5-Hmts9kamwD67_FUeswNP27JukOeZlcL9age2i2irlxz4nQ8tfq/s1600/list_fragment.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrJf3VjUE2Yb5L2B4tiJyR8-iZbTZkNw-pp2city9yEoU_5d14xmq46B_g0rTTw9BuEMr8RfxZjatLJFhZyJWXPBkH5-Hmts9kamwD67_FUeswNP27JukOeZlcL9age2i2irlxz4nQ8tfq/s320/list_fragment.jpg" width="320" /></a></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWFbxA98ibbaU5zt8Lifjl3x99lX705-Ve8SRVXZUUlGJ_oVNX6Ed8zKfoE4OVcSD6Bwf8H43P2eIgAY-0ovMgeKimr8BAtiCyzCz2-JhIBbqDuDKdM5SR0Ft9wrW3HiY-EHzXR1jD5eXZ/s1600/detail_fragment.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWFbxA98ibbaU5zt8Lifjl3x99lX705-Ve8SRVXZUUlGJ_oVNX6Ed8zKfoE4OVcSD6Bwf8H43P2eIgAY-0ovMgeKimr8BAtiCyzCz2-JhIBbqDuDKdM5SR0Ft9wrW3HiY-EHzXR1jD5eXZ/s320/detail_fragment.jpg" width="320" /></a></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><b>So, how do we add a fragment ?</b> </span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Define a container layout (LinearLayout) and add [fragment] tag inside. Inside the fragment tag, we need to mention respective Fragment Java class.</span></div><br />
<div style="color: #444444; font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">[LinearLayout </span></div><div style="color: #444444; font-family: "Courier New",Courier,monospace;"><span style="font-size: small;"> xmlns:android="http://schemas.android.com/apk/res/android"<br />
android:id="@+id/list_frag_layout"<br />
android:layout_width="match_parent"<br />
android:layout_height="match_parent"<br />
android:background="#FFFFFF"]<br />
[<b>fragment</b> <br />
<b>android:name="com.pras.frags.MyListFrag"</b><br />
android:id="@+id/list_frag"<br />
android:layout_width="match_parent"<br />
android:layout_height="match_parent"/]</span></div><span style="font-size: small;"><span style="color: #444444; font-family: "Courier New",Courier,monospace;">[/LinearLayout]</span></span><br />
<div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Here <b>list_frag_layout</b> is the container layout of <b>list_frag. </b></span></div><div style="font-family: Arial,Helvetica,sans-serif;"><br />
</div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">We need to attach this layout with an Activity.<b> </b>The Activity class is the parent of the fragment and it gives callback to onAttach() and onContentView() methods of fragment.</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><br />
</div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><b>How does the Fragment communicates with Activity ?</b></span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">A fragment can get the instance of its parent Activity by calling getActivity() or during the onAttach() callback, Framework passes the instance of parent Activity to fragment.</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">You can define an Interface and the Activity should implement that interface. Fragment class can give call to this Interface method to notify any UI event.</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">An activity can hold multiple Fragments and fragments should communicate via their parent Activity. </span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br />
</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><b>How do I dynamically manage the width/height of Fragment ?</b></span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> To achieve this we need to keep the fragment inside a container layout, just like above. Following code piece set the width of list_frag to 50% of the screen.</span></div><blockquote class="tr_bq"><div style="color: #444444; font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">int screenWidth = getWindowManager().getDefaultDisplay().getWidth();</span></div><div style="color: #444444; font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">int leftFragWidth = (int)(screenWidth * 0.50);</span></div><div style="color: #444444; font-family: "Courier New",Courier,monospace;"><span style="font-size: small;">LinearLayout.LayoutParams leftParm = new LinearLayout.LayoutParams(leftFragWidth, LinearLayout.LayoutParams.MATCH_PARENT);</span></div><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="color: #444444; font-family: "Courier New",Courier,monospace;">findViewById(R.id.list_frag_layout).setLayoutParams(leftParm);</span></span></div></blockquote><div style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><b>How do I switch multiple Fragments ?</b></span></div><span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">In this example, when user click on any list item, it switch to Detail Fragment. To switch/replace fragment, we need to use Fragment Transaction and hide the previous i.e. ListFragment. To get the benefit of BACK handling, we'll add this switch transaction to the Back Stack. So user can go to the List pressing the Back key. It is really a nice concept.</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">Following code piece adds Detail Fragment on View and hides the previous fragment i.e. List. To keep track of this transaction, it will add this in Back Stack and finally commit the transaction.</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"> <span style="font-family: "Courier New",Courier,monospace;"> <span style="color: #444444;">// Change List fragment with Detail Fragment</span></span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> FragmentManager fm = getFragmentManager();</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> FragmentTransaction transaction = fm.beginTransaction();</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> // Hide previous fragment</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> <b>transaction.hide</b>(fm.findFragmentById(R.id.list_frag));</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> // Add this new Fragment into the layout</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> DetailFrag detailFrag = new DetailFrag();</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> transaction.add(R.id.list_frag_layout, detailFrag);</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> // Add to this transaction into BackStack</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> <b>transaction.addToBackStack</b>(null);</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> // Commit this transaction</span><br style="color: #444444; font-family: "Courier New",Courier,monospace;" /><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> <b>transaction.commit();</b></span></span></span><b><span style="color: #444444; font-family: "Courier New",Courier,monospace;"> </span></b><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;"></span></span><br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">You can download the complete Fragment example source code from <a href="http://code.google.com/p/android-java-sample-code/">http://code.google.com/p/android-java-sample-code/ </a></span></span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com8tag:blogger.com,1999:blog-8883357886079721926.post-9148547792404535222011-11-12T06:21:00.003+05:302016-01-15T09:26:12.245+05:30Blackberry backup Parser<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">I have published this extractor to help people to develop both open source and commercial solution which involves reading Blackberry backup extraction. This extractor retrieves BB phone backups (Contacts and SMS) into <a href="http://en.wikipedia.org/wiki/Comma-separated_values">CSV</a> file. Share your comments, feedback and Questions, I'm listening :-)</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">To download the binary and source, please access-</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><a href="http://code.google.com/p/ipd-extractor/">http://code.google.com/p/ipd-extractor/</a></span></div>
</div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com8tag:blogger.com,1999:blog-8883357886079721926.post-68532427182195323032011-10-15T17:51:00.002+05:302016-01-15T09:23:50.788+05:30Its about Bytes in Java<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">I have seen people struggle in handling data in Java when it reaches at the byte level. As Java doesn't support any concept of Un-signed data type, so it makes things more complex. So thought lets share my understanding.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Java stores negative values in 2's complement format and to get absolute value of any negative number you need to type cast variable with higher byte value datatype. In simple word, to get absolute value of -ve byte data type variable it need to type cast/upgrade to some other date type (e.g. short/int) having more number of bytes and.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Example,</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><b><span style="color: purple;">byte </span></b></span><span style="color: blue; font-size: small;">mSample </span><span style="font-size: small;">= <b>142</b>;</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">If you print its value, it will show <b>-114</b>. <i>So, why does the JVM shows -114 ?</i></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Binary of 142 : </span><span style="color: blue; font-size: small;">1 0 0 0 1 1 1 0</span><span style="font-size: small;">. The left most bit is Signed bit, so JVM considers this number as -ve value and converts it into 2's Complement, which means, </span><span style="color: blue; font-size: small;">0 1 1 1 0 0 1 0</span><span style="font-size: small;"> = - 114. So, its simple, right ?</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">So, to get absolute value of </span><span style="color: blue; font-size: small;">mSample</span><span style="font-size: small;">, we need to type cast it to higher byte enabled data type e.g. int.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><b><span style="color: purple;">int </span></b></span><span style="color: blue; font-size: small;">abmSample </span><span style="font-size: small;">= <b>0xFF & (int) mSample</b>;</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Why do I need to do AND operation with 0xFF ?</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">0xFF makes remaining bits apart from first 1 byte value to 0. So, you get absolute value i.e. 142.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">I have written an utility Class <a href="http://code.google.com/p/android-java-sample-code/downloads/list">ByteUtils.java</a> which provides methods to convert byte array to Hexadecimal values, Integers and Long. This sample also considers byte ordering i.e. Little and Big endian. Hope this small write up helps people in understanding byte level data handling in Java.</span></div>
</div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com1tag:blogger.com,1999:blog-8883357886079721926.post-23922851188978284182011-10-06T20:10:00.002+05:302016-01-15T09:23:50.783+05:30Excel Column Sequence Algorithm<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">One of my friend came up with a question..."How do you find out the sequence of MS Excel column ?", lets put this in an another way, If I tell you one Excel Sheet column sequence e.g. ABA how do you find out the index of the column e.g. AA is 27th column, AB is 28th column.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">So, I thought to put this as an Algo; with this if you have any sequence, you will be able to compute the column number-</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="color: blue; font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><b>Column Number </b>= Alphabet Seq Number </span><span style="color: #3d85c6; font-size: small;">(right most)</span><span style="font-size: small;"> + Alphabet Seq Number * 26 + Alphabet Seq Number * (26*26) + .......... + Alphabet Seq Number </span><span style="color: #3d85c6; font-size: small;">(left most)</span><span style="font-size: small;"> * (p-1 times multiplication of 26)</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Where, </span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Alphabet Seq Number = 1-26, (A = 1 and Z = 26)</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">p = number of Alphabets in the Column Sequence e.g. for "ABC", p = 3. Here is C at position 1, B at 2 and A at 3.</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">So, with the above formula, Column number for </span><span style="color: blue; font-size: small;">ABC = C + B * 26 + A * (26 * 26) </span></div>
<div style="color: blue; font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">= 3 + 2 * 26 + 1* (26*26) = <b>731</b></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">So, what about doing the reverse i.e. generate the sequence from column number. To do this, we need to divide the number by 26 and consider the reminders to pick the Alphabet. The sequence of reminders that we get from 731 are 3 (C), 2(B), 1(A), so the Column sequence is "ABC" (<i>last reminder value at the first</i>).</span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;">Please find the <a href="http://code.google.com/p/android-java-sample-code/downloads/list">CalculateExcelColumn.java</a> to generate Column sequence from Column number. Hope the Algo helps...:-)</span></div>
</div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com1tag:blogger.com,1999:blog-8883357886079721926.post-83154404996461985682011-08-04T20:58:00.006+05:302016-01-15T09:00:30.894+05:30What WebView can do in Android ?<div dir="ltr" style="text-align: left;" trbidi="on">Well, the answer is, <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a> can help to create wonderful Mobile UI without the pain of Android's Layouts. <span style="color: blue;">Sometime simple is not that simple!</span> Before even I know about WebView, to me Android's XML based UI option was the simplest in the world. But Android can go beyond that....It provides the amazing WebView which lets you to develop UI in World's most simple language i.e. HTML/JavaScript. So, <span style="color: blue;">simple can be that simple</span>..what do you think :-)<br />
<br />
As I'll move on and start describing more about WebView, probably few questions already started hovering....<b><i>How do I call my Android Activity or Java classes from my WebView ?</i></b> or <b><i>How do I call a JavaScript method from my Android Activity ?</i></b> These are valid questions and answer is, both of them are possible with WebView and I'll explain both of them. So, its cool right!!<br />
<br />
<b>WebView</b> is the same programming construct which runs behind Android's browser. So "<i>ideally</i>" you can run everything on WebView which you can on Android browser i.e. Flash, HTML. JavaScript, JQuery, Mobile JQuery etc. It helps in-terms of reducing the development effort while replicating UI of Web platform to Mobile.<br />
<br />
Let's start with coding. WebView is a sub-class of View so you can set an instance of it on the screen by calling <u>setContentView()</u> of your Activity class. I'll first create and initialize an WebView instance-<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
Now set the HTML/Flash Web resource to WebView (local stored in <b>asset</b> folder or remote resource hosted on Server)-<br />
<img alt="" src="data:image/png;base64,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" /><br />
There will be a loading delay depending upon whether it is a Local or Server resource, moreover there will be rendering delay as well. To know when page loading is over, we can set callbacks-<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
While WebView process the page, you can show helpful progress dialog to users. <i><u>shouldOverrideUrlLoading()</u></i> method makes sure all HREF link clicks gets resolved by WebView instead of launching Android Browser.<br />
<br />
Now, you can set the mWebView on the screen and that's it!! <br />
<img alt="" src="data:image/png;base64,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" style="cursor: move;" /><br />
Lets do a bit more interesting stuff. I'll put a button on my HTML page which will Call a JavaScript method and that method indirectly Call a Java Method. Java method will show a progress dialog and then call another JavaScript method to update text of some HTML DIV element. Please find the attached sample code, <a href="http://code.google.com/p/android-java-sample-code/downloads/list"><b>AndroWebView.zip</b></a>.<br />
<br />
To make a Java Class's methods accessible to JavaScript code, we need to register an instance of the class with a <i>constant name</i> which we'll refer as JavaScript object-<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
To call methods of this Java class from JavaScript, you first need to check whether it supports "<b>native_java</b>" object and if it supports, you can call its methods (<i>getDataFromJava()</i> is defined in <u>JSImp.java</u>),<br />
<img alt="" src="data:image/png;base64,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" /><br />
Here one thing you need to keep in mind while calling Activity/View instance from JavaScript; JavaScript/WebView runs in a different thread, so any Activity/View specific calls should be performed using Handler running on UI Thread.<br />
<br />
Now, lets check how to call a JavaScript method from Java. It is simple, but you need to just make sure, you call a JavaScript method only when page loading is done by WebView.<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
There are few limitations like, you can only exchange<i> primitive data type</i> values from JavaScript-to-Java and vice verse. So, to avoid this limitation, you can convert complex object structure to JSON string and pass them as String argument between JS-Java.<br />
<br />
With the latest JavaScript frameworks like <a href="http://jquerymobile.com/">JQuery Mobile</a> you can create fancy Mobile UI using just HTML (or HTML5) and JavaScript. This reduces significantly the development effort and the complexity of UI layouts.<br />
So, next time when you start to design Android UI, you can give a thought to create that in HTML/JavaScript and with WebView....:-) with this I'm signing off and hope it helps....<br />
<br />
</div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com6tag:blogger.com,1999:blog-8883357886079721926.post-51762908656793004512011-06-13T16:36:00.003+05:302016-01-15T09:19:47.657+05:30Multi-Threaded Execution Control<div dir="ltr" style="text-align: left;" trbidi="on">In this tutorial I'll explain mechanism to control multiple thread execution sequence. To explain the concept, I'll consider a sample execution scenario where a set of operations execute in sequence, but each operation runs in different threads. Lets consider content download scenario, Login to the Content Server -> Browse Content -> Download Content. 3 Threads will execute each of these operations and these operations are inter dependent and will follow the order, <span style="color: blue;">login - browse - download</span>.<br />
<m:smallfrac m:val="off"> <m:dispdef> <m:lmargin m:val="0"> <m:rmargin m:val="0"> <m:defjc m:val="centerGroup"> <m:wrapindent m:val="1440"> <m:intlim m:val="subSup"> <m:narylim m:val="undOvr"> </m:narylim></m:intlim> </m:wrapindent> </m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac><br />
Let's jump into the implementation, we'll have Synchronized blocks for 3 different functions and we'll do thread execution control using <i style="color: blue;">wait()/notifyAll()</i> methods. To determine the order of execution we'll use one variable <b><i>state</i> </b>which can hold 3 different values- <i style="color: blue;">Login</i>, <i style="color: blue;">Browse</i><span style="color: blue;"> </span>and <i style="color: blue;">Download</i>.<br />
<m:smallfrac m:val="off"> <m:dispdef> <m:lmargin m:val="0"> <m:rmargin m:val="0"> <m:defjc m:val="centerGroup"> <m:wrapindent m:val="1440"> <m:intlim m:val="subSup"> <m:narylim m:val="undOvr"> </m:narylim></m:intlim> </m:wrapindent> </m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac><br />
Synchronization blocks will be locked with a <b><i>Private Object</i></b> lock. This is more effective and fail proof then using the <b><i>this</i> </b>as Object lock. All 3 functions will share same lock, so any thread can execute only one function at a time.<br />
When one thread is done with its execution, it needs to notify all other threads by calling <i style="color: blue;">lock.notifyAll()</i> and release the lock by calling <i style="color: blue;">lock.wait()</i>. Apart from this the currently executing thread should also change the value of state which will indicate who will be the next thread or function to execute.<br />
I have written 3 functions, login(), browse() and download() as part of <span style="color: blue;">Operation</span> class and all these 3 functions share lock of same private object. <span style="color: blue;">MyThread</span> class is a thread implementation and there are 3 thread instances, each executes only one of the 3 functions.<br />
<br />
<b>Output of the following code-</b><br />
<m:smallfrac m:val="off"> <m:dispdef> <m:lmargin m:val="0"> <m:rmargin m:val="0"> <m:defjc m:val="centerGroup"> <m:wrapindent m:val="1440"> <m:intlim m:val="subSup"> <m:narylim m:val="undOvr"> </m:narylim></m:intlim> </m:wrapindent> </m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">login....</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">login.....[DONE]</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">browse....</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">browse.....[DONE]</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">download....</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">download.....[DONE]</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">login....</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">login.....[DONE]</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">browse....</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">browse.....[DONE]</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">download....</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: blue; font-family: "Courier New"; font-size: 10pt; line-height: 115%;">download.....[DONE]</span></div><br />
<m:smallfrac m:val="off"> <m:dispdef> <m:lmargin m:val="0"> <m:rmargin m:val="0"> <m:defjc m:val="centerGroup"> <m:wrapindent m:val="1440"> <m:intlim m:val="subSup"> <m:narylim m:val="undOvr"> </m:narylim></m:intlim> </m:wrapindent> </m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">package</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> com.ds.thread;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="font-family: "Courier New"; font-size: 10pt;">/**</span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><u><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Multi</span></u><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Threaded</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">sequential</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">execution</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">control.</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f9fbf; font-family: "Courier New"; font-size: 10pt;">@author</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><u><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">prasanta</span></u><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*/</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">class</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> SequentialThreadAccess {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">/**</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Operation</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">class</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">executes</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">3</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">different</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">functions</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Login</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-></span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Browse</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-></span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><u><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Download</span></u><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Note:</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Make</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">sure</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">you</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">run</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">wait()</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">and</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">notifyAll()</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">on</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">the</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Object,</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">whose</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">you</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">are</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">using.</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">In</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">this</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">case,</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Object</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">lock,</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">so</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">lock.wait()</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">and</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">lock.notifyAll().</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f9fbf; font-family: "Courier New"; font-size: 10pt;">@author</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><u><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">prasanta</span></u><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*/</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">private</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">static</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">class</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">static</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">final</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = 0;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">static</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">final</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">BROWSE</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = 1;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">static</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">final</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">DOOWNLOAD</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = 2;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// My Lock object</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">private</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">final</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Object </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Object();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> login()</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">synchronized</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">) {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">true</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> != </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Release the Lock</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.wait();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> } </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (InterruptedException e) {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> e.printStackTrace();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"login...."</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">{</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// some processing delay</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Thread.<i>sleep</i>(1000);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(Exception ex){}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"login.....[DONE]"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// I'm done, let Browsing to run</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">BROWSE</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.notifyAll();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Synchronized Section- END</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> browse()</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">synchronized</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">) {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">true</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> != </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">BROWSE</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Release the Lock</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.wait();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> } </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (InterruptedException e) {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> e.printStackTrace();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"browse...."</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">{</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// some processing delay</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Thread.<i>sleep</i>(1000);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(Exception ex){}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"browse.....[DONE]"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">DOOWNLOAD</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// I'm done, let <u>Downloading</u> to run</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.notifyAll();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Synchronized Section- END</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> download()</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">synchronized</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">) {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">true</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> != </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">DOOWNLOAD</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Release the Lock</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.wait();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> } </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> (InterruptedException e) {</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> e.printStackTrace();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"download...."</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">{</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// some processing delay</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Thread.<i>sleep</i>(1000);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(Exception ex){}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"download.....[DONE]"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">state</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = </span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// I'm done, let Login to run</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">lock</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.notifyAll();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Synchronized Section- END</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">static</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">class</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">extends</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Thread</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;">{</span><span lang="NL-BE" style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span lang="NL-BE" style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span lang="NL-BE" style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">opCode</span><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> = Operation.</span><i><span lang="NL-BE" style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span lang="NL-BE" style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation </span><span lang="NL-BE" style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">op</span><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span lang="NL-BE" style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span lang="NL-BE" style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread(String name, </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> opCode, Operation op){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">super</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(name);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span lang="NL-BE" style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">this</span></b><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;">.</span><span lang="NL-BE" style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">opCode</span><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> = opCode;</span><span lang="NL-BE" style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span lang="NL-BE" style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">this</span></b><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;">.</span><span lang="NL-BE" style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">op</span><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> = op;</span><span lang="NL-BE" style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span lang="NL-BE" style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> run(){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">true</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">switch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">opCode</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">case</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">:</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">op</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.login();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">break</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">case</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">BROWSE</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">:</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">op</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.browse();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">break</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">case</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">DOOWNLOAD</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">:</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">op</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.download();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">break</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">static</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> main(String[] args){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">//fiboSeq(15);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation op = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Operation();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread th1 = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"TH1"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">, Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">LOGIN</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">, op);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread th2 = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"TH2"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">, Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">BROWSE</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">, op);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread th3 = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> MyThread(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"TH3"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">, Operation.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">DOOWNLOAD</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">, op);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> th1.start();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> th2.start();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> th3.start();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> }</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"><span style="color: black; font-family: "Courier New"; font-size: 10pt;">}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><br />
</div></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0tag:blogger.com,1999:blog-8883357886079721926.post-28839892304163791562011-04-12T13:13:00.002+05:302016-01-15T09:00:30.885+05:30JSON to Java Bean conversion for Android<div dir="ltr" style="text-align: left;" trbidi="on">I have written a small add-on for inbuilt JSON Lib of Android (<i>org.json.*</i>). Android's in-build JSON library is very permeative and provides just the basic functionalities. There is no Tokenize functionality which can automatically convert a JSON string into its relevant Java Bean class.<br />
<br />
Though there are few alternate open source libraries like <a href="http://jackson.codehaus.org/">jackson-json</a>, <a href="http://code.google.com/p/google-gson/">gson</a> etc. But the inbuilt JSON library of Android is pretty simple to use and with this add-on you'll be able to get the missing flavor of auto-bean conversion.<br />
<br />
<b>How to use it ?</b><br />
Please download the <a href="http://google-spreadsheet-lib-android.googlecode.com/files/JSONHandler.java">JSONHandler.java</a> and include in your Android project source code. It provides an important method parse() which can convert a JSON string into Java Bean class.<br />
It uses Java re-factoring, so Bean class field name and JSON property name should exactly match. Let's look into how to parse a simple JSON structure-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">String jsonString = "{name: 'Jon Smith', id: 1234, " +</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> </span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> </span></span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">"address: {cityName: 'San Diego', pinCode:345, latitude: 23.789, longitude: 78.965}," +</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> "}";</span><br />
To parse above JSON structure you need to create a Bean class- Person.java having following properties and their Get/Set methods-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">String name;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">int id;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Address address;</span><br />
As you can see Address is again a custom class- Address.java having following properties and their Get/Set methods-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">String cityName;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">int pinCode;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">double latitude;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">double longitude;</span><br />
<br />
Once you define above 2 bean classes, you can use following piece of code to parse the JSON string into above bean class-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Person person = (Person)(new JSONHandler().parse(jsonString, Person.class, "com.prasanta"));</span><br />
In the above code piece, "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">com.prasanta</span>" is the name of base package under which Bean classes are defined.<br />
<br />
Let's take an example where the JSON String itself is an Array-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">String jsonString = "messages: [{id: 1, sub: 'Hi1', msg: 'I am here1'}, {id: 2, sub: 'Hi2', msg: 'I am here2'}]";</span><br />
Above information represents an array of Message objects. Structure of Message.java (with Get/Set methods)-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">int id;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">String sub;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">String msg;</span><br />
<br />
JSONHandler.parse() method accepts only JSON Object and not JSONArray. So, we need to parse this array and pass individual JSON Object to the parse()-<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">JSONObject object = (JSONObject) new JSONTokener(json_resp.getResponseMessage()).nextValue();</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">JSONArray messages = object.getJSONArray("messages");</span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">for(int i=0; i LT <len; i++){=""></len;>messages.length(); i++){</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> JSONObject message = messages.getJSONObject(i);</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> </span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Message msg = (Message)new JSONHandler().parse(message.toString(), Message.class, "com.prasanta");</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
In the above code piece, "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">com.prasanta</span>" is the name of base package under which Bean classes are defined.<br />
<br />
So, how good is that :-) You can enhance the parsing logic as per your requirement. </div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com7tag:blogger.com,1999:blog-8883357886079721926.post-7131752611246044002011-04-07T12:11:00.005+05:302016-01-15T09:31:32.509+05:30Overriding In JavaScript<div dir="ltr" style="text-align: left;" trbidi="on"><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt;">Here I'll explain the usage of a powerful keyword/programming structure of JavaScript, "<span class="Apple-style-span" style="color: blue;"><i>prototype</i></span>". It is one of the member variable of Function object and <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"><b>Function</b></a> object is kind of Supper class for any function that you write in JavaScript. Every function in Javascript is of type <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function"><b>Function</b></a> object.<br />
<br />
"<span class="Apple-style-span" style="color: blue;"><i>prototype</i></span>" provides really a powerful and simple way of extending JavaScript Object and Override their existing functions. <u><span class="Apple-style-span" style="color: blue;">Prototype</span> provides additional look up chain for variable and method definition search</u>. <br />
<br />
So, lets take an example, say there is a JavaScript object <span class="Apple-style-span" style="color: purple;">Person</span> having First and Last name and we want to override the default <i>toString()</i> method of <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/prototype"><b>prototype</b></a> property. <i>toString()</i> displays string representation of any object.<br />
<span class="Apple-style-span" style="color: purple;"><b>function</b></span> <span class="Apple-style-span" style="color: purple;">Person</span>(fname, lname){<br />
this.fname = fname;<br />
this.lname = lname;<br />
}<br />
<span class="Apple-style-span" style="color: purple;">Person</span>.<span class="Apple-style-span" style="color: blue;"><span class="Apple-style-span" style="background-color: #cccccc;">prototype</span></span>.toString = function(){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return "Person Name: "+ fname +" "+ lname;<br />
};<br />
<b> Usage-</b><br />
<b> var</b> <span class="Apple-style-span" style="color: blue;">person</span> = new <span class="Apple-style-span" style="color: purple;">Person</span>("Alan", "Miers");<br />
alert(<span class="Apple-style-span" style="color: blue;">person</span>);<br />
<br />
Now, lets define the <span class="Apple-style-span" style="color: purple;">Person</span> object with 2 methods <span class="Apple-style-span" style="color: blue;">displayName</span>() and <span class="Apple-style-span" style="color: blue;">reverseName</span>().<br />
<span class="Apple-style-span" style="color: purple;"><b>function</b></span> <span class="Apple-style-span" style="color: purple;">Person</span>(fname, lname){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>this.fname = fname;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>this.lname = lname;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>};<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>// Add methods<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: purple;">Person</span>.<span class="Apple-style-span" style="color: blue;"><span class="Apple-style-span" style="background-color: #cccccc;">prototype</span></span>.fullName = function(){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return this.fname + " "+ this.lname;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>};<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: purple;">Person</span>.<span class="Apple-style-span" style="color: blue;"><span class="Apple-style-span" style="background-color: #cccccc;">prototype</span></span>.reverseName = function(){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return this.lname + " "+ this.fname;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>};</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt;"><br />
A good source of JavaScript guide- <a href="https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript"><b>Mozilla Development Network</b></a></span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0tag:blogger.com,1999:blog-8883357886079721926.post-49569248318832328672011-03-25T14:40:00.006+05:302016-01-15T09:31:32.489+05:30Aspect Ratio came to rescue<div dir="ltr" style="text-align: left;" trbidi="on">In my present assignment I had to deal with large JPEGs (<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: blue;">2000px:3000px</span></span>) images and wanted to store their scaled version (preferably of size <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: blue;">400px:500px</span></span>).<br />
If we randomly scale an image without considering its Aspect Ratio, the resized image looses clarity very quickly (depends upon how smaller you are trying to make it).<br />
<br />
The solution is <a href="http://en.wikipedia.org/wiki/Aspect_ratio_%28image%29">Aspect Ratio</a>. So, you have the original width and height ratio (<span class="Apple-style-span" style="color: blue;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">2000px:3000px</span></span>) and need to find out scaled width and height. We need to keep either width or height fix. In my case, I kept the scale width fixed to "<span class="Apple-style-span" style="color: blue;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">400px</span></span>". Now, if we apply a simple mathematic equation-<br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: blue;">width_original : height_original = width_scale : height_scale</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: blue;">height_scale = (width_scale * height_original) / width_original</span></span><br />
<br />
So, height_scale will be <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: blue;">600p</span></span><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: blue;">x</span></span>.<br />
<br />
Above calculation will determine the scale width and height which will make sure your scaled image is keeping original Aspect Ratio intact and thus you'll get the best quality resized image!<br />
<br />
I am using Java <a href="http://download.oracle.com/javase/1.4.2/docs/api/javax/imageio/ImageIO.html">ImageIO</a> package to handle Image resizing part. Following is the code snippet (<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><i>file</i></span> is the source of the original image)-<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">final</span> int <span class="Apple-style-span" style="color: blue;">SCALE_WIDTH</span> = 400;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// Read the original Image</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">BufferedImage</span> srcImage = <span class="Apple-style-span" style="color: purple;">ImageIO</span>.read(file.getInputStream());</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// Get original Width and Height</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">int <span class="Apple-style-span" style="color: blue;">originalWidth</span> = srcImage.getWidth();</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">int <span class="Apple-style-span" style="color: blue;">originalHeight</span> = srcImage.getHeight();</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// Scale width and height</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">int <span class="Apple-style-span" style="color: blue;">newWidth</span> = <span class="Apple-style-span" style="color: blue;">originalWidth</span>;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">int <span class="Apple-style-span" style="color: blue;">newHeight</span> = 0;</span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">if(<span class="Apple-style-span" style="color: blue;">newWidth</span> GREATER_THAN <span class="Apple-style-span" style="color: blue;">SCALE_WIDTH</span>)</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"> newWidth = SCALE_WIDTH;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">//Find out scaled Height</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">newHeight = (newWidth * originalHeight)/originalWidth;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// Save resized image</span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">BufferedImage</span> dest = new <span class="Apple-style-span" style="color: purple;">BufferedImage</span>(newWidth, newHeight, BufferedImage.TYPE_INT_RGB); </span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">Graphics2D</span> g = dest.createGraphics(); </span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">AffineTransform</span> at = <span class="Apple-style-span" style="color: purple;">AffineTransform</span>.getScaleInstance(</span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">(double) newWidth / srcImage.getWidth(),</span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">(double) newHeight / srcImage.getHeight()); </span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">g.drawRenderedImage(<span class="Apple-style-span" style="color: blue;">srcImage</span>, <span class="Apple-style-span" style="color: blue;">at</span>); </span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">ImageIO</span>.write(<span class="Apple-style-span" style="color: blue;">dest</span>, <span class="Apple-style-span" style="color: blue;">format</span>, <span class="Apple-style-span" style="color: blue;">file</span>); </span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"><br />
</span></span></span></span></span></span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;">That's it. Hope it helps.</span> </span></span></span><span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"> </span></span></span></span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0tag:blogger.com,1999:blog-8883357886079721926.post-63206025984784372462011-03-17T09:18:00.028+05:302016-01-15T09:31:32.502+05:30Regular Expression in JavaScript<div dir="ltr" style="text-align: left;" trbidi="on">I was struggling to get familiar with JavaScript's <i>Regular expression</i> handling and thought my learning might help others. Here I'll explain <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec">exec()</a> function to parse/search matching regular expression in a given string.<br />
<br />
<i>Regular Expression</i> is a special string in JavaScript which need to be inside of 2 "<b>/</b>" characters i.e. <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><b>/</b>REG_EXP<b>/</b></span>, you don't need to use <b>'</b> or <b>"</b> characters. "<b>i</b>" and "<b>g</b>" followed by last "<b>/</b>" indicates whether you want to do <b><i>i</i></b><i>gnore case</i> and <b><i>g</i></b><i>lobal search</i>. <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">REG_EXP</span> can contain all standard <a href="http://en.wikipedia.org/wiki/Regular_expression">regular expression syntax</a>. Another important thing, we need to escape any Regular expression character if you put this in <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">REG_EXP</span> with "<b>\</b>" e.g. <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">/\d{3}/</span>. That's it! we are now almost ready to use Regular Expression. Following is a quick reference of mostly used RegEx Literals-<br />
<br />
<b>Position Matching: </b><br />
<span class="Apple-style-span" style="color: blue;">^</span> (Start of String), <span class="Apple-style-span" style="color: blue;">$</span>(End of String), <span class="Apple-style-span" style="color: blue;">\b</span>(Word Boundary) and <span class="Apple-style-span" style="color: blue;">\B</span>(Non Word boundary)<br />
<br />
<b>RegEx Special Literals:</b> <span class="Apple-style-span" style="color: blue;">w, W, d, D, s, S</span><br />
<br />
<b>Repetition:</b><br />
<span class="Apple-style-span" style="color: blue;">{1}</span>- One time. <span class="Apple-style-span" style="color: blue;">{1,}</span>- One or more time, <span class="Apple-style-span" style="color: blue;">*</span> (Zero or More), <span class="Apple-style-span" style="color: blue;">+</span> (One or More) and <span class="Apple-style-span" style="color: blue;">?</span> (Zero or One). Repetition symbols are used along with RegEx Literals e.g. <span class="Apple-style-span" style="color: blue;">\w*</span> (Zero or More Word Characters), <span class="Apple-style-span" style="color: blue;">\d{3}-</span> (3 Numeric characters)<br />
<span style="color: blue;">[]</span>- matches any char. <span style="color: blue;">[a]</span>- matches only "a". <span style="color: blue;">[^a]</span> matches any character other than a. <span style="color: blue;">[^#]+</span> matches any sequence of string not having "<span style="color: blue;">#</span>". <br />
<br />
<b>Logical OR and Grouping:</b><br />
<span class="Apple-style-span" style="color: blue;">/(ab)/</span>- any occurrence of "ab". <span class="Apple-style-span" style="color: blue;">/(ab)|(xy)/</span> matches either "ab" or "xy".<br />
<br />
Now, lets start with some example scenarios. Following code snippet will find out occurrence of "ex" sub string-<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">str</span> = "some string example with expression"; // change this with HTML str</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">rg</span> = <span class="Apple-style-span" style="color: blue;">/ex/g</span>; // replace this with your REG ExPression</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">ma</span> = null;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// I'm using Firebug</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">while((ma = rg.<span class="Apple-style-span" style="color: blue;">exec</span>(str)) != null){</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"> console.log("Match Index="+ ma.index +" #"+ ma[0] );</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"> console.log("REG LastIndex="+ rg.lastIndex +" GL="+ rg.global +" Source="+ rg.source);</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">}</span><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">exec()</span></i> method stores the next index to be used to resume search in the regiular expression variable i.e. "<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">rg</span>". Make sure you make it global search <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">/g</span> otherwise it will start from beginning and end up in a Infinite Loop!<br />
<br />
Let's look into the <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">Regular Expression</span> to replace all <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">width</span> and <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">height</span> attributes of the <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">HTML</span> string. I'll replace all <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">width</span> and <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">height</span> values to <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">285</span> and <span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">200</span> respectively and will try to keep postfix "<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">px</span>" (if there is any) as it is.<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">html</span> = '<span class="Apple-style-span" style="color: blue;">[div style="width: 400px; height: 500px"][iframe width="400" height="500"][/div]</span>';</span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// Regular Expression for width and height attributes</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// <span class="Apple-style-span" style="color: blue;">[Word Start]width="[One or More Digit]"</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">wdrx</span> = <span class="Apple-style-span" style="color: blue;">/\bwidth="\d+"/ig</span>;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">htrx</span> = <span class="Apple-style-span" style="color: blue;">/\bheight="\d+"/ig</span>;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// Regular Expression for width and height within Style</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">// <span class="Apple-style-span" style="color: blue;">[Word Start]width:[Zero Or more space][One or more Digit]</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">style_wdrx</span> = <span class="Apple-style-span" style="color: blue;">/\bwidth:\s*\d+/ig</span>;</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">var <span class="Apple-style-span" style="color: purple;">style_htrx</span> = <span class="Apple-style-span" style="color: blue;">/\bheight:\s*\d+/ig</span>; </span><br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;">//Replace statements-</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">html</span> = <span class="Apple-style-span" style="color: purple;">html</span>.replace(<span class="Apple-style-span" style="color: purple;">wdrx</span>, 'width="285"');</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">html</span> = <span class="Apple-style-span" style="color: purple;">html</span>.replace(<span class="Apple-style-span" style="color: purple;">htrx</span>, 'height="200"');</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">html</span> = <span class="Apple-style-span" style="color: purple;">html</span>.replace(<span class="Apple-style-span" style="color: purple;">style_wdrx</span>, 'width: 285');</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="color: purple;">html</span> = <span class="Apple-style-span" style="color: purple;">html</span>.replace(<span class="Apple-style-span" style="color: purple;">style_htrx</span>, 'height: 200');</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman';"><br />
</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman';">It seems it is going good...:-) Now let's try something different, say you want to replace all HREF </span>([a href=""]I'm a Link[/a])<span class="Apple-style-span" style="font-family: 'Times New Roman';"> links from your HTML code snippet.</span></span><br />
<div class="separator" style="clear: both; text-align: left;"><a href="http://i.imgur.com/OjW93.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="49" src="http://i.imgur.com/OjW93.jpg" width="640" /></a></div><span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"><span class="Apple-style-span" style="font-family: 'Times New Roman';"><br />
</span></span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com2tag:blogger.com,1999:blog-8883357886079721926.post-81089992564205063432011-03-10T06:10:00.007+05:302016-01-15T09:31:32.515+05:30JSON- Parsing Apache Lib<div dir="ltr" style="text-align: left;" trbidi="on">I'm back again, last few months I was busy with my own Web 2.0 project and trying to build a platform which will use advance JavaScript and once that is done will write a JSON based Web API which can be accessed from Mobiles. So, thought lets share few exploration on Javascript and JSON. Here I'll explain how we can efficiently parse JSON to Java Object and vice verse. So if you are looking for similar stuff, keep reading following sections...<br />
<br />
JSON (JavaScript <b>Object</b> Notation) is an wonderful and light weight piece of Object notation for data exchange. If you compare this with XML, you can easily make out that this representation is pretty compact compared to XML which need to use extra piece of information (XML Node name, start and end tags) to distinguish each node. Moreover JSON is closer to <b>Object </b>representation of your programming language Java or it is very easily supported in JavaScript (<a href="http://www.json.org/js.html"><i>eval()</i></a>). So if you are using<br />
AJAX, this is the best fit.<br />
<br />
So, next time you are planning to develope a data exchange system probably you can choose JSON instead of XML.<br />
<br />
<b>I will demonstrate 2 important portions of data exchange modules- </b><br />
Convert data from your native Objects (Java Objects) to JSON and get data back from JSON to your native Objects (Java Objects).<br />
This conversion should be generic enough and easy to do, so that you can seemlessly add this exchange module without worrying too much about your present Object model.<br />
<br />
<b>Pre-requisites:</b><br />
I am using <a href="http://json-lib.sourceforge.net/">Apache JSON-Lib (JDK1.5)</a>. The library is wonderfull, but the document doesn't indicate all dependent libraraies. So, make sure you download below Apache JARs as well-<br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: blue;">commons-beanutils-1.8.3-bin.zip</span>, <span class="Apple-style-span" style="color: blue;">commons-lang-2.6-bin.zip</span>, <span class="Apple-style-span" style="color: blue;">ezmorph-1.0.6.jar</span>, <span class="Apple-style-span" style="color: blue;">commons-collections-3.1.jar</span> and <span class="Apple-style-span" style="color: blue;">commons-io-2.0.1.jar</span></span><br />
<br />
The reason I am writting this is, there is no straight forward answer on Apache site which explains how to convert JSON to Java and vice verse for <b>Complex Objects</b>.<br />
<br />
Lets start with the Object structure that we'll use to do JSON to Java and Java to JSON.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/6XI28.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="322" src="http://i.imgur.com/6XI28.jpg" width="400" /></a></div><br />
<br />
<b>Note:</b><br />
Please make sure your create Java Bean compatible <span style="color: blue;">Get</span> and <span style="color: blue;">Set </span>methods.<br />
<br />
Java code to convert Bean object to JSON String- <br />
<div style="font-family: "Courier New",Courier,monospace; text-align: justify;"><span style="color: purple;"><b>Message</b> </span><span class="Apple-style-span" style="color: blue;"> m</span> = new <b><span style="color: purple;">Message()</span></b></div><div style="font-family: "Courier New",Courier,monospace; text-align: justify;">// Steps to fill in data into Message object</div><div style="font-family: "Courier New",Courier,monospace; text-align: justify;">// Now, convert Java object to JSON</div><div style="font-family: "Courier New",Courier,monospace; text-align: justify;"><u><span style="color: purple;">JSON </span></u><span class="Apple-style-span" style="color: blue;"> json</span> = <u><span style="color: purple;">JSONSerializer</span></u>.<span style="color: blue;">toJSON(m)</span>;</div><div style="font-family: "Courier New",Courier,monospace; text-align: justify;"><span style="color: purple;">String </span>jsonString = json.toString();</div><br />
<b>Thats it!</b> The Libraray it self is awesome, but need some more document, otherwise it takes time to figure out its features.<br />
<br />
Now, lets do things in reverse i.e. convert JSON string to Java object. For this I'll use the String that I have just converted from my message Class- <br />
<div style="font-family: "Courier New",Courier,monospace;">{</div><div style="font-family: "Courier New",Courier,monospace;"> "ads" : {</div><div style="font-family: "Courier New",Courier,monospace;"> "lat" : 23.789,</div><div style="font-family: "Courier New",Courier,monospace;"> "lng" : 56.89,</div><div style="font-family: "Courier New",Courier,monospace;"> "location" : "out of the world"</div><div style="font-family: "Courier New",Courier,monospace;"> },</div><div style="font-family: "Courier New",Courier,monospace;"> "arrayAds" : [{</div><div style="font-family: "Courier New",Courier,monospace;"> "lat" : 23.567,</div><div style="font-family: "Courier New",Courier,monospace;"> "lng" : 45.678,</div><div style="font-family: "Courier New",Courier,monospace;"> "location" : "A1"</div><div style="font-family: "Courier New",Courier,monospace;"> }, {</div><div style="font-family: "Courier New",Courier,monospace;"> "lat" : 23.567,</div><div style="font-family: "Courier New",Courier,monospace;"> "lng" : 45.678,</div><div style="font-family: "Courier New",Courier,monospace;"> "location" : "A2"</div><div style="font-family: "Courier New",Courier,monospace;"> }</div><div style="font-family: "Courier New",Courier,monospace;"> ],</div><div style="font-family: "Courier New",Courier,monospace;"> "id" : 1,</div><div style="font-family: "Courier New",Courier,monospace;"> "msg" : "Hi, its me",</div><div style="font-family: "Courier New",Courier,monospace;"> "recipents" : ["u123 thy", "u234"],</div><div style="font-family: "Courier New",Courier,monospace;"> "sender" : "Alan"</div><div style="font-family: "Courier New",Courier,monospace;">}</div><br />
Java code to convert JSON string to Java Bean Object-<br />
Declare the type of Custom Object ArrayList you are going to use. In my example class, Message has a member variable arrayAds, an ArrayList of Address class (Custom Object) <br />
<div style="font-family: "Courier New",Courier,monospace;"><br />
</div><div style="font-family: "Courier New",Courier,monospace;"><span style="color: purple;">Map</span> <span class="Apple-style-span" style="color: blue;">classMap</span> = new <span style="color: purple;">HashMap</span>(); </div><div style="font-family: "Courier New",Courier,monospace;"><span class="Apple-style-span" style="color: blue;">classMap</span>.put("arrayAds", <span style="color: purple;">Address</span>.class);</div><br />
Declare your base class i.e. Message.class. toBean() method does the parsing using Java refactor technology. <br />
<br />
<div style="font-family: "Courier New",Courier,monospace;"><span style="color: purple;">Message </span><span class="Apple-style-span" style="color: blue;"> m</span> = (<span style="color: purple;">Message</span>)<u><span style="color: purple;">JSONObject</span></u>.toBean(</div><div style="font-family: "Courier New",Courier,monospace;">JSONObject.fromObject(json), Message.class, classMap);</div><br />
<b>Thats it!</b> Now you can access the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: purple;">Message</span></span> object "<span class="Apple-style-span" style="color: blue;">m</span>". How good is that ? :-)<br />
<br />
<b><u><span class="Apple-style-span" style="background-color: #666666; color: white; width: 200px;">Update:</span></u></b><br />
If you want to <u>skip any field</u>, say you don't want to parse <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">lat</span> and <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">lng</span> values from JSON stream. To do this we have to use <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: purple;">JsonConfig</span></span> class.<br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">// Define your Configuration</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: purple;">JsonConfig</span> <span class="Apple-style-span" style="color: blue;">config</span> = new <span class="Apple-style-span" style="color: purple;">JsonConfig</span>();</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: blue;">config</span>.setClassMap(classMap);</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">// Exclude "lat" and "lng" from parsing</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: blue;">config</span>.setExcludes(new String[] {"lat", "lng"});</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: blue;">config</span>.setRootClass(<span class="Apple-style-span" style="color: purple;">Message</span>.class);</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="color: purple;">Message</span> m = (<span class="Apple-style-span" style="color: purple;">Message</span>)<span class="Apple-style-span" style="color: purple;">JSONObject</span>.toBean(<span class="Apple-style-span" style="color: purple;">JSONObject</span>.fromObject(json, config), config);</span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com1tag:blogger.com,1999:blog-8883357886079721926.post-60248614443832988562011-01-08T23:59:00.000+05:302016-01-15T09:23:50.786+05:30Alphanumeric Random NumberSometime basic things becomes tricky :-) Was trying to find out ways to generate some alphanumeric random number whose size (i.e. number of digits/alphabets) will be fixed and I should be able to decide that size. So, I came up with following algo-<br />
<br />
1. <a href="http://www.asciitable.com/">ASCII table</a> sequentially lists digits and alphabets e.g. ASCII code of 0 to 9 are ranging from 48 to 57. So I can use this sequential ASCII coding and convert them to Java Characters. Benefit, of course I can get rid of any array of predefined characters in my code.<br />
<br />
2. I want to add current time to this "randomness", so need to initialize the seed of Java <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html">Random</a> object with current timestamp. So every time I execute this, I can make sure it will be something different than previous instance.<br />
<br />
3. As I already explained, it will be alphanumeric based, so I'll exclude special characters and thus, total number of valid ASCII chars left for me is <u>62 ( 0-9, A-Z, a-z )</u>.<br />
<br />
Now, let's see how the Java code looks like. Please let me know how random is this or any better approach :-) Cheers.... <br />
<br />
<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:ApplyBreakingRules/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if !mso]><img src="http://img2.blogblog.com/img/video_object.png" style="background-color: #b2b2b2; " class="BLOGGER-object-element tr_noresize tr_placeholder" id="ieooui" data-original-id="ieooui" /> <style>
st1\:*{behavior:url(#ieooui) }
</style> <![endif]--><!--[if gte mso 10]> <style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style> <![endif]--> <br />
<div class="MsoNormal" style="text-indent: 36pt;"><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">/**</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">It</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">will</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">generate</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">ID</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">16</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">digit</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">ID</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">ASCII</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Table</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">0</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">9</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">ASCII</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">code</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">48</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">57</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">A</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Z</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">A</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">SCII</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">code</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">65</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">90</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">a</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">z</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">ASCII</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">code</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">97</span><span style="color: #7f7f9f; font-family: "Courier New"; font-size: 10pt;">-</span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">122</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">Total:</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">62</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f9fbf; font-family: "Courier New"; font-size: 10pt;">@return</span></b><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span><span> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10pt;">*/</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">private</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> String generateRandomID(){</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">final</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> ID_</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">SIZE</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> = 16;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">final</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> NUM_OF_</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">CHAR</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">S = 62;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>StringBuffer id = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> StringBuffer();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">long</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> now = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Date().getTime();</span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10pt;">// Set the new Seed as current timestamp</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>Random r = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> Random(now);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> index = 0; </span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> x = 0;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(x < ID_SIZE){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>index = r.nextInt(NUM_OF_</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">CHAR</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">S);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>System.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt;">out</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt;">.println(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt;">"Index="</span><span style="color: black; font-family: "Courier New"; font-size: 10pt;">+ index);</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">if</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(index < 10){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>id.append((</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)(48 + index));</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">else</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">if</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">(10 <= index && index <36){</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>index = index - 10;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>id.append((</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)(65 + index));</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>}</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">else</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">{</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>index = index - 36;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>id.append((</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">char</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;">)(97 + index));</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>x++;</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>}</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt;">return</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt;"> id.toString();</span><span style="font-family: "Courier New"; font-size: 10pt;"></span></div><div class="MsoNormal"><span style="color: black; font-family: "Courier New"; font-size: 10pt;"><span> </span>}</span></div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com6tag:blogger.com,1999:blog-8883357886079721926.post-39545497821534601982010-12-15T11:34:00.007+05:302016-01-15T09:26:12.196+05:30Google SpreadSheet Library for Android<div dir="ltr" style="text-align: left;" trbidi="on">You might have already tried using <a href="http://code.google.com/apis/gdata/">Google's GData Lib</a> to access SpreadSheet from Android, and after few hours of try, you start Google for any alternate solution. I have also spent number of hours without any solution. <br />
<br />
So, I have developed SpreadSheet client Lib [ <b><u>works on Android</u></b> :-) ] and ideally work on any Java platform-<br />
<a href="http://code.google.com/p/google-spreadsheet-lib-android/">http://code.google.com/p/google-spreadsheet-lib-android/</a><br />
<br />
<b>Latest version: </b>2.1 (Added support for List Feed. Please visit above link to get more info.)<br />
<br />
<b>Supported Features:</b><br />
<br />
1. Create/Delete Spreadsheet<br />
<br />
2. List all stored Spreadsheets<br />
<br />
3. Add/Delete WorkSheet into/from a given SpreadSheet<br />
<br />
4. List all Worksheets of a given Spreadsheet<br />
<br />
5. Add Records into WorkSheet/SpreadSheet (It supports <a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#TableFeeds">Table</a> based record handling)<br />
<br />
6. Retrieve Record from WorkSheet/SpreadSheet (<a href="http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#SendingStructuredRecordQueries">Structured Query</a> support)<br />
<br />
7. Retrieve Record as List Feed from Worksheet<br />
<br />
8. Update/Delete Records<br />
<br />
9. Share ShreadSheet with user/group/domain.<br />
<br />
10. Conditional data retrieval- Structured Query support<br />
<br />
11. Conditional/Structured query support for List based data retrieval<br />
<br />
12. Better Log handling. By default logging will be enabled. To turn off logging Log.disableLog() <br />
<br />
Would appreciate your feedback and love to hear any specific feature requirement.... happy to help :-)</div>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com117tag:blogger.com,1999:blog-8883357886079721926.post-38564815872834715312010-12-06T20:06:00.001+05:302016-01-15T09:26:12.187+05:30Phone Away WidgetThis Android widget will allow users to set their status and auto-response of phone calls. So, next time you are having dinner or doing anything much more interesting than attaining a call :-), you can use this widget to auto reply with an SMS message without disappointing or keep your caller guessing for your unanswered call. <br />
<br />
<b>Supported Platform</b><br />
<div class="separator" style="clear: both; text-align: center;"></div>Android 2.1 and above.<br />
<br />
<b>How to use ?</b><br />
<br />
1. Download <a href="http://code.google.com/p/phoneaway/">PhoneAwayWidget.apk</a> and add the widget on your Home screen. By default it will set you status "Available", which means your phone will behave as it is.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://imgur.com/8k5qNl.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://imgur.com/8k5qNl.jpg" /></a></div><br />
2. When you don't want to attain call and set status message, click on the widget, which in turn will launch the preference screen.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://imgur.com/aWi6xl.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://imgur.com/aWi6xl.jpg" /></a><a href="http://imgur.com/QYzaMl.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://imgur.com/QYzaMl.jpg" /></a></div><br />
<br />
3. So if you set your status, next time call comes, it will auto-response with SMS message. You can define the mximum number of SMS auto-response, e.g. Max SMS Count = 10 means, for first 10 calls it will send SMS and rest of the calls it will just disconnect.<br />
<br />
Please update me with your comments and any enhancement you want in this. Hope you'll like it. With this signing off...:-)Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com15tag:blogger.com,1999:blog-8883357886079721926.post-74467907790086162732010-11-29T17:51:00.003+05:302016-01-15T09:37:12.966+05:30NoSuchMethodError in Android AIDL<link href="file:///C:%5CDOCUME%7E1%5Cuser%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"></link><link href="file:///C:%5CDOCUME%7E1%5Cuser%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"></link><link href="file:///C:%5CDOCUME%7E1%5Cuser%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"></link> <m:smallfrac m:val="off"> <m:dispdef> <m:lmargin m:val="0"> <m:rmargin m:val="0"> <m:defjc m:val="centerGroup"> <m:wrapindent m:val="1440"> <m:intlim m:val="subSup"> <m:narylim m:val="undOvr"> </m:narylim></m:intlim> </m:wrapindent><style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin-top:0in;
margin-right:0in;
margin-bottom:10.0pt;
margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p
{mso-style-noshow:yes;
mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman","serif";
mso-fareast-font-family:"Times New Roman";}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
{mso-style-type:export-only;
margin-bottom:10.0pt;
line-height:115%;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style> <span style="font-family: "Arial","sans-serif"; font-size: 10pt;">Finally a good start of Monday :-). Resolved a weird problem of Android Framework which was disturbing me through out the weekend. One of my team mate (Sandeep) did exceptional R&D and helped me to come to this conclusion.<o:p></o:p></span><br />
<br />
<b><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">[Problem]</span></b><span style="font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="font-family: "Arial","sans-serif"; font-size: 10pt;"><span style="color: red;">NoSuchMethodError</span> exception while I was trying to access <span style="color: blue;">ISnsRequester.aidl</span> of SNSProvider.<o:p></o:p></span><br />
<span style="font-family: "Arial","sans-serif"; font-size: 10pt;">In Android 2.2 (Froyo) some of the method definitions of <span style="color: blue;">ISnsRequester.aidl</span> file has been changed. A new input argument <b>targetSubID</b> has been added to <span style="color: blue;">commentPost()</span> and <span style="color: blue;">commentRetrieve()</span> methods. </span><br />
<span style="font-family: "Arial","sans-serif"; font-size: 10pt;">But in our Android source code repository by mistake Telephony framework was still using older version of <span style="color: blue;">ISnsRequester.aidl</span> (i.e. of Android 2.1). </span></m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">This was the main cause of this problem.</span><br />
<br />
<m:smallfrac m:val="off"><m:dispdef><m:lmargin m:val="0"><m:rmargin m:val="0"><m:defjc m:val="centerGroup"><span style="font-family: "Arial","sans-serif"; font-size: 10pt;"> For all framework classes/packages Android build system (when you try to make a binary) makes entry into <span style="color: #00005e;">Android\frameworks\base\api\<b>current.xml</b></span><b> </b><o:p></o:p></span><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">In fact <span style="color: blue;">current.xml</span> acts as Look up for any method or class reference. Thus definition of <span style="color: blue;">commentPost()</span> and <span style="color: blue;">commentRetrieve()</span> methods were conflicting between <span style="color: blue;">current.xml</span> and latest AIDL in SNSProvider. When my code was trying to call <span style="color: blue;">commentPost()</span> and <span style="color: blue;">commentRetrieve() </span>methods, being the look up for Framework,<span style="color: blue;"> current.xml</span> is being searched for the method definition instead of latest AIDL in SNSProvider. This was causing force close with <span style="color: red;">NoSuchMethodError</span> exception.<o:p></o:p></span><br />
<br />
<b><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">[Conclusion]</span></b><span style="font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span><br />
<span style="font-family: "Arial","sans-serif"; font-size: 10pt;">If any AIDL is part of Android Frmaework be careful about any duplicated resource or method definition conflicts and verify the current.xml after build is over.</span></m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac><br />
<br />
<m:smallfrac m:val="off"><m:dispdef><m:lmargin m:val="0"><m:rmargin m:val="0"><m:defjc m:val="centerGroup"><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">Huh it really made me Nuts...:-D <o:p></o:p></span><br />
</m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac>Prasanta Paulhttp://www.blogger.com/profile/13374393430582071890noreply@blogger.com0