<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Nir Levy - Eureka</title><description>-- work overload --</description><managingEditor>noreply@blogger.com (Nir Levy)</managingEditor><pubDate>Mon, 15 Dec 2025 21:51:52 +0200</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">56</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://nirlevy.blogspot.com/</link><language>en-us</language><item><title>Moved to Medium</title><link>http://nirlevy.blogspot.com/2017/07/moved-to-medium.html</link><author>noreply@blogger.com (Nir Levy)</author><pubDate>Tue, 4 Jul 2017 10:08:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-3435235795588484016</guid><description>I'm putting all new stuff on Medium at&amp;nbsp;&lt;a href="https://medium.com/@nirlevy"&gt;https://medium.com/@nirlevy&lt;/a&gt;&lt;br /&gt;
See you there...</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Native Fullstack Developer for DayZz</title><link>http://nirlevy.blogspot.com/2017/06/native-fullstack-developer-for-dayzz.html</link><author>noreply@blogger.com (Nir Levy)</author><pubDate>Sun, 18 Jun 2017 12:03:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-3119830002915127907</guid><description>&lt;h1 dir="RTL" style="direction: rtl; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: &amp;quot;Calibri Light&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: major-bidi; mso-hansi-font-family: &amp;quot;Calibri Light&amp;quot;; mso-hansi-theme-font: major-latin;"&gt;מפתח &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;native fullstack&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: &amp;quot;Calibri Light&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: major-bidi; mso-hansi-font-family: &amp;quot;Calibri Light&amp;quot;; mso-hansi-theme-font: major-latin;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; line-height: 150%; text-align: right; unicode-bidi: embed;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; line-height: 150%; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;ל- &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;dayzz&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; דרוש/ה מפתח/ת
מובייל וסרבר לפיתוח מוצר חדשני בתחום ה- &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;health-tech&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;. הזדמנות
להתחיל מסע מאתגר משלביו הראשונים ולייצר פתרונות אשר ישפרו את חייהם של מיליוני
אנשים.&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; line-height: 150%; text-align: right; unicode-bidi: embed;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 dir="RTL" style="direction: rtl; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: &amp;quot;Calibri Light&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: major-bidi; mso-hansi-font-family: &amp;quot;Calibri Light&amp;quot;; mso-hansi-theme-font: major-latin;"&gt;דרישות טכניות&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class="MsoListParagraphCxSpFirst" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;לפחות 3 שנים בפיתוח בעולמות הווב/מובייל כולל פיתוח &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;javascript&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; ברמה גבוהה&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;לפחות שנה בפיתוח אינטנסיבי ב-&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;react&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;, &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;react-native&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; או &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;native
android/ios&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;ניסיון בפיתוח צד שרת מבוסס &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;node.js&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; &lt;span lang="HE"&gt;או
&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;django/python&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; &lt;span lang="HE"&gt;ובמיוחד פיתוח &lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;API&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;ניסיון בפיתוח מעל בסיס נתונים &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;nosql&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; כגון &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;mongodb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;ניסיון בעבודה עם &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;AWS&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; או&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;Google Cloud&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 dir="RTL" style="direction: rtl; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: &amp;quot;Calibri Light&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: major-bidi; mso-hansi-font-family: &amp;quot;Calibri Light&amp;quot;; mso-hansi-theme-font: major-latin;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 dir="RTL" style="direction: rtl; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: &amp;quot;Calibri Light&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: major-bidi; mso-hansi-font-family: &amp;quot;Calibri Light&amp;quot;; mso-hansi-theme-font: major-latin;"&gt;את מי אנחנו מחפשים?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class="MsoListParagraphCxSpFirst" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;אדם עם ראש פתוח שיכול לחשוב יצירתית ולא לפחד להביע את
דעתו&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;מישהו (או מישהי) שיודעים לעבוד עם צוותי מוצר באווירה
דינאמית&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;חשיבה מוצרית מוכוונת לקוח, והבנה של יסודות חווית משתמש&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; line-height: 150%; text-align: right; unicode-bidi: embed;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 dir="RTL" style="direction: rtl; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: &amp;quot;Calibri Light&amp;quot;; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: major-bidi; mso-hansi-font-family: &amp;quot;Calibri Light&amp;quot;; mso-hansi-theme-font: major-latin;"&gt;מה תעשו אצלנו?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class="MsoListParagraphCxSpFirst" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;פיתוח &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;react
native&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; בצד הקליינט,
ויישום של חווית משתמש מעולה&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;פיתוח ממשקי &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;api&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; ב- &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;node.js&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; בצד השרת, בעבודה מול &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;mongodb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;התממשקות לרכיבים צד ג׳ כגון &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;firebase&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; ושירותי ענן
נוספים&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" dir="RTL" style="direction: rtl; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 0cm; margin-right: 36.0pt; margin-top: 0cm; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: right; text-indent: -18.0pt; unicode-bidi: embed;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-language: HE; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;פיתוח ממשקים לרכיבי חומרה חיצוניים (&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;wearables&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; ו-&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;accessories&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;)&lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; line-height: 150%; text-align: right; unicode-bidi: embed;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; line-height: 150%; text-align: right; unicode-bidi: embed;"&gt;
&lt;span lang="HE" style="font-family: &amp;quot;Times New Roman&amp;quot;,serif; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: HE; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"&gt;קורות חיים ופרטים נוספים: &lt;/span&gt;&lt;span dir="LTR" style="mso-bidi-language: HE;"&gt;jobs@dayzz.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
  &lt;o:PixelsPerInch&gt;96&lt;/o:PixelsPerInch&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
  DefSemiHidden="false" DefQFormat="false" DefPriority="99"
  LatentStyleCount="382"&gt;
  &lt;w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="header"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footer"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="index heading"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of figures"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope address"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="envelope return"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="footnote reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="line number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="page number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote reference"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="endnote text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="table of authorities"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="macro"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="toa heading"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Bullet 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Number 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Closing"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Signature"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="true"
   UnhideWhenUsed="true" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="List Continue 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Message Header"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Salutation"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Date"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text First Indent 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Heading"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Body Text Indent 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Block Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Hyperlink"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="FollowedHyperlink"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Document Map"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Plain Text"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="E-mail Signature"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Top of Form"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Bottom of Form"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal (Web)"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Acronym"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Address"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Cite"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Code"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Definition"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Keyboard"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Preformatted"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Sample"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Typewriter"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="HTML Variable"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Normal Table"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="annotation subject"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="No List"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Outline List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Simple 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Classic 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Colorful 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Columns 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Grid 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table List 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table 3D effects 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Contemporary"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Elegant"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Professional"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Subtle 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Web 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Balloon Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Table Theme"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 2"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 3"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 4"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 5"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 7"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 8"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Note Level 9"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" QFormat="true"
   Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" QFormat="true"
   Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" QFormat="true"
   Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" QFormat="true"
   Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" QFormat="true"
   Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" QFormat="true"
   Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" SemiHidden="true"
   UnhideWhenUsed="true" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" SemiHidden="true"
   UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/&gt;
  &lt;w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/&gt;
  &lt;w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="Grid Table 1 Light Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="Grid Table 6 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="Grid Table 7 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/&gt;
  &lt;w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="46"
   Name="List Table 1 Light Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="51"
   Name="List Table 6 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="52"
   Name="List Table 7 Colorful Accent 6"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Mention"/&gt;
  &lt;w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
   Name="Smart Hyperlink"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
@font-face
 {font-family:"Courier New";
 panose-1:2 7 3 9 2 2 5 2 4 4;
 mso-font-charset:0;
 mso-generic-font-family:roman;
 mso-font-pitch:fixed;
 mso-font-signature:-536859905 -1073711037 9 0 511 0;}
@font-face
 {font-family:Wingdings;
 panose-1:5 0 0 0 0 0 0 0 0 0;
 mso-font-charset:2;
 mso-generic-font-family:auto;
 mso-font-pitch:variable;
 mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
 {font-family:"Cambria Math";
 panose-1:0 0 0 0 0 0 0 0 0 0;
 mso-font-charset:1;
 mso-generic-font-family:roman;
 mso-font-format:other;
 mso-font-pitch:variable;
 mso-font-signature:0 0 0 0 0 0;}
@font-face
 {font-family:"Calibri Light";
 panose-1:2 15 3 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 415 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:-536870145 1073786111 1 0 415 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-parent:"";
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.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;}
h1
 {mso-style-priority:9;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-link:"Heading 1 Char";
 mso-style-next:Normal;
 margin-top:12.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 mso-outline-level:1;
 font-size:16.0pt;
 font-family:"Calibri Light",sans-serif;
 mso-ascii-font-family:"Calibri Light";
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:"Calibri Light";
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#2F5496;
 mso-themecolor:accent1;
 mso-themeshade:191;
 mso-font-kerning:0pt;
 font-weight:normal;}
h2
 {mso-style-priority:9;
 mso-style-qformat:yes;
 mso-style-link:"Heading 2 Char";
 mso-style-next:Normal;
 margin-top:2.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 mso-outline-level:2;
 font-size:13.0pt;
 font-family:"Calibri Light",sans-serif;
 mso-ascii-font-family:"Calibri Light";
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:"Calibri Light";
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#2F5496;
 mso-themecolor:accent1;
 mso-themeshade:191;
 font-weight:normal;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.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.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.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.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.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.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.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;}
span.Heading1Char
 {mso-style-name:"Heading 1 Char";
 mso-style-priority:9;
 mso-style-unhide:no;
 mso-style-locked:yes;
 mso-style-link:"Heading 1";
 mso-ansi-font-size:16.0pt;
 mso-bidi-font-size:16.0pt;
 font-family:"Calibri Light",sans-serif;
 mso-ascii-font-family:"Calibri Light";
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:"Calibri Light";
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#2F5496;
 mso-themecolor:accent1;
 mso-themeshade:191;}
span.Heading2Char
 {mso-style-name:"Heading 2 Char";
 mso-style-priority:9;
 mso-style-unhide:no;
 mso-style-locked:yes;
 mso-style-link:"Heading 2";
 mso-ansi-font-size:13.0pt;
 mso-bidi-font-size:13.0pt;
 font-family:"Calibri Light",sans-serif;
 mso-ascii-font-family:"Calibri Light";
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:"Calibri Light";
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#2F5496;
 mso-themecolor:accent1;
 mso-themeshade:191;}
.MsoChpDefault
 {mso-style-type:export-only;
 mso-default-props:yes;
 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;}
@page WordSection1
 {size:595.0pt 842.0pt;
 margin:72.0pt 72.0pt 72.0pt 72.0pt;
 mso-header-margin:35.4pt;
 mso-footer-margin:35.4pt;
 mso-paper-source:0;}
div.WordSection1
 {page:WordSection1;}
 /* List Definitions */
@list l0
 {mso-list-id:558369916;
 mso-list-type:hybrid;
 mso-list-template-ids:2094142364 -1583292874 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
 {mso-level-start-at:30;
 mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:Symbol;
 mso-fareast-font-family:Calibri;
 mso-fareast-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;}
@list l0:level2
 {mso-level-number-format:bullet;
 mso-level-text:o;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:"Courier New",serif;}
@list l0:level3
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:Wingdings;}
@list l0:level4
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:Symbol;}
@list l0:level5
 {mso-level-number-format:bullet;
 mso-level-text:o;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:"Courier New",serif;}
@list l0:level6
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:Wingdings;}
@list l0:level7
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:Symbol;}
@list l0:level8
 {mso-level-number-format:bullet;
 mso-level-text:o;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:"Courier New",serif;}
@list l0:level9
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-18.0pt;
 font-family:Wingdings;}
ol
 {margin-bottom:0cm;}
ul
 {margin-bottom:0cm;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* 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-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:12.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;}
&lt;/style&gt;
&lt;![endif]--&gt;



&lt;!--StartFragment--&gt;

















































&lt;!--EndFragment--&gt;&lt;br /&gt;
&lt;div class="MsoNormal" dir="RTL" style="direction: rtl; text-align: right; unicode-bidi: embed;"&gt;
&lt;br /&gt;&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Timing django/python function calls</title><link>http://nirlevy.blogspot.com/2016/01/timing-djangopython-function-calls.html</link><category>Django</category><category>python</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Wed, 20 Jan 2016 10:45:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-5899574042751047268</guid><description>Doing some optimization for &lt;a href="https://switch.co.il/" target="_blank"&gt;SWITCH.co.il&lt;/a&gt; I've come across a handy snippet to time the execution of python/django functions. Since I was doing deep-dive checking I also wanted to know the stack of the executed function. Figured someone (me) would want to use it in the future, so I'm adding it here. Not the prettiest of code, but it works.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
import time
import inspect                                                
def timeme(method):
    def time_wrapper(*args, **kw):
        startTime = int(round(time.time() * 1000))
        result = method(*args, **kw)
        endTime = int(round(time.time() * 1000))
        stack=[]  
        for i in inspect.stack():
            if i[3] == 'time_wrapper': continue 
            stack.append(i[3])
        print 'Time(ms): ', ('%04d')%(endTime - startTime), method.__name__, u'-&amp;gt;' ,u'-&amp;gt;'.join(reversed(stack[0:5]))
        #only show 5 top stack
        return result
    return time_wrapper

#usage example
@timeme
def some_function(x,y):
    do_something
    return something

&lt;/code&gt;&lt;/pre&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>RTL Bootstrap CSS Convertor</title><link>http://nirlevy.blogspot.com/2013/07/rtl-bootstrap-css-convertor.html</link><category>css</category><category>hebrew</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Wed, 31 Jul 2013 16:01:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-7140711426206732292</guid><description>Bootstrap.css is great, &lt;a href="http://getbootstrap.com/"&gt;Bootstrap.css 3&lt;/a&gt; is better. Alas, Neither have an RTL version. There are a couple of not-maintained gits floating around the web for bootstrap 2 but non for &lt;strong&gt;bootstrap 3&lt;/strong&gt;
&lt;p&gt;
To convert bootstrap 3 to RTL you can use &lt;a href="https://github.com/ded/R2"&gt;https://github.com/ded/R2&lt;/a&gt;
&lt;p&gt;
If you want a rather stable, working, version of RTL bootstrap.css you can use the one from my repository at &lt;a href="https://bitbucket.org/levynir/bootstrap3-rtl"&gt;https://bitbucket.org/levynir/bootstrap3-rtl&lt;/a&gt;. Even if you decide to brew your own version, I recommend that you read the README on this bitbucket as there are some caveats to RTLing bootstrap.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Setting I18N Hebrew in Django 1.5</title><link>http://nirlevy.blogspot.com/2013/07/setting-i18n-hebrew-in-django-15.html</link><category>Django</category><category>hebrew</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Tue, 30 Jul 2013 14:21:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-8921106027129915534</guid><description>&lt;style&gt;PRE {background-color:silver}&lt;/style&gt;
It should be simple. But the docs are not very clear. So here is how to setup your Django site to be in Hebrew (or any other language).&lt;br /&gt;
&lt;br /&gt;
The need: Make my site work in Hebrew, without taking into account Browser's Accept Language and all this stuff.&lt;br /&gt;&lt;br/&gt;
Ingredients: Working Django &lt;strong&gt;1.5&lt;/strong&gt; project on Linux, common sense&lt;br /&gt;&lt;br/&gt;
Steps:&lt;br /&gt;&lt;br/&gt;
&lt;br /&gt;
Install GNU &lt;code&gt;gettext&lt;/code&gt; (even if you think you have it already)
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
sudo apt-get install gettext
&lt;/code&gt;&lt;/pre&gt;
Change in &lt;code&gt;projectname/settings.py&lt;/code&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
# LANGUAGE_CODE = 'en-us'
# This will force this installation to be in Hebrew
LANGUAGE_CODE = 'he'

#...

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True
&lt;/code&gt;&lt;/pre&gt;
Make sure your &lt;code&gt;MIDDLEWARE_CLASSES&lt;/code&gt; &lt;strong&gt;do not have&lt;/strong&gt; &lt;code&gt;LocaleMiddleware&lt;/code&gt;. If you do have &lt;code&gt;LocaleMiddleware&lt;/code&gt; than Django will try to guess the right locale from the request context, which we don't want at the moment.
&lt;pre&gt;&lt;code&gt;
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    #Comment out LocaleMiddleware if it's there to keep in the same locale all the time
    #'django.middleware.locale.LocaleMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
&lt;/code&gt;&lt;/pre&gt;
You may also need to add &lt;code&gt;django.core.context_processors.i18n&lt;/code&gt; to your &lt;code&gt;TEMPLATE_CONTEXT_PROCESSORS&lt;/code&gt;. (Don't do that right now, wait and see if everything is working and only add this if stuff is not working)
&lt;pre&gt;&lt;code&gt;
#add this at the end of settings.py if I18N is not working
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
    "&lt;project_name&gt;.context_processors.site",
    "django.core.context_processors.i18n",
)
&lt;/project_name&gt;&lt;/code&gt;&lt;/pre&gt;
In your python code wrap translatable texts with &lt;code&gt;ugettext_lazy&lt;/code&gt; or &lt;code&gt;ugettext&lt;/code&gt; (you can and should alias them to some conventional shortcut (I use &lt;code&gt;_t&lt;/code&gt; for &lt;code&gt;ugettext&lt;/code&gt; and  &lt;code&gt;_&lt;/code&gt; for &lt;code&gt;ugettext_lazy&lt;/code&gt;, for example
&lt;pre&gt;&lt;code&gt;
from django.utils.translation import ugettext_lazy  as _
from django.utils.translation import ugettext  as _t
class Shirt(models.Model):
    COLOR_TYPES = (
                    ('B', _('Blue')),
                    ('G', _('Green')),
                    )
    
    ...
    color = models.CharField(max_length=1, choices=COLOR_TYPES)
    type(self):
        return _t('Shirt')

&lt;/code&gt;&lt;/pre&gt;
In your templates you need to use this (ugly and hard to read) method
&lt;pre&gt;&lt;code&gt;
{% load i18n %}
&amp;lt;!-- Make sure this LANGUAGE_CODE is correct: {{LANGUAGE_CODE}} --&amp;gt;
...
&amp;lt;h1&amp;gt;{%trans "Shirt Store"%}&amp;lt;/h1&amp;gt;
...
or you can use {{_("Shirt Store")}} as an alternative method
&lt;/code&gt;&lt;/pre&gt;
Remember that you need to &lt;code&gt;{% load i18n %}&lt;/code&gt; in every template that uses &lt;code&gt;{%trans%}&lt;/code&gt;.
&lt;/p&gt;
Now we need to create the tranlsation files themselves:&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
cd django-project
cd django-app
mkdir locale
django-admin.py makemessages -l he
vi locale/he/LC_MESSAGES/django.po
django-admin.py compilemessages
&lt;/code&gt;&lt;/pre&gt;
Rinse, repeat

&lt;p&gt;
Run your site and hope for the best.
&lt;p&gt;&lt;p&gt;
Sources: 
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1832709/django-how-to-make-translation-work"&gt;http://stackoverflow.com/questions/1832709/django-how-to-make-translation-work&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.djangoproject.com/en/1.5/topics/i18n/translation/"&gt;https://docs.djangoproject.com/en/1.5/topics/i18n/translation/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://devdoodles.wordpress.com/2009/02/14/multi-language-support-in-a-django-project/"&gt;http://devdoodles.wordpress.com/2009/02/14/multi-language-support-in-a-django-project/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/a/7633261/130304"&gt;http://stackoverflow.com/a/7633261/130304&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>"Type 'Newtonsoft.Json.Linq.JToken' is a recursive collection data contract" While Adding Service Reference in VS2012</title><link>http://nirlevy.blogspot.com/2012/08/cannot-import-wsdl-porttypedetail.html</link><category>C#</category><category>Visual Studio</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 23 Aug 2012 11:01:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-4457997361222662110</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhzp_kdOETMBVOmlsjcCPu3pDWGTYDJFqSnuUQ9AtKzYsFwDHSTF75lORRofeRJiFrgmn3FSM7HaSvJDV367x-bGQo-dAthQLKh0gX0E4IThzgUIJfoaZC-OC6OQ46EiUeWpLVbaw3oVMz/s1600/Cannot_import_wsdl.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhzp_kdOETMBVOmlsjcCPu3pDWGTYDJFqSnuUQ9AtKzYsFwDHSTF75lORRofeRJiFrgmn3FSM7HaSvJDV367x-bGQo-dAthQLKh0gX0E4IThzgUIJfoaZC-OC6OQ46EiUeWpLVbaw3oVMz/s320/Cannot_import_wsdl.png" width="311" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Trying to add a service reference in Visual Studio 2012 to Bing Maps SOAP service I got the following error message:&lt;/p&gt;

&lt;br /&gt;
&lt;pre type="code"&gt;Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: Type 'Newtonsoft.Json.Linq.JToken' is a recursive collection data contract
...
&lt;/pre&gt;
&lt;p&gt;Following &lt;a href="http://stackoverflow.com/questions/12069176/getting-recursive-collection-data-contract-when-referencing-a-wcf-service-with"&gt;Getting “Recursive collection data contract” when referencing a WCF service with a slightly complex method&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/11112960/visual-studio-2012-error-reference-svcmap-throwing-error"&gt;Visual Studio 2012 Error Reference.svcmap throwing Error&lt;/a&gt; I've had to change the "reuse types in referenced assemblies" from "all" to everything except &lt;code&gt;Newtonsoft.JSON&lt;/code&gt; and &lt;code&gt;RestSharp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Might not be something to write home about, but I'm sure I'll forget where it is was in a year or so.&lt;/p&gt;

&lt;p&gt;PS. This seems to be VS2012 only issue, VS2010 worked just fine.&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhzp_kdOETMBVOmlsjcCPu3pDWGTYDJFqSnuUQ9AtKzYsFwDHSTF75lORRofeRJiFrgmn3FSM7HaSvJDV367x-bGQo-dAthQLKh0gX0E4IThzgUIJfoaZC-OC6OQ46EiUeWpLVbaw3oVMz/s72-c/Cannot_import_wsdl.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total></item><item><title>Tech-Ed Eilat 2010</title><link>http://nirlevy.blogspot.com/2010/11/tech-ed-eilat-2010.html</link><category>SharePoint 2010</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 18 Nov 2010 09:35:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-6987025930022024836</guid><description>So happy to be presenting at Tech-Ed Eilat 2010.&lt;br /&gt;See you all at the Herods Hotel, Tue 30/11 at 11:15 where we would share our lessons from the field on enterprise web content management with SharePoint 2010.&lt;br /&gt;&lt;br /&gt;You can read more about our session at &lt;a href="http://www.realcommerce.co.il/blog/%D7%90%D7%96-%D7%9E%D7%94-%D7%96%D7%94-%D7%91%D7%9B%D7%9C%D7%9C-enterprise-web-content-management/"&gt;the realcommerce web site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.microsoft.com/israel/TechEd2010/Tracks/OFC.aspx"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGirSvIPX91vm7tiqgxyldE_IdRclyF-WsRu3Zi6foHvhftuN8MOCY912pdJvLs9VSPOMAy38S7nWqqVUnley6GDWbZnWVRHOXXXvdt3au-BU9B4nvDuKrgZel5Y_e9fo7VkCaEA3oPjHi/s1600/realcommerce-signature.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGirSvIPX91vm7tiqgxyldE_IdRclyF-WsRu3Zi6foHvhftuN8MOCY912pdJvLs9VSPOMAy38S7nWqqVUnley6GDWbZnWVRHOXXXvdt3au-BU9B4nvDuKrgZel5Y_e9fo7VkCaEA3oPjHi/s72-c/realcommerce-signature.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>IIS JNLP 404 Problem</title><link>http://nirlevy.blogspot.com/2010/01/iis-jnlp-404-problem.html</link><category>iis</category><category>java</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Tue, 26 Jan 2010 12:18:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-365589999540514974</guid><description>If your IIS 6 returns a &lt;code&gt;404 Not Found&lt;/code&gt; when you request a Java Web Start &lt;code&gt;jnlp&lt;/code&gt; file, then you probably need to add the jnlp mime-type to the IIS configuration.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;IIS Settings -&amp;gt; Right click the machine -&amp;gt; mime-types -&amp;gt; new Extension: .jnlp MIME Type: application/x-java-jnlp-file&lt;/pre&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd60EMzn0UkwSF97KsIdKg8yd6TD7KwtdpPu2OrTCC7ecJAACfxkRxWLAyHdr27S1uPxCC0w8knOtNHeOCbZxZT415Mwr6hxmc_qkW3RsXYjc-RR_0va4u8s_FzCsA1S9kWIKPPbrlMdZl/s1600-h/jnlp_iis.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd60EMzn0UkwSF97KsIdKg8yd6TD7KwtdpPu2OrTCC7ecJAACfxkRxWLAyHdr27S1uPxCC0w8knOtNHeOCbZxZT415Mwr6hxmc_qkW3RsXYjc-RR_0va4u8s_FzCsA1S9kWIKPPbrlMdZl/s400/jnlp_iis.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd60EMzn0UkwSF97KsIdKg8yd6TD7KwtdpPu2OrTCC7ecJAACfxkRxWLAyHdr27S1uPxCC0w8knOtNHeOCbZxZT415Mwr6hxmc_qkW3RsXYjc-RR_0va4u8s_FzCsA1S9kWIKPPbrlMdZl/s72-c/jnlp_iis.JPG" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><title>How to do rewrites in an IIS ISAPI</title><link>http://nirlevy.blogspot.com/2009/10/how-to-do-rewrites-in-iis-isapi.html</link><category>C++</category><category>ISAPI</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Sun, 4 Oct 2009 12:09:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-6636011677324898588</guid><description>Note to self: If ever you need to do a &lt;b&gt;rewrite&lt;/b&gt; in an IIS ISAPI Filter you just need to re-set the &lt;code&gt;pHeaderInfo&lt;/code&gt;'s &lt;code&gt;url&lt;/code&gt; header. Something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="c:nogutter"&gt; &lt;br /&gt;pHeaderInfo-&gt;GetHeader(pCtxt-&gt;m_pFC,&lt;br /&gt;              "url",strUrl.GetBuffer(dwUrlSize+1),&amp;dwUrlSize);&lt;br /&gt;strUrl.ReleaseBuffer(); &lt;br /&gt;strNewUrl = GET_REWRITE_FOR_URL(strUrl); &lt;br /&gt;if ( strNewUrl.IsEmpty() == FALSE ) {  &lt;br /&gt;    pHeaderInfo-&gt;SetHeader(pCtxt-&gt;m_pFC, &lt;br /&gt;              "url", (LPTSTR)(LPCTSTR)strNewUrl);  &lt;br /&gt;} &lt;br /&gt;return SF_STATUS_REQ_NEXT_NOTIFICATION; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This is working in IIS4 and above.&lt;br /&gt;&lt;br /&gt;Note that if you really need a good re-write/redirect filter for IIS you should look at &lt;a href="http://www.codeplex.com/IIRF"&gt;IIRF&lt;/a&gt; ,but since it's not working for IIS4 i had to do this manually</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Bing, Google, Nutch and Canonical URLs</title><link>http://nirlevy.blogspot.com/2009/06/bing-google-nutch-and-canonical-urls.html</link><category>SEO</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 18 Jun 2009 09:32:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-2543276048509723354</guid><description>Google announced a few months back that they started &lt;a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html"&gt; supporting canonical urls&lt;/a&gt;. This is a great feature that we already adopted in a couple of sites (mostly to keep tracking codes from messing with our search engine results.&lt;br /&gt;&lt;br /&gt;Unfortunelty, altough Microsoft announced they &lt;a href="http://www.bing.com/community/blogs/webmaster/archive/2009/02/12/partnering-to-help-solve-duplicate-content-issues.aspx"&gt;will support this feature&lt;/a&gt; in Live, this was not yet implemented in Bing as of now (Jun 2009). &lt;br /&gt;&lt;br /&gt;Nutch, on the other hand, had this on thier &lt;a href="https://issues.apache.org/jira/browse/NUTCH-710"&gt;TODO list for 1.1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also, Google Search Appliance (GSA), is currently assumed by all to not support this (although nobody really knows if it does).&lt;br /&gt;&lt;br /&gt;More about canonical URLs:&lt;br /&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html"&gt;http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://searchengineland.com/canonical-tag-16537"&gt;http://searchengineland.com/canonical-tag-16537&lt;/a&gt;&lt;br /&gt;&lt;a href="http://janeandrobot.com/library/url-referrer-tracking"&gt;http://janeandrobot.com/library/url-referrer-tracking&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>many group by strategies to select single rows per group</title><link>http://nirlevy.blogspot.com/2009/06/many-group-by-strategies-to-select.html</link><author>noreply@blogger.com (Nir Levy)</author><pubDate>Mon, 15 Jun 2009 09:53:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-4610063108784925355</guid><description>Xaprb gives a good explanation for selecting a single row from a group: &lt;a href="http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/"&gt;How to select the first/least/max row per group in SQL at Xaprb&lt;/a&gt;.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>apc futex_wait lockdown make your apache freeze over</title><link>http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html</link><category>drupal</category><category>php</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Wed, 3 Jun 2009 12:58:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-3235587434123675028</guid><description>We had the typical LAMP setup going on, with &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt; as the base CMS and &lt;a href="http://us.php.net/apc"&gt;APC&lt;/a&gt; for bytecode cache. We needed a good caching engine so I figured why not use APC's user cache. Well, we tried the &lt;a href="http://drupal.org/project/apc"&gt;APC Cache Drupal Module&lt;/a&gt; which, with minor fixes proved to work very nicely. That is, until we actually put this all thing on production.&lt;br /&gt;&lt;br /&gt;The first thing we had was having our apache hang and not respond to any user requests. We susspected network issues, especially since &lt;code&gt;netstat -na&lt;/code&gt; showed that all the apache processes were hanging on &lt;code&gt;SYN_WAIT&lt;/code&gt;. However, since apache restart solved the issue i started to suspect this was something else.&lt;br /&gt;&lt;br /&gt;To make a long (very long) story short, I got strace on our prod machines to find out that apache was either hanging on &lt;code&gt;futex_lock(....FUTEXT_WAIT...)&lt;/code&gt; or doing infinte loops on the same functions.&lt;br /&gt;&lt;br /&gt;To make even a longer story short, I got gdb installed on those machines and the backtrace clearly indicated that the locks were from APC user-cache calls.&lt;br /&gt;&lt;br /&gt;We decided to abandon APC user-cache and switch to &lt;a href="http://www.danga.com/memcached/"&gt;memcached&lt;/a&gt; which proved faster and had less lockdowns. &lt;br /&gt;&lt;br /&gt;The funny thing is that when we talked about this over dinner the same evening a developer from another team just pointed me to this article by one of the APC leaders: (or something) &lt;a href="http://t3.dotgnu.info/blog/php/user-cache-timebomb.html"&gt;How to Dismantle an APC Bomb&lt;/a&gt; which has been around for over a year. I am supprised and shocked that such a information is hidded so well and not mentioned anywere in the docs. Moreover, I went through the APC code again after reading this post (I went through it once when i started analysing the problem) and it seems that this is not even  close to being resolved. there are no patches and no TODOs and nothing of the sort. From reading the code the entire user-cache needs a major re-write. What gives?&lt;br /&gt;&lt;br /&gt;(this is a post i wrote a couple of months ago, never had time to finish it. &lt;strike&gt;Unfortunately this is still not fixed afaik&lt;/strike&gt;)&lt;br /&gt;EDIT (07/2009): &lt;a href="http://pecl.php.net/bugs/bug.php?id=15179"&gt;http://pecl.php.net/bugs/bug.php?id=15179&lt;/a&gt; reports this to be fixed. If anyone can confirm this please send me a note so that I could update this post</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><title>GA_googleAddAttr is not defined error</title><link>http://nirlevy.blogspot.com/2009/05/gagoogleaddattr-is-not-defined-error.html</link><category>Javascript</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 14 May 2009 12:02:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-5707244498878056226</guid><description>If you are using Google Ad Manager you can &lt;a href="http://www.google.com/support/admanager/publisher/bin/answer.py?hl=en&amp;answer=138487"&gt;define custom attributes for targeting&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;If you are getting a javascript error &lt;code&gt;GA_googleAddAttr is not defined&lt;/code&gt; just make sure to put the call(s) to GA_googleAddAttr in a seperate &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; line, after the &lt;code&gt;GS_googleEnableAllServices&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;GS_googleAddAdSenseService("ca-pub-0000000000"); &lt;br /&gt;GS_googleEnableAllServices();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;GA_googleAddAttr("ATTRB1", "whatever");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;GA_googleAddSlot("ca-pub-0000000000", "slotname_216x311");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>V6 DECODE64 not working properly</title><link>http://nirlevy.blogspot.com/2009/03/v6-decode64-not-working-properly.html</link><category>Tcl</category><category>Vignette</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Mon, 23 Mar 2009 09:05:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-3720040680060952066</guid><description>It turns out that after all these years, V6's built-in &lt;code&gt;DECODE64&lt;/code&gt; and &lt;code&gt;ENCODE64&lt;/code&gt; actually do not work properly with some binary data. &lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;proc COMPARE_BASE64 {} {&lt;br /&gt; set code  {2lIU1ZNw5BYvKi79j4L/+GGmjAQK7uiBQG7elDdKZcE=}&lt;br /&gt; set vgn_result [DECODE64 $code];         #VGN built-in function&lt;br /&gt; set tcl_result [::base64::decode $code]; #TclLib tcl-only implementation &lt;br /&gt; return [join [list \\&lt;br /&gt;   [BIN2HEX $vgn_result] \\&lt;br /&gt;   [BIN2HEX $tcl_result] \\&lt;br /&gt;   [string compare $vgn_result $tcl_result ] \\&lt;br /&gt;  ] "\\r\\n"]&lt;br /&gt;}&lt;br /&gt;proc BIN2HEX { text }  { binary scan $text H* result; return $result }&lt;br /&gt;COMPARE_BASE64&lt;br /&gt;&lt;br /&gt;--- result ----&lt;br /&gt;da52145370e4162f2a2efd8f82fff861a68c040aeee881406e94374a65c1&lt;br /&gt;da5214d59370e4162f2a2efd8f82fff861a68c040aeee881406ede94374a65c1&lt;br /&gt;1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you need to encode/decode base64 for use in non-vignette systems make sure you use &lt;a href="http://tcllib.sourceforge.net/"&gt;tcllib&lt;/a&gt;'s base64.&lt;br /&gt;&lt;br /&gt;This was tested on Vignette's V6 but I am sure it's true for Storyserver 4.2 and V5 as well.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total></item><item><title>MySQL indexes behaving badly</title><link>http://nirlevy.blogspot.com/2009/03/mysql-indexes-behaving-badly.html</link><category>mysql</category><category>optimization</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 19 Mar 2009 22:15:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-3582981348471339442</guid><description>If you have a MySQL query that for no apparent reason stops working or no longer behaves as it used to, the first thing to do is &lt;code&gt;EXPLAIN&lt;/code&gt; it. If the explain is unreasonable (for example, using different indexes then it used to or using an index but still scanning millions or rows) then you should try to &lt;code&gt;CHECK TABLE&lt;/code&gt;. &lt;br /&gt;&lt;br /&gt;One thing that I accidently found out was that &lt;code&gt;CHECK TABLE&lt;/code&gt; also &lt;a href="http://dev.mysql.com/doc/refman/5.1/en/check-table.html"&gt;updates the key statistics&lt;/a&gt;. This made many problems magically disappear. &lt;br /&gt;&lt;br /&gt;A few things that should be noted:&lt;ol&gt;&lt;li&gt;&lt;code&gt;CHECK TABLE&lt;/code&gt; will only update key statistics for &lt;i&gt;MyISAM&lt;/i&gt; tables&lt;/li&gt;, for &lt;i&gt;InnoDB&lt;/i&gt; you must use &lt;code&gt;OPTIMIZE TABLE&lt;/code&gt;.&lt;br /&gt;&lt;li&gt;If you use &lt;code&gt;OPTIMIZE TABLE&lt;/code&gt; to update the key statistics you should be aware that &lt;code&gt;OPTIMIZE TABLE&lt;/code&gt; does other (good) things as well, so it usually takes much longer and &lt;b&gt;it locks your table while doing it&lt;/b&gt;. Also, for &lt;i&gt;InnoDB&lt;/i&gt; it actually &lt;a href="http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html"&gt;re-builds the table using &lt;code&gt;ALTER TABLE&lt;/code&gt;&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;The &lt;code&gt;CHECK TABLE&lt;/code&gt; have several options. Only the &lt;code&gt;MEDIUM&lt;/code&gt; (the default) or &lt;code&gt;EXTENDED&lt;/code&gt; update the key statistics. (i think).&lt;/li&gt;&lt;/ol&gt;So, if your indexes stop working, or just mis-behave, try to check them.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Vista fast user switching disappeared</title><link>http://nirlevy.blogspot.com/2009/02/vista-fast-user-switching-disappeared.html</link><category>Windows</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Fri, 20 Feb 2009 21:33:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-2603035799555194907</guid><description>My fast user switching option in Vista Home machine suddenly disappeared. I remember it was there, then it was not. I don't know why this happened, but &lt;a href="http://blogs.microsoft.co.il/blogs/amitcb/archive/2008/02/20/switch-user-disappear.aspx"&gt;here is how to fix it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A rough translation:&lt;blockquote&gt;&lt;br /&gt;Run &lt;code&gt;regexit.exe&lt;/code&gt;&lt;br /&gt;Go to &lt;code&gt;HKEY_LOCAL_MACHINE &amp;gt; SOFTWARE &amp;gt; Microsoft &amp;gt; Windows &amp;gt; CurrentVersion &amp;gt; Policies &amp;gt; System&lt;/code&gt;&lt;br /&gt;Look for a key named &lt;code&gt;HideFastUserSwitching&lt;/code&gt;. If it exists, change it's value to &lt;code&gt;0&lt;/code&gt; (zero). If it does not exist create it as a &lt;code&gt;DWORD&lt;/code&gt; and set it to zero.&lt;br /&gt;You might need to log off before the change takes effect.&lt;br /&gt;&lt;/blockquote&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>utf8 and hebrew in tomcat</title><link>http://nirlevy.blogspot.com/2009/02/utf8-and-hebrew-in-tomcat.html</link><category>hebrew</category><category>java</category><category>tomcat</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Sun, 8 Feb 2009 14:03:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-1367811628153189055</guid><description>In tomcat 5.0 and above, if your UTF-8 request parameters are received as gibberish you might need to do the following:&lt;br /&gt;&lt;br /&gt;In your &lt;code&gt;server.xml&lt;/code&gt; add the &lt;code&gt;URIEncoding="UTF-8"&lt;/code&gt; and &lt;code&gt;useBodyEncodingForURI="true"&lt;/code&gt; to the &lt;code&gt;Connector&lt;/code&gt; tag(s):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &amp;lt;Connector &lt;br /&gt;     &lt;font color='red'&gt;useBodyEncodingForURI="true" &lt;br /&gt;     URIEncoding="UTF-8" &lt;/font&gt;&lt;br /&gt;     acceptCount="100" &lt;br /&gt;     enableLookups="false" &lt;br /&gt;     maxSpareThreads="75" &lt;br /&gt;     maxThreads="150" &lt;br /&gt;     minSpareThreads="25" &lt;br /&gt;     port="8080" &lt;br /&gt;     redirectPort="8443" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This should make &lt;code&gt;GET&lt;/code&gt; requests work properly.&lt;br /&gt;&lt;br /&gt;For some reason the above does not work for &lt;code&gt;POST&lt;/code&gt; requests. If you ask the tomcat people they'll mumble something about W3C, RFC, and RTFM. The short way to have this work for &lt;code&gt;POST&lt;/code&gt; requests is to write a small filter to set the request encoding properly. We are using something similar to this:&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;package com.realcommerce.filters;&lt;br /&gt;import javax.servlet.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;public class RequestEncodingFilter implements Filter  {&lt;br /&gt;    public void init(FilterConfig filterConfig) throws ServletException {&lt;br /&gt;         //Do Nothing&lt;br /&gt;    }&lt;br /&gt;    public void destroy() {&lt;br /&gt;        //Do Nothing&lt;br /&gt;    }&lt;br /&gt;    public void doFilter(ServletRequest request,ServletResponse response,&lt;br /&gt;        FilterChain chain) throws IOException, ServletException &lt;br /&gt;    {&lt;br /&gt;        request.setCharacterEncoding("UTF-8");&lt;br /&gt;        chain.doFilter(request, response);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This made &lt;code&gt;POST&lt;/code&gt; requests pass Hebrew (or any UTF-8) parameters properly.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total></item><item><title>slow lstat, slow php, slow drupal</title><link>http://nirlevy.blogspot.com/2009/01/slow-lstat-slow-php-slow-drupal.html</link><category>drupal</category><category>optimization</category><category>php</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Tue, 27 Jan 2009 23:22:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-1404551728186112409</guid><description>If you are short on time go to &lt;a href="#bottom_line"&gt;bottom line&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ok, the &lt;code&gt;&lt;a href="http://www.opengroup.org/onlinepubs/009695399/functions/lstat.html"&gt;lstat()&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;stat()&lt;/code&gt; system calls system call are not really slow per se. But take a look at an apache &lt;code&gt;strace -r&lt;/code&gt; dump from a drupal installation I was testing:&lt;br /&gt;&lt;pre name="code" class="php:nogutter"&gt;&lt;br /&gt;[user@host ~]# strace -o strace.load -r -s 256 -p &amp;lt;PID&amp;gt;&lt;br /&gt;...&lt;br /&gt;0.000081 getcwd("/mnt/var/www/html/drupal", 4096) = 32&lt;br /&gt;0.000048 lstat("/mnt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br /&gt;0.000805 lstat("/mnt/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br /&gt;0.001596 lstat("/mnt/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br /&gt;0.000104 lstat("/mnt/var/www/html", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0&lt;br /&gt;0.000362 lstat("/mnt/var/www/html/drupal", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0&lt;br /&gt;0.000804 lstat("/mnt/var/www/html/drupal/sites", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br /&gt;0.057575 lstat("/mnt/var/www/html/drupal/sites/all", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br /&gt;0.000297 lstat("/mnt/var/www/html/drupal/sites/all/modules", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0&lt;br /&gt;0.014762 lstat("/mnt/var/www/html/drupal/sites/all/modules/Internet", {st_mode=S_IFDIR|0755, st_size=4096,&lt;br /&gt;0.000214 lstat("/mnt/var/www/html/drupal/sites/all/modules/Internet/date", {st_mode=S_IFDIR|0755, st_size=4&lt;br /&gt;0.000112 lstat("/mnt/var/www/html/drupal/sites/all/modules/Internet/date/date.module", {st_mode=S_IFREG|064&lt;br /&gt;0.010816 open("/mnt/var/www/html/drupal/sites/all/modules/Internet/date/date.module", O_RDONLY) = 20&lt;br /&gt;0.000835 fstat(20, {st_mode=S_IFREG|0644, st_size=44118, ...}) = 0&lt;br /&gt;0.000069 lseek(20, 0, SEEK_CUR)    = 0&lt;br /&gt;0.000063 stat("././sites/all/modules/Internet/date/date.module", {st_mode=S_IFREG|0644, st_size=44118, ...}) = 0&lt;br /&gt;0.000159 close(20)                 = 0&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see, for every file included in the system there are around 10-15 &lt;code&gt;lstat&lt;/code&gt; calls. this means that if we have ~200 files included we have ~2500 &lt;code&gt;lstat&lt;/code&gt; calls per page. A simple sum on the strace results gave me ~8 seconds per page of &lt;code&gt;lstat&lt;/code&gt; time, which was over a third of my test page time. see?&lt;br /&gt;&lt;pre name="code" class="php:nogutter"&gt;&lt;br /&gt;[user@host ~]# cat strace.single | awk '{printf " " $1 "\n " $2}' |sed 1d | sed \$d |awk '{printf $2 "+"}'  | sed s/.$/\\n/ | bc&lt;br /&gt;21.204960&lt;br /&gt;[user@host ~]# cat strace.single | awk '{printf " " $1 "\n " $2}' |sed 1d | sed \$d | fgrep lstat | awk '{printf $2 "+"}'  | sed s/.$/\\n/ | bc&lt;br /&gt;8.361994&lt;br /&gt;&lt;/pre&gt;&lt;small&gt;if you really want to understand this shell script let me know. It deserves a post by itself&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Now we have 3 options: a) make &lt;code&gt;lstat()&lt;/code&gt; faster. b) make php stop doing all those &lt;code&gt;lstats()&lt;/code&gt;. c) make drupal include less files. &lt;br /&gt;&lt;br /&gt;Well, (a) is not an option as our infrastructure team (aka sysadmins) insist there is nothing wrong with the filesystem and nothing can be done to enhance it's performance. Since I gave up being a sysadmin when it was still call 'sysadmin' it would be hard for me to prove them wrong (especially since they might be are right).&lt;br /&gt;&lt;br /&gt;As (c) would require us to refactor most of our code in a very very 'not drupal way' and create very large php files, I was hoping to find a better solution.&lt;br /&gt;&lt;br /&gt;By a &lt;a href="http://prematureoptimization.org/blog/archives/33"&gt;rare chance of good fortune i came to learn about &lt;code&gt;realpath_cache_size&lt;/code&gt;&lt;/a&gt;. Once I changed the foolish default to a reasonable 1M in &lt;code&gt;php.ini&lt;/code&gt;, I lost most of the &lt;code&gt;lstat()&lt;/code&gt; calls and over 10 seconds of processing time.&lt;br /&gt;&lt;pre name="code" class="php:nogutter"&gt;&lt;br /&gt;[user@host ~]# cat strace.2.single | awk '{printf " " $1 "\n " $2}' |sed 1d | sed \$d |awk '{printf $2 "+"}'  | sed s/.$/\\n/ | bc&lt;br /&gt;9.752309&lt;br /&gt;[user@host ~]# cat strace.2.single | awk '{printf " " $1 "\n " $2}' |sed 1d | sed \$d | fgrep lstat | awk '{printf $2 "+"}'  | sed s/.$/\\n/ | bc&lt;br /&gt;.040935&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name="bottom_line"&gt;&lt;/a&gt;Here is what to do in php.ini&lt;br /&gt;&lt;pre name="code" class="vb:nogutter"&gt;&lt;br /&gt;; ...php.ini...&lt;br /&gt;; Determines the size of the realpath cache to be used by PHP. This value should&lt;br /&gt;; be increased on systems where PHP opens many files to reflect the quantity of&lt;br /&gt;; the file operations performed.&lt;br /&gt; realpath_cache_size=1M&lt;br /&gt;&lt;br /&gt;; Duration of time, in seconds for which to cache realpath information for a given&lt;br /&gt;; file or directory. For systems with rarely changing files, consider increasing this&lt;br /&gt;; value.&lt;br /&gt;realpath_cache_ttl=300&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;For normal pages under normal load I was able to get a 10%-25% performance improvment. I think that's quite a bit for a configuration change.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item><item><title>IE6 freeze with MOSS 2007</title><link>http://nirlevy.blogspot.com/2009/01/ie6-freeze-with-moss-2007.html</link><category>Internet Explorer</category><category>MOSS 2007</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 1 Jan 2009 09:06:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-6781365062218032769</guid><description>emposha wrote about how to handle a situtation where &lt;a href="http://www.emposha.com/aspnet/sharepoint-moss-strange-ie6-freeze-on-preview-mode.html/" title="Who`s Emposha  - Blog Archive   - SharePoint Moss strange IE6 freeze on preview mode"&gt;IE6 chokes on MOSS preview pages&lt;/a&gt;.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Hebrew SEO: גוגל, עברית, וה"א הידיעה</title><link>http://nirlevy.blogspot.com/2008/12/blog-post.html</link><category>hebrew</category><category>SEO</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 11 Dec 2008 15:02:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-8833704791733176497</guid><description>&lt;div dir='rtl' style='text-align:right;font-family:arial'&gt;&lt;br /&gt;נראה ש-google לא מתייחס נכון ל&lt;a href="http://he.wikipedia.org/wiki/ה'_הידיעה"&gt;ה"א הידיעה&lt;/a&gt;. &lt;br /&gt;אם נחפש לדוגמא &lt;a href="http://www.google.co.il/search?hl=en&amp;rlz=1C1CHMG_enIL291IL303&amp;q=הממשלה&amp;btnG=Search"&gt;הממשלה &lt;/a&gt;נקבל בתוצאות את "פורטל השרותים של ממשלת ישראל" אבל גוגל מסמן בבולד רק את המילה &lt;span style="font-style:italic;"&gt;הממשלה &lt;/span&gt;ולא את המילים &lt;span style="font-style:italic;"&gt;ממשלה &lt;/span&gt;או &lt;span style="font-style:italic;"&gt;ממשלת &lt;/span&gt;שהן הטיות חוקיות לחלוטין. &lt;br /&gt;בכיוון ההפוך, אם נחפש &lt;a href="http://www.google.co.il/search?hl=en&amp;rlz=1C1CHMG_enIL291IL303&amp;q=ממשלה&amp;btnG=Search"&gt;ממשלה &lt;/a&gt;נקבל תוצאות אחרות לגמרי, כאשר המילים &lt;span style="font-style:italic;"&gt;ממשלת &lt;/span&gt;ו&lt;span style="font-style:italic;"&gt;ממשלה&lt;/span&gt; מודגשות אבל המילה &lt;span style="font-style:italic;"&gt;הממשלה &lt;/span&gt;אינה מוגדשת. &lt;br /&gt;לפי ההבדלים בתוצאות החיפוש נראה שהבעיה קיימת לא רק בהדגשה אלא גם באינדוקס.&lt;br /&gt;בדקתי גם בחיפוש לפי &lt;a href="http://www.google.co.il/search?hl=en&amp;rlz=1C1CHMG_enIL291IL303&amp;q=הילדים&amp;btnG=Search"&gt;הילדים &lt;/a&gt;מול &lt;a href="http://www.google.co.il/search?hl=en&amp;rlz=1C1CHMG_enIL291IL303&amp;q=ילדים&amp;btnG=Search"&gt;ילדים &lt;/a&gt;ומילים נוספות. הדבר נראה נכון גם לגבי live של מיקרוסופט (בלי לדבר על yahooשבכלל לא טרחו לתמוך במורפולוגיה עברית)&lt;br /&gt;המסקנה,לצרכי אופטימיזציה במנועי החיפוש של גוגל כדאי להגדיר את מילות המפתח של האתר עם ובלי ה"א הידיעה.&lt;br /&gt;&lt;br /&gt;&lt;a style='float:right' onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wK_3I0GV_BsUwsfr_kTnRaB1bLf5SOf21nZtBFj6bRISy6ykDbgkeI64Hr_HIhO-egGT7HqAmQiO95PlGnGbabOtBPF1aM1urD2IdJXKuReCnpSBH7HYQnnCUgIimZkaD3DBOhw05ZW7/s1600-h/google_he_2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 280px; ;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wK_3I0GV_BsUwsfr_kTnRaB1bLf5SOf21nZtBFj6bRISy6ykDbgkeI64Hr_HIhO-egGT7HqAmQiO95PlGnGbabOtBPF1aM1urD2IdJXKuReCnpSBH7HYQnnCUgIimZkaD3DBOhw05ZW7/s320/google_he_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278521388896810354" /&gt;&lt;/a&gt;&lt;a  style='float:left'  onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1k8l3GqDDtbNiTdbup-IJPhTeXQuP7VopcXuILQj9qwHyK_YfVLMMwgs1stE3Sc7Z-tNQLXU0EBXmJ4qzhsSBD1a0z30-kT4w-l3LRWM6YzjU1U5IlEVTPDXYShMslrpLQFel3caw7jvz/s1600-h/google_he_1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 280px; ;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1k8l3GqDDtbNiTdbup-IJPhTeXQuP7VopcXuILQj9qwHyK_YfVLMMwgs1stE3Sc7Z-tNQLXU0EBXmJ4qzhsSBD1a0z30-kT4w-l3LRWM6YzjU1U5IlEVTPDXYShMslrpLQFel3caw7jvz/s320/google_he_1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278521387683538658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wK_3I0GV_BsUwsfr_kTnRaB1bLf5SOf21nZtBFj6bRISy6ykDbgkeI64Hr_HIhO-egGT7HqAmQiO95PlGnGbabOtBPF1aM1urD2IdJXKuReCnpSBH7HYQnnCUgIimZkaD3DBOhw05ZW7/s72-c/google_he_2.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>drupal memcache items disappearing from the cache</title><link>http://nirlevy.blogspot.com/2008/11/drupal-memcache-items-disappearing-from.html</link><category>drupal</category><category>memcached</category><category>php</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Thu, 20 Nov 2008 23:05:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-5346176807043874644</guid><description>The scenario: you are using &lt;a href="http://www.danga.com/memcached/" target= _blank &gt;memcached&lt;/a&gt; as your &lt;a href="http://drupal.org" target=_blank&gt;Drupal&lt;/a&gt; cache system. You do a &lt;code&gt;cache_set&lt;/code&gt; for some item. You do a &lt;code&gt;cache_get&lt;/code&gt; for this item. The item is there. You do a &lt;code&gt;cache_get&lt;/code&gt; again after a few seconds/minutes, the item is not there.&lt;br /&gt;&lt;br /&gt;You might be experiencing &lt;a href="http://drupal.org/node/224772"&gt;this issue of the memcache module&lt;/a&gt;: In short it means that the memcache module flushes the entire cache cluster whenever someone does a wildcard &lt;code&gt;cache_clear_all&lt;/code&gt;. Since it's very likely that all your bins are in a single cluster you get to a situation that whenever someone-on-the-other-side-of-the-world does something that is probably completely unrelated to you, your item will still get flushed from the cache.&lt;br /&gt;&lt;br /&gt;Note that since &lt;code&gt;flush&lt;/code&gt; does not activly removes the items from the cache but rather marks them as expired you will not see any memcached stats that will hint to this issue.&lt;br /&gt;&lt;br /&gt;I &lt;a href="http://drupal.org/node/224772#comment-1118607"&gt;have commented on the issue.&lt;/a&gt; Here are some highlights:&lt;br /&gt;&lt;blockquote&gt;...we are currently using &lt;a href="http://drupal.org/node/224772#comment-799489"&gt;gaolei's patch&lt;/a&gt; which is fast albeit expensive. We are using it on a large production system that depends heavily on memcache and we did not see any problems yet. (thank you gaolei).&lt;br /&gt;&lt;br /&gt;We have tried to implement a lock-add-unlock scenario such as was suggested in several comments but this will be a definite nightmare for high-traffic/high-update sites...&lt;br /&gt;&lt;br /&gt;I would suggest letting the user choose which flush mechanism to use: the current one, or the salt one. I see no reason why the module's developers should decide for me. On a site with little updates and little memory i would prefer to have the whole memcache flush; On a site with many updates and tons of memory i'm willing to sacrifice space for the sake good performance. a simple memcache_flush_method variable would do the job just fine.&lt;/blockquote&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>MYSQL Query Optimization: Avoiding ORs</title><link>http://nirlevy.blogspot.com/2008/11/mysql-query-optimization-avoiding-ors.html</link><category>mysql</category><category>optimization</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Mon, 10 Nov 2008 20:43:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-8600802743372495256</guid><description>So, you've probably heard that using &lt;code&gt;OR&lt;/code&gt;s in your queries is heavy and should be avoided when possible. Here is a live example. We had the following query running on a medium sized table in MYSQL (around 200K rows):&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;SELECT count(*)  FROM interactions p&lt;br /&gt;   WHERE (&lt;br /&gt;       (p.employer = 69 AND p.flag1 = 1)&lt;br /&gt;       OR&lt;br /&gt;       (p.employee = 69 AND p.flag2 = 0)&lt;br /&gt;       )&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Let's think of &lt;code&gt;interactions&lt;/code&gt; as a table holding the interaction between employers and employees, and this query should tell the user the total number of interactions where user number 69 is involved.&lt;br /&gt;&lt;br /&gt;The query looked pretty innoccent on an idle MYSQL server taking around 200ms, but when the server got busy the query execution time was reaching 5-6 seconds.&lt;br /&gt;&lt;br /&gt;Altough we did have indexes on &lt;code&gt;interactions.employer&lt;/code&gt; and &lt;code&gt;interactions. employee&lt;/code&gt; doing &lt;code&gt;EXPLAIN&lt;/code&gt; showed that MYSQL was not using them.&lt;br /&gt;&lt;br /&gt;After some digging and fiddling and trying we ended up with:&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;SELECT count(*) as count FROM (&lt;br /&gt;   SELECT 1  FROM interactions p&lt;br /&gt;       WHERE (p.employer = 69 AND p.flag1 = 1)&lt;br /&gt;   UNION ALL&lt;br /&gt;   SELECT 1  FROM privatemsg p&lt;br /&gt;       WHERE (p.employee = 69 AND p.flag2 = 0)&lt;br /&gt;) t2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This query took on the busy server less then 250 milliseconds and less then 80ms on the idle server. Doing &lt;code&gt;EXPLAIN&lt;/code&gt; showed that MYSQL was doing two queries, and using the correct index on each one.&lt;br /&gt;&lt;br /&gt;After some more digging we noticed that if we &lt;code&gt;EXPLAIN&lt;/code&gt; the &lt;b&gt;original&lt;/b&gt; query on the idle server the optimizer occasionally converts it to a &lt;code&gt;UNION&lt;/code&gt;, but for some reason this did not always happen and in any case took about twice the time then the UNION query.&lt;br /&gt;&lt;br /&gt;To sum up the results here is a simple table&lt;br /&gt;&lt;br /&gt;&lt;table width="60%" style="margin-top:0px"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Query type&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Server activity&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Query Time&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Using OR&lt;/td&gt;&lt;td&gt;Idle&lt;/td&gt;&lt;td&gt;200ms&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Using OR&lt;/td&gt;&lt;td&gt;Busy&lt;/td&gt;&lt;td&gt;5500ms&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Using UNION&lt;/td&gt;&lt;td&gt;Idle&lt;/td&gt;&lt;td&gt;78ms&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Using UNION&lt;/td&gt;&lt;td&gt;Busy&lt;/td&gt;&lt;td&gt;189ms&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Conclusion: always consider alternatives to &lt;code&gt;OR&lt;/code&gt;, but make sure you check them well against real-time examples.&lt;br /&gt;&lt;br /&gt;A Further Note: When timing queries in MYSQL alway use the optimizer hint &lt;code&gt;/*! SQL_NO_CACHE */ &lt;/code&gt; to make sure you are not getting results from the query cache (if you have one set up).</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Internet Explorer does not support http vary header</title><link>http://nirlevy.blogspot.com/2008/09/internet-explorer-does-not-support-http.html</link><category>Internet Explorer</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Wed, 10 Sep 2008 21:48:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-1416406925707760941</guid><description>It was always assumed, but I just saw this quote from &lt;a href="http://support.microsoft.com/kb/824847"&gt;Microsoft&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Internet Explorer does not fully implement the VARY header per Requests for Comments (RFC) 2616. The Internet Explorer implementation of VARY is that it does not cache any data except for Vary-Useragent&lt;br /&gt;&lt;/blockquote&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Internet explorer cannot open the internet site: operation aborted</title><link>http://nirlevy.blogspot.com/2008/09/internet-explorer-cannot-open-internet.html</link><category>Firefox</category><category>Internet Explorer</category><category>Javascript</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Tue, 9 Sep 2008 18:56:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-5765233658817521703</guid><description>During an integration with a third party provider we were unfortunate enough to get the error &lt;blockquote&gt;Internet explorer cannot open the internet site http://localhost: &lt;strong&gt;operation aborted&lt;/strong&gt;&lt;/blockquote&gt; Yes, we have read &lt;a href="http://support.microsoft.com/kb/927917"&gt;http://support.microsoft.com/kb/927917&lt;/a&gt; and did move the 3rd-party's script to be just before the &lt;code&gt;&amp;lt;/BODY&amp;gt;&lt;/code&gt; tag but to no avail.&lt;br /&gt;&lt;br /&gt;After a long and hard effort by this provider they pointed out that while the view-source indeed looked like the script is just before &lt;code&gt;&amp;lt;/BODY&amp;gt;&lt;/code&gt; when looking at the DOM itself (they used &lt;a href="http://www.ieinspector.com/"&gt;Dominspector&lt;/a&gt;, I used the IE Developer Toolbar) it showed that the script was inside a &lt;code&gt;&amp;lt;DIV&amp;gt;&lt;/code&gt; element.&lt;br /&gt;&lt;br /&gt;As it turns out there was some code on the page that wrote an unclosed &lt;code&gt;&amp;lt;DIV&amp;gt;&lt;/code&gt;. This made IE "fill in the blanks" and guess (wrongly) where it should place the closing &lt;code&gt;&amp;lt;/DIV&amp;gt;&lt;/code&gt; Fixing this javascript made the error go away on most pages. But not all.&lt;br /&gt;&lt;br /&gt;I found out that the broken pages used some JQuery plugins (tooltips, jqmodal, etc.) to produce fancy decorations and effects. These scripts attached to &lt;code&gt;$document.ready&lt;/code&gt; and did &lt;code&gt;$('body').appendTo(...)&lt;/code&gt;. This effectively added a couple of items to the DOM between the 3rd-party script and the &lt;code&gt;&amp;lt;/BODY&amp;gt;&lt;/code&gt;. I am still not quite sure why this should cause IE to choke but since we have a tight schedule we simply changed those scripts to add their stuff to some other elements. This indeed solved out problem.&lt;br /&gt;&lt;br /&gt;They funny (or maybe sad) thing was that on Firefox we did not get any error but the page simply disappeared. Chrome worked just fine.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Misplaced elements with position:relative</title><link>http://nirlevy.blogspot.com/2008/08/misplaced-elements-with.html</link><category>css</category><category>Internet Explorer</category><author>noreply@blogger.com (Nir Levy)</author><pubDate>Tue, 26 Aug 2008 20:41:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-6254648781068875224.post-7498601080437920458</guid><description>We had a situation where we had three &amp;lt;DIV&amp;gt; elements in a column and the middle element had content dynamically loaded into it after the page has completed loading. When the middle element finished loading, some of the content of the last element seemed to forget its parenthood and floated nicely over the second element.&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgnHARMg6uJ_9DBs1NlcTEK-ffLEaRLJEqbddFGlpRO8giBixHMA1ubW6X-JGBwtTtKdsrEi_1zdAr03n8lDCGvl0jRSe5tOVaPi4ZLMYbymO08e_JNHJOx-4scH92CqxFz-rtoQJSC2P_/s1600-h/hasLayout.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgnHARMg6uJ_9DBs1NlcTEK-ffLEaRLJEqbddFGlpRO8giBixHMA1ubW6X-JGBwtTtKdsrEi_1zdAr03n8lDCGvl0jRSe5tOVaPi4ZLMYbymO08e_JNHJOx-4scH92CqxFz-rtoQJSC2P_/s400/hasLayout.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5238884051273161906" /&gt;&lt;/a&gt;--&gt;&lt;br /&gt;&lt;img src="http://javajavaproxy.googlepages.com/hasLayout2.gif" border="0" alt="elements with postion relative not placed properly after dynamic content loading"&gt;&lt;br /&gt;&lt;br /&gt;Naturally this only happened in Internet Explorer (what else).&lt;br /&gt;&lt;br /&gt;After a lot of digging we noticed that the misplaced content of &amp;lt;DIV&amp;gt;#3 had a &lt;code&gt;position:relative&lt;/code&gt; style (indicated as #4 in the image above). It is "well known" that IE does not handle relative positioning properly when the layout of the page change. &lt;br /&gt;&lt;br /&gt;Luckily I chanced upon an article by &lt;a href="http://positioniseverything.net/"&gt;Holly Bergevin&lt;/a&gt; et al. called &lt;i&gt;&lt;a href="http://www.satzansatz.de/cssd/onhavinglayout.html"&gt;On having layout&lt;/a&gt;&lt;/i&gt; which was enlightening. Understanding that IE will only respect the element's state if it have the &lt;code&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms533776.aspx"&gt;hasLayout&lt;/a&gt;&lt;/code&gt; property quickly solved the problem.&lt;br /&gt;&lt;br /&gt;In our specific case I used &lt;code&gt;display:inline-block&lt;/code&gt; to force &amp;lt;DIV&amp;gt;#3 to have &lt;code&gt;hasLayout&lt;/code&gt; set to true, which made IE respect the element's style and re-render the element's content (i.e. &amp;lt;DIV&amp;gt;#4) after re-positioning it. My only concern now is what effect this might have on rendering performance, but it will have to do for now.&lt;br /&gt;&lt;br /&gt;Tip: you can use &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en"&gt;IE Developer Toolbar&lt;/a&gt; to check if an element hasLayout. It will show the &lt;code&gt;hasLayout&lt;/code&gt; property as set to -1 if &lt;code&gt;hasLayout&lt;/code&gt; is true.&lt;br /&gt;&lt;br /&gt;Further credit is due to &lt;a href="http://www.satzansatz.de/"&gt;Ingo Chao&lt;/a&gt; who wrote &lt;a href="http://www.satzansatz.de/cssd/rpfloat.html"&gt;relatively positioned parent and floated child – disappearance&lt;/a&gt;.</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgnHARMg6uJ_9DBs1NlcTEK-ffLEaRLJEqbddFGlpRO8giBixHMA1ubW6X-JGBwtTtKdsrEi_1zdAr03n8lDCGvl0jRSe5tOVaPi4ZLMYbymO08e_JNHJOx-4scH92CqxFz-rtoQJSC2P_/s72-c/hasLayout.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>