├── 404.html ├── CNAME ├── README.md ├── _config.yml ├── _layouts └── default.html ├── aws_logo.png ├── css ├── logo.png ├── logobw.png ├── main.css ├── monokai.css ├── normalize.css └── normalize.min.css ├── doc ├── 2.7 │ └── _posts │ │ ├── 2013-01-02-django.md │ │ ├── 2013-01-02-easy-install.md │ │ └── 2013-01-02-hello-world.md ├── 3.2 │ └── _posts │ │ └── 2013-01-02-hello-world.md └── _posts │ ├── 2013-01-02-2.7.md │ └── 2013-01-02-3.2.md ├── email.png ├── favicon.ico ├── humans.txt ├── hwebtsf160x80.png ├── images ├── django-dev-server.jpg ├── download.png └── select_packages.jpg ├── index.md ├── js ├── main.js ├── plugins.js └── vendor │ ├── jquery-1.8.3.min.js │ └── modernizr-2.6.2.min.js ├── keybase.txt ├── openhosting_logo.png ├── robots.txt ├── sitemap.md └── wiki └── _posts ├── 2013-01-02-About.md ├── 2013-01-02-Documentation.md ├── 2013-01-02-FAQ.md ├── 2013-01-02-Installation.md ├── 2013-01-03-Download.md ├── 2013-01-03-PortablePython1.1Py2.5.4.md ├── 2013-01-03-PortablePython1.1Py2.6.1.md ├── 2013-01-03-PortablePython1.1Py3.0.1.md ├── 2013-01-03-PortablePython2.7.2.1.md ├── 2013-01-03-PortablePython2.7.3.1.md ├── 2013-01-03-PortablePython2.7.3.2.md ├── 2013-01-03-PortablePython2.7.4.1.md ├── 2013-01-03-PortablePython2.7.5.1.md ├── 2013-01-03-PortablePython2.7.6.1.md ├── 2013-01-03-PortablePython3.2.0.1.md ├── 2013-01-03-PortablePython3.2.1.1.md └── 2013-01-03-PortablePython3.2.5.1.md /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Page Not Found :( 6 | 141 | 142 | 143 |
144 |

Not found :(

145 |

Sorry, but the page you were trying to view does not exist.

146 |

It looks like this was the result of either:

147 | 151 | 154 | 155 |
156 | 157 | 158 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | portablepython.com -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Portable Python 2 | ============== 3 | 4 | This branch holds all files needed to power [Portable Python project page](http://www.PortablePython.com). 5 | 6 | Feel free to fork and update any documentation area. 7 | 8 | Contributions are very welcome! 9 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | permalink: /:categories/:title/ 2 | url: https://portablepython.com -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Portable Python - {{ page.title }} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 |
27 |
28 |
29 |

Portable Python

30 |
31 |
32 |
33 | 34 |
35 |
36 | {{content}} 37 |
38 |
39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /aws_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/aws_logo.png -------------------------------------------------------------------------------- /css/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/css/logo.png -------------------------------------------------------------------------------- /css/logobw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/css/logobw.png -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | HTML5 Boilerplate styles - h5bp.com (generated via initializr.com) 3 | ========================================================================== */ 4 | 5 | html, 6 | button, 7 | input, 8 | select, 9 | textarea { 10 | color: #222; 11 | } 12 | 13 | body { 14 | font-size: 1em; 15 | line-height: 1.4; 16 | } 17 | 18 | ::-moz-selection { 19 | background: #b3d4fc; 20 | text-shadow: none; 21 | } 22 | 23 | ::selection { 24 | background: #b3d4fc; 25 | text-shadow: none; 26 | } 27 | 28 | hr { 29 | display: block; 30 | height: 1px; 31 | border: 0; 32 | border-top: 1px solid #ccc; 33 | margin: 1em 0; 34 | padding: 0; 35 | } 36 | 37 | img { 38 | vertical-align: middle; 39 | } 40 | 41 | fieldset { 42 | border: 0; 43 | margin: 0; 44 | padding: 0; 45 | } 46 | 47 | textarea { 48 | resize: vertical; 49 | } 50 | 51 | .chromeframe { 52 | margin: 0.2em 0; 53 | background: #ccc; 54 | color: #000; 55 | padding: 0.2em 0; 56 | } 57 | 58 | 59 | /* ========================================================================== 60 | Author's custom styles 61 | ========================================================================== */ 62 | body { 63 | -webkit-font-smoothing: antialiased; 64 | background-color: #F6F6F6; 65 | color: #444444; 66 | display: block; 67 | font-family: HelveticaNeue-Light, 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; 68 | font-size: 14px; 69 | font-weight: 300; 70 | line-height: 20px; 71 | margin-bottom: 0px; 72 | margin-left: 0px; 73 | margin-right: 0px; 74 | margin-top: 0px; 75 | overflow-x: auto; 76 | overflow-y: auto; 77 | } 78 | 79 | .sitewide { 80 | background-color: #FCFCFC; 81 | background-image: none; 82 | box-shadow: #ACACAC 0px 1px 3px 0px; 83 | height: 60px; 84 | margin-bottom: 50px; 85 | padding-top: 10px; 86 | 87 | background-image:url('logobw.png'); 88 | background-repeat: no-repeat; 89 | background-position: 0px -20px; 90 | } 91 | 92 | a:link, a:hover, a:visited, a:active { 93 | text-decoration: none; 94 | color: #3C7AAE; 95 | } 96 | 97 | .sitewide:hover { 98 | box-shadow: #3C7AAE 0px 1px 3px 0px; 99 | background-image:url('logo.png'); 100 | } 101 | 102 | .container { 103 | margin-left: auto; 104 | margin-right: auto; 105 | width: 800px; 106 | } 107 | 108 | .content { 109 | width: 590px; 110 | float: left; 111 | margin-right: 10px; 112 | padding-right: 10px; 113 | } 114 | 115 | .promotion { 116 | width: 190px; 117 | float: right; 118 | margin-top: -20px; 119 | } 120 | 121 | .framed-box { 122 | margin-right: 10px; 123 | margin-top: 20px; 124 | text-align: center; 125 | font-size: 12px; 126 | border: 1px solid #ACACAC; 127 | width: 163px; 128 | } 129 | 130 | .frame-header { 131 | margin-bottom: 10px; 132 | background-color: #ACACAC; 133 | font-size: 10px; 134 | font-family: Arial, sans-serif; 135 | line-height: 14px; 136 | } 137 | 138 | header h1 { 139 | font-family: tahoma, arial, sans-serif; 140 | font-size: 20px; 141 | font-weight: bold; 142 | letter-spacing: 1px; 143 | line-height: 45px; 144 | margin-top: 0px; 145 | text-rendering: optimizelegibility; 146 | float: left; 147 | } 148 | 149 | nav, nav ul { 150 | list-style-image: none; 151 | list-style-type: none; 152 | text-align: left; 153 | text-decoration: none; 154 | text-transform: uppercase; 155 | word-spacing: 10px; 156 | float: right; 157 | width: 450px; 158 | height: 60px; 159 | display: inline; 160 | } 161 | 162 | .inline li { 163 | display: inline; 164 | height: 60px; 165 | margin: 0px; 166 | padding: 0px; 167 | } 168 | 169 | .row { 170 | width: auto; 171 | height: 60px; 172 | } 173 | 174 | blockquote { 175 | font: 14px/22px normal helvetica, sans-serif; 176 | margin-top: 10px; 177 | margin-bottom: 10px; 178 | margin-left: 50px; 179 | padding-left: 15px; 180 | border-left: 3px solid #ccc; 181 | } 182 | 183 | thead { 184 | border: 1px solid #ACACAC; 185 | font-style: italic; 186 | } 187 | 188 | td { 189 | border: 1px solid #ACACAC; 190 | padding: 5px; 191 | } 192 | 193 | .suported_logo { 194 | width: 160px; 195 | } 196 | 197 | .highlight { 198 | font-size: 0.8em; 199 | } 200 | 201 | /* ========================================================================== 202 | Media Queries 203 | ========================================================================== */ 204 | 205 | @media only screen and (min-width: 35em) { 206 | 207 | } 208 | 209 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5), 210 | only screen and (min-resolution: 144dpi) { 211 | 212 | } 213 | 214 | /* ========================================================================== 215 | Helper classes 216 | ========================================================================== */ 217 | 218 | .ir { 219 | background-color: transparent; 220 | border: 0; 221 | overflow: hidden; 222 | *text-indent: -9999px; 223 | } 224 | 225 | .ir:before { 226 | content: ""; 227 | display: block; 228 | width: 0; 229 | height: 100%; 230 | } 231 | 232 | .hidden { 233 | display: none !important; 234 | visibility: hidden; 235 | } 236 | 237 | .visuallyhidden { 238 | border: 0; 239 | clip: rect(0 0 0 0); 240 | height: 1px; 241 | margin: -1px; 242 | overflow: hidden; 243 | padding: 0; 244 | position: absolute; 245 | width: 1px; 246 | } 247 | 248 | .visuallyhidden.focusable:active, 249 | .visuallyhidden.focusable:focus { 250 | clip: auto; 251 | height: auto; 252 | margin: 0; 253 | overflow: visible; 254 | position: static; 255 | width: auto; 256 | } 257 | 258 | .invisible { 259 | visibility: hidden; 260 | } 261 | 262 | .clearfix:before, 263 | .clearfix:after { 264 | content: " "; 265 | display: table; 266 | } 267 | 268 | .clearfix:after { 269 | clear: both; 270 | } 271 | 272 | .clearfix { 273 | *zoom: 1; 274 | } 275 | 276 | /* ========================================================================== 277 | Print styles 278 | ========================================================================== */ 279 | 280 | @media print { 281 | * { 282 | background: transparent !important; 283 | color: #000 !important; /* Black prints faster: h5bp.com/s */ 284 | box-shadow: none !important; 285 | text-shadow: none !important; 286 | } 287 | 288 | a, 289 | a:visited { 290 | text-decoration: underline; 291 | } 292 | 293 | a[href]:after { 294 | content: " (" attr(href) ")"; 295 | } 296 | 297 | abbr[title]:after { 298 | content: " (" attr(title) ")"; 299 | } 300 | 301 | /* 302 | * Don't show links for images, or javascript/internal links 303 | */ 304 | 305 | .ir a:after, 306 | a[href^="javascript:"]:after, 307 | a[href^="#"]:after { 308 | content: ""; 309 | } 310 | 311 | pre, 312 | blockquote { 313 | border: 1px solid #999; 314 | page-break-inside: avoid; 315 | } 316 | 317 | thead { 318 | display: table-header-group; /* h5bp.com/t */ 319 | } 320 | 321 | tr, 322 | img { 323 | page-break-inside: avoid; 324 | } 325 | 326 | img { 327 | max-width: 100% !important; 328 | } 329 | 330 | @page { 331 | margin: 0.5cm; 332 | } 333 | 334 | p, 335 | h2, 336 | h3 { 337 | orphans: 3; 338 | widows: 3; 339 | } 340 | 341 | h2, 342 | h3 { 343 | page-break-after: avoid; 344 | } 345 | } 346 | -------------------------------------------------------------------------------- /css/monokai.css: -------------------------------------------------------------------------------- 1 | .linenos { background-color: #49483e; color: #f8f8f2; } 2 | .code { background-color: #49483e; width: 500px; } 3 | pre { color: #f8f8f2; tab-size: 2; } 4 | .c { color: #75715e } /* Comment */ 5 | .err { color: #960050; background-color: #1e0010 } /* Error */ 6 | .k { color: #66d9ef } /* Keyword */ 7 | .l { color: #ae81ff } /* Literal */ 8 | .n { color: #f8f8f2 } /* Name */ 9 | .o { color: #f92672 } /* Operator */ 10 | .p { color: #f8f8f2 } /* Punctuation */ 11 | .cm { color: #75715e } /* Comment.Multiline */ 12 | .cp { color: #75715e } /* Comment.Preproc */ 13 | .c1 { color: #75715e } /* Comment.Single */ 14 | .cs { color: #75715e } /* Comment.Special */ 15 | .ge { font-style: italic } /* Generic.Emph */ 16 | .gs { font-weight: bold } /* Generic.Strong */ 17 | .kc { color: #66d9ef } /* Keyword.Constant */ 18 | .kd { color: #66d9ef } /* Keyword.Declaration */ 19 | .kn { color: #f92672 } /* Keyword.Namespace */ 20 | .kp { color: #66d9ef } /* Keyword.Pseudo */ 21 | .kr { color: #66d9ef } /* Keyword.Reserved */ 22 | .kt { color: #66d9ef } /* Keyword.Type */ 23 | .ld { color: #e6db74 } /* Literal.Date */ 24 | .m { color: #ae81ff } /* Literal.Number */ 25 | .s { color: #e6db74 } /* Literal.String */ 26 | .na { color: #a6e22e } /* Name.Attribute */ 27 | .nb { color: #f8f8f2 } /* Name.Builtin */ 28 | .nc { color: #a6e22e } /* Name.Class */ 29 | .no { color: #66d9ef } /* Name.Constant */ 30 | .nd { color: #a6e22e } /* Name.Decorator */ 31 | .ni { color: #f8f8f2 } /* Name.Entity */ 32 | .ne { color: #a6e22e } /* Name.Exception */ 33 | .nf { color: #a6e22e } /* Name.Function */ 34 | .nl { color: #f8f8f2 } /* Name.Label */ 35 | .nn { color: #f8f8f2 } /* Name.Namespace */ 36 | .nx { color: #a6e22e } /* Name.Other */ 37 | .py { color: #f8f8f2 } /* Name.Property */ 38 | .nt { color: #f92672 } /* Name.Tag */ 39 | .nv { color: #f8f8f2 } /* Name.Variable */ 40 | .ow { color: #f92672 } /* Operator.Word */ 41 | .w { color: #f8f8f2 } /* Text.Whitespace */ 42 | .mf { color: #ae81ff } /* Literal.Number.Float */ 43 | .mh { color: #ae81ff } /* Literal.Number.Hex */ 44 | .mi { color: #ae81ff } /* Literal.Number.Integer */ 45 | .mo { color: #ae81ff } /* Literal.Number.Oct */ 46 | .sb { color: #e6db74 } /* Literal.String.Backtick */ 47 | .sc { color: #e6db74 } /* Literal.String.Char */ 48 | .sd { color: #e6db74 } /* Literal.String.Doc */ 49 | .s2 { color: #e6db74 } /* Literal.String.Double */ 50 | .se { color: #ae81ff } /* Literal.String.Escape */ 51 | .sh { color: #e6db74 } /* Literal.String.Heredoc */ 52 | .si { color: #e6db74 } /* Literal.String.Interpol */ 53 | .sx { color: #e6db74 } /* Literal.String.Other */ 54 | .sr { color: #e6db74 } /* Literal.String.Regex */ 55 | .s1 { color: #e6db74 } /* Literal.String.Single */ 56 | .ss { color: #e6db74 } /* Literal.String.Symbol */ 57 | .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ 58 | .vc { color: #f8f8f2 } /* Name.Variable.Class */ 59 | .vg { color: #f8f8f2 } /* Name.Variable.Global */ 60 | .vi { color: #f8f8f2 } /* Name.Variable.Instance */ 61 | .il { color: #ae81ff } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v1.0.1 | MIT License | git.io/normalize */ 2 | 3 | /* ========================================================================== 4 | HTML5 display definitions 5 | ========================================================================== */ 6 | 7 | /* 8 | * Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3. 9 | */ 10 | 11 | article, 12 | aside, 13 | details, 14 | figcaption, 15 | figure, 16 | footer, 17 | header, 18 | hgroup, 19 | nav, 20 | section, 21 | summary { 22 | display: block; 23 | } 24 | 25 | /* 26 | * Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. 27 | */ 28 | 29 | audio, 30 | canvas, 31 | video { 32 | display: inline-block; 33 | *display: inline; 34 | *zoom: 1; 35 | } 36 | 37 | /* 38 | * Prevents modern browsers from displaying `audio` without controls. 39 | * Remove excess height in iOS 5 devices. 40 | */ 41 | 42 | audio:not([controls]) { 43 | display: none; 44 | height: 0; 45 | } 46 | 47 | /* 48 | * Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3, 49 | * and Safari 4. 50 | * Known issue: no IE 6 support. 51 | */ 52 | 53 | [hidden] { 54 | display: none; 55 | } 56 | 57 | /* ========================================================================== 58 | Base 59 | ========================================================================== */ 60 | 61 | /* 62 | * 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using 63 | * `em` units. 64 | * 2. Prevents iOS text size adjust after orientation change, without disabling 65 | * user zoom. 66 | */ 67 | 68 | html { 69 | font-size: 100%; /* 1 */ 70 | -webkit-text-size-adjust: 100%; /* 2 */ 71 | -ms-text-size-adjust: 100%; /* 2 */ 72 | } 73 | 74 | /* 75 | * Addresses `font-family` inconsistency between `textarea` and other form 76 | * elements. 77 | */ 78 | 79 | html, 80 | button, 81 | input, 82 | select, 83 | textarea { 84 | font-family: sans-serif; 85 | } 86 | 87 | /* 88 | * Addresses margins handled incorrectly in IE 6/7. 89 | */ 90 | 91 | body { 92 | margin: 0; 93 | } 94 | 95 | /* ========================================================================== 96 | Links 97 | ========================================================================== */ 98 | 99 | /* 100 | * Addresses `outline` inconsistency between Chrome and other browsers. 101 | */ 102 | 103 | a:focus { 104 | outline: thin dotted; 105 | } 106 | 107 | /* 108 | * Improves readability when focused and also mouse hovered in all browsers. 109 | */ 110 | 111 | a:active, 112 | a:hover { 113 | outline: 0; 114 | } 115 | 116 | /* ========================================================================== 117 | Typography 118 | ========================================================================== */ 119 | 120 | /* 121 | * Addresses font sizes and margins set differently in IE 6/7. 122 | * Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5, 123 | * and Chrome. 124 | */ 125 | 126 | h1 { 127 | font-size: 2em; 128 | margin: 0.67em 0; 129 | } 130 | 131 | h2 { 132 | font-size: 1.5em; 133 | margin: 0.83em 0; 134 | } 135 | 136 | h3 { 137 | font-size: 1.17em; 138 | margin: 1em 0; 139 | } 140 | 141 | h4 { 142 | font-size: 1em; 143 | margin: 1.33em 0; 144 | } 145 | 146 | h5 { 147 | font-size: 0.83em; 148 | margin: 1.67em 0; 149 | } 150 | 151 | h6 { 152 | font-size: 0.75em; 153 | margin: 2.33em 0; 154 | } 155 | 156 | /* 157 | * Addresses styling not present in IE 7/8/9, Safari 5, and Chrome. 158 | */ 159 | 160 | abbr[title] { 161 | border-bottom: 1px dotted; 162 | } 163 | 164 | /* 165 | * Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. 166 | */ 167 | 168 | b, 169 | strong { 170 | font-weight: bold; 171 | } 172 | 173 | blockquote { 174 | margin: 1em 40px; 175 | } 176 | 177 | /* 178 | * Addresses styling not present in Safari 5 and Chrome. 179 | */ 180 | 181 | dfn { 182 | font-style: italic; 183 | } 184 | 185 | /* 186 | * Addresses styling not present in IE 6/7/8/9. 187 | */ 188 | 189 | mark { 190 | background: #ff0; 191 | color: #000; 192 | } 193 | 194 | /* 195 | * Addresses margins set differently in IE 6/7. 196 | */ 197 | 198 | p, 199 | pre { 200 | margin: 1em 0; 201 | } 202 | 203 | /* 204 | * Corrects font family set oddly in IE 6, Safari 4/5, and Chrome. 205 | */ 206 | 207 | code, 208 | kbd, 209 | pre, 210 | samp { 211 | font-family: monospace, serif; 212 | _font-family: 'courier new', monospace; 213 | font-size: 1em; 214 | } 215 | 216 | /* 217 | * Improves readability of pre-formatted text in all browsers. 218 | */ 219 | 220 | pre { 221 | white-space: pre; 222 | white-space: pre-wrap; 223 | word-wrap: break-word; 224 | } 225 | 226 | /* 227 | * Addresses CSS quotes not supported in IE 6/7. 228 | */ 229 | 230 | q { 231 | quotes: none; 232 | } 233 | 234 | /* 235 | * Addresses `quotes` property not supported in Safari 4. 236 | */ 237 | 238 | q:before, 239 | q:after { 240 | content: ''; 241 | content: none; 242 | } 243 | 244 | /* 245 | * Addresses inconsistent and variable font size in all browsers. 246 | */ 247 | 248 | small { 249 | font-size: 80%; 250 | } 251 | 252 | /* 253 | * Prevents `sub` and `sup` affecting `line-height` in all browsers. 254 | */ 255 | 256 | sub, 257 | sup { 258 | font-size: 75%; 259 | line-height: 0; 260 | position: relative; 261 | vertical-align: baseline; 262 | } 263 | 264 | sup { 265 | top: -0.5em; 266 | } 267 | 268 | sub { 269 | bottom: -0.25em; 270 | } 271 | 272 | /* ========================================================================== 273 | Lists 274 | ========================================================================== */ 275 | 276 | /* 277 | * Addresses margins set differently in IE 6/7. 278 | */ 279 | 280 | dl, 281 | menu, 282 | ol, 283 | ul { 284 | margin: 1em 0; 285 | } 286 | 287 | dd { 288 | margin: 0 0 0 40px; 289 | } 290 | 291 | /* 292 | * Addresses paddings set differently in IE 6/7. 293 | */ 294 | 295 | menu, 296 | ol, 297 | ul { 298 | padding: 0 0 0 40px; 299 | } 300 | 301 | /* 302 | * Corrects list images handled incorrectly in IE 7. 303 | */ 304 | 305 | nav ul, 306 | nav ol { 307 | list-style: none; 308 | list-style-image: none; 309 | } 310 | 311 | /* ========================================================================== 312 | Embedded content 313 | ========================================================================== */ 314 | 315 | /* 316 | * 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3. 317 | * 2. Improves image quality when scaled in IE 7. 318 | */ 319 | 320 | img { 321 | border: 0; /* 1 */ 322 | -ms-interpolation-mode: bicubic; /* 2 */ 323 | } 324 | 325 | /* 326 | * Corrects overflow displayed oddly in IE 9. 327 | */ 328 | 329 | svg:not(:root) { 330 | overflow: hidden; 331 | } 332 | 333 | /* ========================================================================== 334 | Figures 335 | ========================================================================== */ 336 | 337 | /* 338 | * Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11. 339 | */ 340 | 341 | figure { 342 | margin: 0; 343 | } 344 | 345 | /* ========================================================================== 346 | Forms 347 | ========================================================================== */ 348 | 349 | /* 350 | * Corrects margin displayed oddly in IE 6/7. 351 | */ 352 | 353 | form { 354 | margin: 0; 355 | } 356 | 357 | /* 358 | * Define consistent border, margin, and padding. 359 | */ 360 | 361 | fieldset { 362 | border: 1px solid #c0c0c0; 363 | margin: 0 2px; 364 | padding: 0.35em 0.625em 0.75em; 365 | } 366 | 367 | /* 368 | * 1. Corrects color not being inherited in IE 6/7/8/9. 369 | * 2. Corrects text not wrapping in Firefox 3. 370 | * 3. Corrects alignment displayed oddly in IE 6/7. 371 | */ 372 | 373 | legend { 374 | border: 0; /* 1 */ 375 | padding: 0; 376 | white-space: normal; /* 2 */ 377 | *margin-left: -7px; /* 3 */ 378 | } 379 | 380 | /* 381 | * 1. Corrects font size not being inherited in all browsers. 382 | * 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5, 383 | * and Chrome. 384 | * 3. Improves appearance and consistency in all browsers. 385 | */ 386 | 387 | button, 388 | input, 389 | select, 390 | textarea { 391 | font-size: 100%; /* 1 */ 392 | margin: 0; /* 2 */ 393 | vertical-align: baseline; /* 3 */ 394 | *vertical-align: middle; /* 3 */ 395 | } 396 | 397 | /* 398 | * Addresses Firefox 3+ setting `line-height` on `input` using `!important` in 399 | * the UA stylesheet. 400 | */ 401 | 402 | button, 403 | input { 404 | line-height: normal; 405 | } 406 | 407 | /* 408 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 409 | * and `video` controls. 410 | * 2. Corrects inability to style clickable `input` types in iOS. 411 | * 3. Improves usability and consistency of cursor style between image-type 412 | * `input` and others. 413 | * 4. Removes inner spacing in IE 7 without affecting normal text inputs. 414 | * Known issue: inner spacing remains in IE 6. 415 | */ 416 | 417 | button, 418 | html input[type="button"], /* 1 */ 419 | input[type="reset"], 420 | input[type="submit"] { 421 | -webkit-appearance: button; /* 2 */ 422 | cursor: pointer; /* 3 */ 423 | *overflow: visible; /* 4 */ 424 | } 425 | 426 | /* 427 | * Re-set default cursor for disabled elements. 428 | */ 429 | 430 | button[disabled], 431 | input[disabled] { 432 | cursor: default; 433 | } 434 | 435 | /* 436 | * 1. Addresses box sizing set to content-box in IE 8/9. 437 | * 2. Removes excess padding in IE 8/9. 438 | * 3. Removes excess padding in IE 7. 439 | * Known issue: excess padding remains in IE 6. 440 | */ 441 | 442 | input[type="checkbox"], 443 | input[type="radio"] { 444 | box-sizing: border-box; /* 1 */ 445 | padding: 0; /* 2 */ 446 | *height: 13px; /* 3 */ 447 | *width: 13px; /* 3 */ 448 | } 449 | 450 | /* 451 | * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome. 452 | * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome 453 | * (include `-moz` to future-proof). 454 | */ 455 | 456 | input[type="search"] { 457 | -webkit-appearance: textfield; /* 1 */ 458 | -moz-box-sizing: content-box; 459 | -webkit-box-sizing: content-box; /* 2 */ 460 | box-sizing: content-box; 461 | } 462 | 463 | /* 464 | * Removes inner padding and search cancel button in Safari 5 and Chrome 465 | * on OS X. 466 | */ 467 | 468 | input[type="search"]::-webkit-search-cancel-button, 469 | input[type="search"]::-webkit-search-decoration { 470 | -webkit-appearance: none; 471 | } 472 | 473 | /* 474 | * Removes inner padding and border in Firefox 3+. 475 | */ 476 | 477 | button::-moz-focus-inner, 478 | input::-moz-focus-inner { 479 | border: 0; 480 | padding: 0; 481 | } 482 | 483 | /* 484 | * 1. Removes default vertical scrollbar in IE 6/7/8/9. 485 | * 2. Improves readability and alignment in all browsers. 486 | */ 487 | 488 | textarea { 489 | overflow: auto; /* 1 */ 490 | vertical-align: top; /* 2 */ 491 | } 492 | 493 | /* ========================================================================== 494 | Tables 495 | ========================================================================== */ 496 | 497 | /* 498 | * Remove most spacing between table cells. 499 | */ 500 | 501 | table { 502 | border-collapse: collapse; 503 | border-spacing: 0; 504 | } 505 | -------------------------------------------------------------------------------- /css/normalize.min.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v1.0.1 | MIT License | git.io/normalize */ 2 | article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block} 3 | audio,canvas,video{display:inline-block;*display:inline;*zoom:1} 4 | audio:not([controls]){display:none;height:0} 5 | [hidden]{display:none} 6 | html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%} 7 | html,button,input,select,textarea{font-family:sans-serif} 8 | body{margin:0} 9 | a:focus{outline:thin dotted} 10 | a:active,a:hover{outline:0} 11 | h1{font-size:2em;margin:.67em 0} 12 | h2{font-size:1.5em;margin:.83em 0} 13 | h3{font-size:1.17em;margin:1em 0} 14 | h4{font-size:1em;margin:1.33em 0} 15 | h5{font-size:.83em;margin:1.67em 0} 16 | h6{font-size:.75em;margin:2.33em 0} 17 | abbr[title]{border-bottom:1px dotted} 18 | b,strong{font-weight:bold} 19 | blockquote{margin:1em 40px} 20 | dfn{font-style:italic} 21 | mark{background:#ff0;color:#000} 22 | p,pre{margin:1em 0} 23 | code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em} 24 | pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word} 25 | q{quotes:none} 26 | q:before,q:after{content:'';content:none} 27 | small{font-size:80%} 28 | sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} 29 | sup{top:-0.5em} 30 | sub{bottom:-0.25em} 31 | dl,menu,ol,ul{margin:1em 0} 32 | dd{margin:0 0 0 40px} 33 | menu,ol,ul{padding:0 0 0 40px} 34 | nav ul,nav ol{list-style:none;list-style-image:none} 35 | img{border:0;-ms-interpolation-mode:bicubic} 36 | svg:not(:root){overflow:hidden} 37 | figure{margin:0} 38 | form{margin:0} 39 | fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em} 40 | legend{border:0;padding:0;white-space:normal;*margin-left:-7px} 41 | button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle} 42 | button,input{line-height:normal} 43 | button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible} 44 | button[disabled],input[disabled]{cursor:default} 45 | input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px} 46 | input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box} 47 | input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none} 48 | button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} 49 | textarea{overflow:auto;vertical-align:top} 50 | table{border-collapse:collapse;border-spacing:0} -------------------------------------------------------------------------------- /doc/2.7/_posts/2013-01-02-django.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Django" 4 | --- 5 | 6 | Because Portable Python is a "portable" application, it is not registered in Windows registry and your operating system does not know where python executable is located. Because of this, you can not simply type `my_script.py` on the command prompt and expect Windows to know what to do with that command. In the same way, you can not use `django-admin.py` without specifying Python executable that should be used to interpret this Python script file. Correct way to execute Python scripts in Portable Python is to use `Python-Portable.exe` like explained in [Hello World]({{site.url}}/doc/2.7/hello-world/) 7 | 8 | ### Check your installation 9 | In case that we want to see version of django that is installed in Portable Python, we can use command prompt and execute `Python-Portable.exe` in direct command execution mode: 10 | 11 | {% highlight text linenos=table %} 12 | 13 | Python-Portable.exe -c "import django; print(django.get_version());raw_input('Press to continue')" 14 | 15 | {% endhighlight %} 16 | 17 | Python built-in function `raw_input` is used in this case to get input from the user and to pause execution at the end of the script until user presses enter key. Without this function, command prompt would quickly flash and disappear and we would not have a chance to see output of the `print(django.get_version())` command. 18 | 19 | ### Create a new project 20 | Creating a new Django project is exactly the same like explained in Django tutorials: `django-admin.py startproject mysite`, only like explained above we need to pass correct paths for Python executable and `django-admin.py`. Lets assume that our project will live in `C:\Temp`, by using command line we navigate to folder where we will create our project (in this case C:\Temp) and then create a new project called "mysite": 21 | 22 | 23 | {% highlight text linenos=table %} 24 | 25 | c:\Temp>"[PP root folder]\Python-Portable.exe" "[PP root folder]\App\Scripts\django-admin.py" startproject mysite 26 | 27 | {% endhighlight %} 28 | 29 | Where `[PP root folder]` is the full path to our Portable Python installation, e.g. `H:\Portable Python 2.7.6.1`. 30 | 31 | This will create a folder called "mysite" in `C:\Temp` that holds skeleton of our first Django project. To start development server and see this skeleton application working, we need to navigate to folder "mysite" and start development server: 32 | 33 | {% highlight text linenos=table %} 34 | 35 | c:\Temp>cd mysite 36 | 37 | c:\Temp\mysite>"[PP root folder]\Python-Portable.exe" manage.py runserver 38 | 39 | {% endhighlight %} 40 | 41 | This will validate models in our application and start development server - after couple of seconds, console window will open with text similar to this 42 | 43 | {% highlight text linenos=table %} 44 | 45 | Validating models... 46 | 47 | 0 errors found 48 | April 19, 2014 - 23:31:37 49 | Django version 1.6.2, using settings 'mysite.settings' 50 | Starting development server at http://127.0.0.1:8000/ 51 | Quit the server with CTRL-BREAK. 52 | 53 | {% endhighlight %} 54 | 55 | To see this development site in action, navigate with your internet browser to `http://127.0.0.1:8000/` 56 | 57 | ![][django it worked] 58 | 59 | [django it worked]: {{site.url}}/images/django-dev-server.jpg 60 | 61 | For more details on how to build Django enabled applications please refer to Django tutorial. -------------------------------------------------------------------------------- /doc/2.7/_posts/2013-01-02-easy-install.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Easy install" 4 | --- 5 | 6 | One of the options for adding new packages/libraries to Portable Python is `easy-install`. This approach will work for simple libraries but for some more complex it might not as in some cases easy-install adds files outside of the Portable Python folder, which makes this not a portable installation. E.g. in case that easy-install adds files to Windows system32 folder, libraries installed will work only on the same computer where they are installed, if Portable Python is transferred to another computer (copy or run from USB drive) those libraries will not work as target windows environment does not have required files in Windows system32 folder. 7 | 8 | ### Using easy install 9 | Portable Python scripts folder contains `easy-install.exe` utility that can be used to install new packages. For example, if we would like to install `BeautifulSoup` we need to execute command 10 | 11 | {% highlight text linenos=table %} 12 | 13 | App\Scripts\easy_install.exe beautifulsoup4 14 | 15 | {% endhighlight %} 16 | 17 | on command prompt while located in the root folder of the Portable Python distribution. 18 | 19 | After couple of seconds of processing, easy install will report that installation is complete and we can proceed to use Portable Python that is extended with this new library: 20 | 21 | {% highlight text linenos=table %} 22 | 23 | Installed ...\site-packages\beautifulsoup4-4.3.2-py2.7.egg 24 | Processing dependencies for beautifulsoup4 25 | Finished processing dependencies for beautifulsoup4 26 | 27 | {% endhighlight %} 28 | -------------------------------------------------------------------------------- /doc/2.7/_posts/2013-01-02-hello-world.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Hello world" 4 | --- 5 | 6 | Like any other Python distribution, in Portable Python you can execute your scripts from interactive prompt or by passing script name to the Python engine. 7 | 8 | ### Interactive mode 9 | When you start Portable Python executable `Python-Portable.exe` without passing python file as an argument, you will start interactive mode where commands are evaluated as you enter them. 10 | 11 | {% highlight python linenos=table %} 12 | 13 | Python 2.7.5 (default, ..) [MSC v....] on win32 14 | Type "help", "copyright" ... for more information. 15 | Portable Python >>> 16 | 17 | {% endhighlight %} 18 | 19 | In this mode variables are echoed after they are entered 20 | 21 | {% highlight python linenos=table %} 22 | 23 | Python 2.7.5 (default, ..) [MSC v....] on win32 24 | Type "help", "copyright" ... for more information. 25 | Portable Python >>> 42 26 | 42 27 | Portable Python >>> "Hello World" 28 | 'Hello World' 29 | Portable Python >>> 1+1 30 | 2 31 | Portable Python >>> my_variable = 17 32 | Portable Python >>> my_variable 33 | 17 34 | Portable Python >>> print("Hello World") 35 | Hello World 36 | Portable Python >>> 37 | 38 | {% endhighlight %} 39 | 40 | 41 | ### Executing python script files 42 | Portable Python executable (`Python-Portable.exe`) can execute python script files if you pass them as parameters from the command line. For example if we save following code to file named `hello.py` 43 | 44 | {% highlight python linenos=table %} 45 | 46 | print("Hello world") 47 | 48 | a = True 49 | if a == True: 50 | print("It is true!") 51 | else: 52 | print("It is false...") 53 | 54 | b = raw_input("Enter value:") 55 | print("Your value is") 56 | print(b) 57 | 58 | raw_input("Press enter to continue...") 59 | 60 | {% endhighlight %} 61 | 62 | we can execute it from windows command line by typing `Python-Portable.exe hello.py`. New command window will open and you will be prompted to enter value. After you enter some text or number, it will be printed back to the screen and program will end. 63 | 64 | {% highlight text linenos=table %} 65 | 66 | Hello world 67 | It is true! 68 | Enter value:42 69 | Your value is 70 | 42 71 | Press enter to continue... 72 | 73 | {% endhighlight %} 74 | 75 | Python built-in function `raw_input` is used in this case to get input from the user and to pause execution at the end of the script until user presses enter key. 76 | 77 | -------------------------------------------------------------------------------- /doc/3.2/_posts/2013-01-02-hello-world.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Hello world" 4 | --- 5 | 6 | Like any other Python distribution, in Portable Python you can execute your scripts from interactive prompt or by passing script name to the Python engine. 7 | 8 | ### Interactive mode 9 | When you start Portable Python executable `Python-Portable.exe` without passing python file as an argument, you will start interactive mode where commands are evaluated as you enter them. 10 | 11 | {% highlight python linenos=table %} 12 | 13 | Python 3.2.5 (default, ...) [MSC v....] on win32 14 | Type "help", "copyright" ... for more information. 15 | Portable Python >>> 16 | 17 | {% endhighlight %} 18 | 19 | In this mode variables are echoed after they are entered 20 | 21 | {% highlight python linenos=table %} 22 | 23 | Python 3.2.5 (default, ...) [MSC v....] on win32 24 | Type "help", "copyright" ... for more information. 25 | Portable Python >>> 42 26 | 42 27 | Portable Python >>> "Hello World" 28 | 'Hello World' 29 | Portable Python >>> 1+1 30 | 2 31 | Portable Python >>> my_variable = 17 32 | Portable Python >>> my_variable 33 | 17 34 | Portable Python >>> print("Hello World") 35 | Hello World 36 | Portable Python >>> 37 | 38 | {% endhighlight %} 39 | 40 | 41 | ### Executing python script files 42 | Portable Python executable (`Python-Portable.exe`) can execute python script files if you pass them as parameters from the command line. For example if we save following code to file named `hello.py` 43 | 44 | {% highlight python linenos=table %} 45 | 46 | print("Hello world") 47 | 48 | a = True 49 | if a == True: 50 | print("It is true!") 51 | else: 52 | print("It is false...") 53 | 54 | b = input("Enter value:") 55 | print("Your value is") 56 | print(b) 57 | 58 | input("Press enter to continue...") 59 | 60 | {% endhighlight %} 61 | 62 | we can execute it from windows command line by typing `Python-Portable.exe hello.py`. New command window will open and you will be prompted to enter value. After you enter some text or number, it will be printed back to the screen and program will end. 63 | 64 | {% highlight text linenos=table %} 65 | 66 | Hello world 67 | It is true! 68 | Enter value:42 69 | Your value is 70 | 42 71 | Press enter to continue... 72 | 73 | {% endhighlight %} 74 | 75 | Python built-in function `input` is used in this case to get input from the user and to pause execution at the end of the script until user presses enter key. 76 | 77 | -------------------------------------------------------------------------------- /doc/_posts/2013-01-02-2.7.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "2.7.x Documentation" 4 | --- 5 | ## 2.7.x Documentation 6 | 7 | * [Hello World]({{site.url}}/doc/2.7/hello-world/) 8 | * [First steps with Django]({{site.url}}/doc/2.7/django/) 9 | * [Adding packages with easy-install]({{site.url}}/doc/2.7/easy-install/) -------------------------------------------------------------------------------- /doc/_posts/2013-01-02-3.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "3.2.x Documentation" 4 | --- 5 | ## 3.2.x Documentation 6 | 7 | * [Hello World]({{site.url}}/doc/3.2/hello-world/) 8 | -------------------------------------------------------------------------------- /email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/email.png -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/favicon.ico -------------------------------------------------------------------------------- /humans.txt: -------------------------------------------------------------------------------- 1 | Portable Python -------------------------------------------------------------------------------- /hwebtsf160x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/hwebtsf160x80.png -------------------------------------------------------------------------------- /images/django-dev-server.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/images/django-dev-server.jpg -------------------------------------------------------------------------------- /images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/images/download.png -------------------------------------------------------------------------------- /images/select_packages.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pericazivkovic/portablepython/fa319fef1f921731e00bd9cec0ebb45aec23d113/images/select_packages.jpg -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python" 4 | --- 5 | Portable Python is not being developed anymore. At the moment there are several better and more up-to-date alternatives: 6 | 7 | 8 | > [PythonXY](http://python-xy.github.io/ "PythonXY") 9 | 10 | Python(x,y) is a free scientific and engineering development software for numerical computations, data analysis and data visualization based on Python programming language, Qt graphical user interfaces and Spyder interactive scientific development environment. 11 | 12 | > [WinPython](http://winpython.github.io/ "WinPython") 13 | 14 | A free Python-distribution for Windows plattform, including prebuilt packages for Scientific Python. 15 | 16 | > [Anaconda](https://store.continuum.io/cshop/anaconda/ "Anaconda") 17 | 18 | Completely free enterprise-ready Python distribution for large-scale data processing, predictive analytics, and scientific computing 19 | 20 | > [Python Anywhere](http://pythonanywhere.com "Python Anywhere") 21 | 22 | PythonAnywhere makes it easy to create and run Python programs in the cloud. You can write your programs in a web-based editor or just run a console session from any modern web browser. 23 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /js/plugins.js: -------------------------------------------------------------------------------- 1 | // Avoid `console` errors in browsers that lack a console. 2 | (function() { 3 | var method; 4 | var noop = function noop() {}; 5 | var methods = [ 6 | 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 7 | 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 8 | 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 9 | 'timeStamp', 'trace', 'warn' 10 | ]; 11 | var length = methods.length; 12 | var console = (window.console = window.console || {}); 13 | 14 | while (length--) { 15 | method = methods[length]; 16 | 17 | // Only stub undefined methods. 18 | if (!console[method]) { 19 | console[method] = noop; 20 | } 21 | } 22 | }()); 23 | 24 | // Place any jQuery/helper plugins in here. 25 | -------------------------------------------------------------------------------- /js/vendor/jquery-1.8.3.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v1.8.3 jquery.com | jquery.org/license */ 2 | (function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
t
",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
","
"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); -------------------------------------------------------------------------------- /js/vendor/modernizr-2.6.2.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f 6 | 7 | 8 | https://portablepython.com 9 | daily 10 | 1 11 | 12 | {% for post in site.posts %} 13 | 14 | {{site.url|xml_escape}}{{post.url|xml_escape}} 15 | daily 16 | 0.8 17 | 18 | {% endfor %} 19 | 20 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-02-About.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "About page" 4 | --- 5 | ## How all this started 6 | 7 | Well for some time now I'm using some portable applications (Firefox, Thunderbird, Gaim, etc...) and when I started to play around with Django I noticed question on one of the Django mailing lists about making Django development portable and can it be done with Movable Python. It sounded quite interesting to me too and I started to think how to make "Django on a (USB) stick". 8 | 9 | After few tests I realized that it is not that difficult to make Python portable so I started thinking why not go all the way and make "Python on a stick" and that is how that idea was born. All the rest was a bit Python programming to create portable script runner application and to configure my favorite Python editor SciTE to run from portable device and to use Portable Python. 10 | 11 | ## Current status 12 | 13 | I get lots of questions about "how stable it really is" ? Well every release goes through very serious testing process on at least 4 different versions of Windows. And it is also being tested by a small group of core users before it is released in the public. 14 | 15 | Currently there are two main "branches" based on Python 2.x and 3.x. Python 2..x based distribution usually contains more libraries as in general support for Python 2.x is more widespread in the community. 16 | 17 | ## Future plans 18 | 19 | Like you all expect it will be more stable, more packages, more editors, configurable, super flexible-state of the art project :-) 20 | 21 | But that is not the final target I want to reach. What I would like to do is to give Portable Python to all those young minds on the world for free. To go with hundreds of memory sticks to schools, universities and to give them good and stable portable development environment - for FREE. Lets be honest, our future depends on the knowledge of those young people and what better way to invest in our future but to provide them with a tool to learn, develop, experiment. 22 | 23 | Welcome to my dream. Help me to make it reality. 24 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-02-Documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Documentation page" 4 | --- 5 | ## Documentation 6 | 7 | Table of content: 8 | 9 | * [FAQ]({{site.url}}/wiki/FAQ) 10 | * [Installation]({{site.url}}/wiki/Installation) 11 | * [Portable Python 2.7 documentation]({{site.url}}/doc/2.7) 12 | * [Portable Python 3.2 documentation]({{site.url}}/doc/3.2) 13 | 14 | ### Additional documentation, books and links 15 | 16 | * [Python documentation](http://www.python.org/doc/) 17 | * [Dive into Python](http://www.diveintopython.net/) 18 | * [Python 3 Patterns Recipes and Idioms](http://www.mindviewinc.com/Books/Python3Patterns/Index.php) 19 | * [Probabilistic Programming and Bayesian Methods for Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/) 20 | * [Python books](http://wiki.python.org/moin/PythonBooks) 21 | * [ActiveState Python recipes](http://code.activestate.com/recipes/langs/python/) 22 | * [StackOverflow Python questions](http://stackoverflow.com/questions/tagged/python) 23 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-02-FAQ.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "FAQ" 4 | --- 5 | ## FAQ 6 | 7 | * **Can I run Portable Python on Linux or Mac OS?** 8 | 9 | No. At the moment Portable Python runs only on the Windows operating system. 10 | 11 | * **Can I run Portable Python on my portable device/phone?** 12 | 13 | No. At the moment Portable Python runs only on the Windows operating system. 14 | 15 | * **Package/library I need is not in the Portable Python distribution, can I add it?** 16 | 17 | For simpler packages you can use easy install or even extract them in site-packages folder of the Portable Python distribution. However some packages are installing additional dependencies in windows system folders - in this case your Portable Python distribution will not work once you move it to some other workstation. Make sure to do proper testing ! 18 | 19 | You can always fork Portable Python build scripts on [GitHub](https://github.com/pericazivkovic/portablepython) and modify them to include package/library you need. Some basic knowledge of windows batch scripting and NSIS installer packaging is required! 20 | 21 | You can also request for packages to be included in the Portable Python distribution here: [User Voice portal](http://portablepython.uservoice.com), based on the number of total voices, they will be considered for the upcoming releases. 22 | 23 | * **Is Portable Python Free? I see a "Donate" button!** 24 | 25 | Portable Python is and will always be free application. If you would like to support this project and help cover costs for hosting and further extensions, feel free to Donate to the project. 26 | 27 | * **I have a problem/bug to report! What should I do?** 28 | 29 | Visit our [support group](https://groups.google.com/forum/?fromgroups#!forum/portablepython) and post a question/report a bug. Kudos are welcome too! 30 | 31 | 32 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-02-Installation.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Installation" 4 | --- 5 | ## Installation 6 | 7 | After downloading entire distribution for specific Python version, run the installer, select the packages you would like to install, select the target folder and you are done! In the folder where you installed Portable Python you will find shortcuts for selected applications in that package. Some of the most popular free Python IDE’s come preinstalled and preconfigured with Portable Python. 8 | 9 | ![][select packages] 10 | 11 | Portable Python can be installed on any USB storage device, local hard drive or network location. It is possible to install several different distributions of Portable Python on the same USB storage device (or local hard drive) and have them running side by side. This makes Portable Python ideal environment to test your code with different Python engines. 12 | 13 | After installation every instance of Portable Python can be copied or moved to different location and it will still keep working (if you make sure to copy entire folder where Portable Python is installed). 14 | 15 | Feedback is always welcome, if you have a question or just want to share your Portable Python success story, visit our [google group](https://groups.google.com/forum/?fromgroups#!forum/portablepython). To report a bug or to request a new feature - [click here](http://portablepython.uservoice.com). 16 | 17 | [select packages]: {{site.url}}/images/select_packages.jpg -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-Download.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Download page" 4 | --- 5 | ## Download 6 | 7 | > _This project needs your help to survive! Please use consider a donation to Portable Python project. Any amount will help to cover the costs of hosting, maintenance and keeping this project alive._ 8 | 9 | --- 10 | 11 | After downloading entire distribution or specific Python version, run the installer, select the packages you want to install, select target folder and you are done! In the folder where you installed Portable Python you will find shortcuts for selected applications in that package. Some of the most popular free Python IDE’s come preinstalled and preconfigured with Portable Python. 12 | 13 | Portable Python can be installed on any USB storage device, local hard drive or network location. It is possible to install several different distributions of Portable Python on the same USB storage device (or local hard drive) and have them running side by side. This makes Portable Python ideal environment to test your code with different Python engines. 14 | 15 | After installation every instance of Portable Python can be copied or moved to different location and it will still keep working (if you make sure to copy entire folder where Portable Python is installed). 16 | 17 | > ![][dllogo] [Portable Python 2.7.6.1]({{site.url}}/wiki/PortablePython2.7.6.1/ "Download Portable Python 2.7.6.1") 18 | 19 | > ![][dllogo] [Portable Python 3.2.5.1]({{site.url}}/wiki/PortablePython3.2.5.1/ "Download Portable Python 3.2.5.1") 20 | 21 | 22 | > [Older versions](http://ftp.nluug.nl/languages/python/portablepython/ "Browse older versions") 23 | 24 | [dllogo]: {{site.url}}/images/download.png 25 | 26 | 27 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython1.1Py2.5.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 1.1 - based on Python 2.5.4 - Download page" 4 | --- 5 | ## Portable Python 1.1 based on Python 2.5.4 6 | 7 | This package contains following applications/libraries (alphabetical order): 8 | 9 | * Django 1.0.2-final 10 | * IPython 0.9.1 11 | * Matplotlib 0.98.5.2 12 | * Numpy 1.2.1 13 | * PIL 1.1.6 14 | * Py2exe 0.6.9 15 | * PyGame 1.8.1 16 | * PyReadline 1.5 17 | * PyScripter 1.9.9.6 18 | * PyWin32-212 19 | * Rpyc 2.60 20 | * Scipy 0.7.0b1 21 | * SPE 0.8.4 22 | * VPython 3.2.11 23 | * wxPython 2.8.9.1 24 | 25 | Package file size (compressed): 64MB 26 | 27 | Package file hash: 28 | * MD5 - 8b423e16b04cbcb534b0e16a4bd5e4ae 29 | 30 | Download this package from our archives: 31 | 32 | | Country | Mirror | Type | 33 | |-------------|------------|----------| 34 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 35 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 36 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 37 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 38 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 39 | 40 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython1.1Py2.6.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 1.1 - based on Python 2.6.1 - Download page" 4 | --- 5 | ## Portable Python 1.1 based on Python 2.6.1 6 | 7 | This package contains following applications/libraries (alphabetical order): 8 | 9 | * Django 1.0.2-final 10 | * IPython 0.9.1 11 | * PIL 1.1.6 12 | * Py2exe 0.6.9 13 | * PyGame 1.8.1 14 | * PyReadline 1.5 15 | * PyScripter 1.9.9.6 16 | * PyWin32-212 17 | * Rpyc 2.60 18 | * SPE 0.8.4c 19 | * wxPython 2.8.9.1 20 | 21 | Package file size (compressed): 45MB 22 | 23 | Package file hash: 24 | * MD5 - 53a06e1d46fc28747de4d69125ff4a76 25 | 26 | Download this package from our archives: 27 | 28 | | Country | Mirror | Type | 29 | |-------------|------------|----------| 30 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 31 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 32 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 33 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 34 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 35 | 36 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython1.1Py3.0.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 1.1 based on Python 3.0.1 - Download page" 4 | --- 5 | ## Portable Python 1.1 based on Python 3.0.1 6 | 7 | This package contains following applications/libraries (alphabetical order): 8 | 9 | * PyScripter v1.9.9.6 10 | * RPyc-2.60 11 | 12 | Package file size (compressed): 19MB 13 | 14 | Package file hash: 15 | * MD5 - 93ecb87ba61d5381e43f5958aa1e79fd 16 | 17 | Download this package from our archives: 18 | 19 | | Country | Mirror | Type | 20 | |-------------|------------|----------| 21 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 22 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 23 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 24 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 25 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 26 | 27 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython2.7.2.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 2.7.2.1 - Download page" 4 | --- 5 | ## Portable Python 2.7.2.1 6 | 7 | This package contains following applications/libraries: 8 | 9 | * PyScripter v2.4.1 10 | * NymPy 1.6.0 11 | * SciPy 0.90 12 | * Matplotlib 1.0.1 13 | * PyWin32 216 14 | * Django 1.3 15 | * PIL 1.1.7 16 | * Py2Exe 0.6.9 17 | * wxPython 2.8.12.0 18 | 19 | Package file size (compressed): 45MB 20 | 21 | Installed size: based on selected packages, between 69MB and 202MB 22 | 23 | Package file hash: 24 | * MD5 - bf6683be6902d3b368d7ba207fdc3fce 25 | * SHA1 - a4e57ac46f5a6c6666e56d0dbd8abdf52dfe485e 26 | 27 | Download this package from our archives: 28 | 29 | | Country | Mirror | Type | 30 | |-------------|------------|----------| 31 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 32 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 33 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 34 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 35 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 36 | 37 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython2.7.3.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 2.7.3.1 - Download page" 4 | --- 5 | ## Portable Python 2.7.3.1 6 | 7 | This package contains following applications/libraries: 8 | 9 | * PyScripter v2.5.3 10 | * NymPy 1.6.1 11 | * SciPy 0.10.0 12 | * Matplotlib 1.1.0 13 | * PyWin32 216 14 | * Django 1.4 15 | * PIL 1.1.7 16 | * Py2Exe 0.6.9 17 | * wxPython 2.9.3.1 18 | * NetworkX 1.6 19 | * Lxml 2.3 20 | * PySerial 2.5 21 | * PyODBC 3.0.2 22 | * PyGame 1.9.1 23 | * PyGTK 2.24.2 24 | * PyQt 4.9.1-1 25 | 26 | Package file size (compressed): 90MB 27 | 28 | Installed size: based on selected packages, between 49MB and 480MB 29 | 30 | Warning: default installation installs all packages and this can be a long process especially if the target location is USB drive. Packages can be selected/deselected during the installation process. 31 | 32 | Package file hash: 33 | * MD5 - 10b27b73915020ce4d8e4a3447b31004 34 | * SHA1 - 2c557c4f9055dfa0a29eb9f40f5c00cb1fd3d4ce 35 | 36 | Download this package from our archives: 37 | 38 | | Country | Mirror | Type | 39 | |-------------|------------|----------| 40 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 41 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 42 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 43 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 44 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 45 | 46 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython2.7.3.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 2.7.3.2 - Download page" 4 | --- 5 | ## Portable Python 2.7.3.2 6 | 7 | This package contains following applications/libraries: 8 | 9 | * PyScripter v2.5.3 10 | * NymPy 1.6.2 11 | * SciPy 0.11.0 12 | * Matplotlib 1.1.1 13 | * PyWin32 218 14 | * Django 1.4.3 15 | * PIL 1.1.7 16 | * Py2Exe 0.6.9 17 | * wxPython 2.9.4.0 18 | * NetworkX 1.7 19 | * Lxml 2.3 20 | * PySerial 2.5 21 | * PyODBC 3.0.6 22 | * PyGame 1.9.1 23 | * PyGTK 2.24.2 24 | * PyQt 4.9.6-1 25 | 26 | Package file size (compressed): 97MB 27 | 28 | Installed size: based on selected packages, between 49MB and 505MB 29 | 30 | Warning: default installation installs all packages and this can be a long process especially if the target location is USB drive. Packages can be selected/deselected during the installation process. 31 | 32 | Package file hash: 33 | * MD5 - 9554e7647e9aed7244e29ce83116a0d8 34 | * SHA1 - 01981b866c5f17075646c0ee8a1cc7c5971e03cc 35 | 36 | Download this package from our archives: 37 | 38 | | Country | Mirror | Type | 39 | |-------------|------------|----------| 40 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 41 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 42 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 43 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 44 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 45 | 46 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython2.7.4.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 2.7.4.1 - Download page" 4 | --- 5 | ## Portable Python 2.7.4.1 6 | 7 | This package contains following applications/libraries: 8 | 9 | * PyScripter v2.5.3 10 | * NymPy 1.7.1 11 | * SciPy 0.12.0 12 | * Matplotlib 1.2.1 13 | * PyWin32 218 14 | * Django 1.5.1 15 | * PIL 1.1.7 16 | * Py2Exe 0.6.9 17 | * wxPython 2.9.4.0 18 | * NetworkX 1.7 19 | * Lxml 2.3 20 | * PySerial 2.5 21 | * PyODBC 3.0.6 22 | * PyGame 1.9.1 23 | * PyGTK 2.24.2 24 | * PyQt 4.10.1 25 | * IPython 0.13.1 26 | * Pandas 0.11.0 27 | 28 | Package file size (compressed): 107MB 29 | 30 | Installed size: based on selected packages, between 50MB and 545MB 31 | 32 | Warning: default installation installs all packages and this can be a long process especially if the target location is USB drive. Packages can be selected/deselected during the installation process. 33 | 34 | Package file hash: 35 | * MD5 - 768ccef1a719e9d4ac34bae0ca56884b 36 | * SHA1 - f3a13a041a68a2fd456e4bde0909a8cb4ee65d9c 37 | 38 | Download this package from our archives: 39 | 40 | | Country | Mirror | Type | 41 | |-------------|------------|----------| 42 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 43 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 44 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 45 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 46 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 47 | 48 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython2.7.5.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 2.7.5.1 - Download page" 4 | --- 5 | ## Portable Python 2.7.5.1 6 | 7 | This package contains following applications/libraries: 8 | 9 | * PyScripter v2.5.3 10 | * NymPy 1.7.1 11 | * SciPy 0.12.0 12 | * Matplotlib 1.2.1 13 | * PyWin32 218 14 | * Django 1.5.1 15 | * PIL 1.1.7 16 | * Py2Exe 0.6.9 17 | * wxPython 2.9.4.0 18 | * NetworkX 1.7 19 | * Lxml 2.3 20 | * PySerial 2.5 21 | * PyODBC 3.0.6 22 | * PyGame 1.9.1 23 | * PyGTK 2.24.2 24 | * PyQt 4.10.1 25 | * IPython 0.13.1 26 | * Pandas 0.11.0 27 | 28 | Package file size (compressed): 106MB 29 | 30 | Installed size: based on selected packages, between 50MB and 545MB 31 | 32 | Warning: default installation installs all packages and this can be a long process especially if the target location is USB drive. Packages can be selected/deselected during the installation process. 33 | 34 | Package file hash: 35 | * MD5 - 8e8f41cefa8fc2ce32b16638f3cc330e 36 | * SHA1 - deb49e5d9a82f192eaab1e6786156fc6a5368c03 37 | 38 | Download this package by using [torrent network](http://www.legittorrents.info/download.php?id=1b28525ef026b63d4fcd2e7e3292d0eb9ff51f38&f=Portable%20Python%202.7.5.1.torrent) or one of the mirrors: 39 | 40 | | Country | Mirror | Type | 41 | |-------------|------------|----------| 42 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/v2.7/PortablePython_2.7.5.1.exe) [FTP](ftp://ftp.belnet.be/mirror/PortablePython/v2.7/PortablePython_2.7.5.1.exe) | 43 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/v2.7/PortablePython_2.7.5.1.exe) [FTP](ftp://ftp.heanet.ie/pub/portablepython/v2.7/PortablePython_2.7.5.1.exe) | 44 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_2.7.5.1.exe) [FTP](ftp://ftp.nluug.nl/pub/languages/python/portablepython/v2.7/PortablePython_2.7.5.1.exe) | 45 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/v2.7/PortablePython_2.7.5.1.exe) [FTP](ftp://ftp.osuosl.org/pub/portablepython/v2.7/PortablePython_2.7.5.1.exe) | 46 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/v2.7/PortablePython_2.7.5.1.exe) | 47 | 48 | Back to the [download page]({{site.url}}/wiki/Download/). 49 | 50 | 51 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython2.7.6.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 2.7.6.1 - Download page" 4 | --- 5 | ## Portable Python 2.7.6.1 6 | 7 | This package contains following applications/libraries: 8 | 9 | * PyScripter v2.5.3 10 | * PyCharm Community Edition 3.1.2 (Thanks to [cebik](https://github.com/cebik)) 11 | * NumPy 1.8.1 12 | * SciPy 0.13.3 13 | * Matplotlib 1.3.1 14 | * PyWin32 218 15 | * Django 1.6.2 16 | * PIL 1.1.7 17 | * Py2Exe 0.6.9 18 | * wxPython 3.0.0.0 19 | * NetworkX 1.7 20 | * Lxml 3.3.4 21 | * PySerial 2.7 22 | * PyODBC 3.0.7 23 | * PyGame 1.9.1 24 | * PyGTK 2.24.2 25 | * PyQt 4.10.4 26 | * IPython 1.2.1 27 | * Pandas 0.11.0 28 | * Dateutil 2.2 29 | * PyParsing 2.0.1 30 | * Six 1.6.1 31 | * XLRD 0.9.2 32 | * XLWT 0.7.5 33 | * XLUtils 1.7.0 34 | * OpenPyXL 1.8.5 35 | 36 | 37 | Package file size (compressed): 237MB 38 | 39 | Installed size: based on selected packages, between 50MB and 850MB 40 | 41 | Warning: default installation installs all packages and this can be a long process especially if the target location is USB drive. Packages can be selected/deselected during the installation process. 42 | 43 | Package file hash: 44 | 45 | * MD5 - 5b480c1bbbc06b779a7d150c26f2147d 46 | * SHA1 - 10bfb41048cb2017af507be059c842403e00fd8d 47 | 48 | Download this package by using one of the mirrors: 49 | 50 | | Country | Mirror | Type | 51 | |-------------|------------|----------| 52 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/v2.7/PortablePython_2.7.6.1.exe) [FTP](ftp://ftp.belnet.be/mirror/PortablePython/v2.7/PortablePython_2.7.6.1.exe) | 53 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/v2.7/PortablePython_2.7.6.1.exe) [FTP](ftp://ftp.heanet.ie/pub/portablepython/v2.7/PortablePython_2.7.6.1.exe) | 54 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_2.7.6.1.exe) [FTP](ftp://ftp.nluug.nl/pub/languages/python/portablepython/v2.7/PortablePython_2.7.6.1.exe) | 55 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/v2.7/PortablePython_2.7.6.1.exe) [FTP](ftp://ftp.osuosl.org/pub/portablepython/v2.7/PortablePython_2.7.6.1.exe) | 56 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/v2.7/PortablePython_2.7.6.1.exe) | 57 | 58 | Back to the [download page]({{site.url}}/wiki/Download/). 59 | 60 | 61 | -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython3.2.0.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 3.2.0.1 - Download page" 4 | --- 5 | ## Portable Python 3.2.0.1 6 | 7 | This package contains following applications/libraries (alphabetical order): 8 | 9 | * PyScripter v2.4.1 10 | * NetworkX v1.4 11 | * RPyC-3.0.7 12 | 13 | Package file size (compressed): 17MB 14 | 15 | Installed size: based on selected packages, between 47MB and 63MB 16 | 17 | Package file hash: 18 | * MD5 - 47e7c1f2ffd73d26b52e73afec0f6a54 19 | * SHA1 - 0e2efe05db961dd737c4b7e3a72b9a05fbc566a2 20 | 21 | Download this package from our archives: 22 | 23 | | Country | Mirror | Type | 24 | |-------------|------------|----------| 25 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 26 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 27 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 28 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 29 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 30 | 31 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython3.2.1.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 3.2.1.1 - Download page" 4 | --- 5 | ## Portable Python 3.2.1.1 6 | 7 | This package contains following applications/libraries (alphabetical order): 8 | 9 | * NetworkX v1.4 10 | * PySerial 2.5 11 | * PyScripter v2.4.1 12 | * PyWin32 v.216 13 | * RPyC-3.0.7 14 | 15 | Package file size (compressed): 22MB 16 | 17 | Installed size: based on selected packages, between 47MB and 80MB 18 | 19 | Package file hash: 20 | * MD5 - da0932f84879acc29b8e909276e9b683 21 | * SHA1 - a594000285e8fe2d57a3c4bc344f6b4b66b88f70 22 | 23 | Download this package from our archives: 24 | 25 | | Country | Mirror | Type | 26 | |-------------|------------|----------| 27 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/)| 28 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/)| 29 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/)| 30 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/)| 31 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/)| 32 | 33 | Back to the [download page]({{site.url}}/wiki/Download/). -------------------------------------------------------------------------------- /wiki/_posts/2013-01-03-PortablePython3.2.5.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Portable Python 3.2.5.1 - Download page" 4 | --- 5 | ## Portable Python 3.2.5.1 6 | 7 | This package contains following applications/libraries (alphabetical order): 8 | 9 | * PyScripter v2.5.3 10 | * NymPy 1.7.1 11 | * SciPy 0.12.0 12 | * Matplotlib 1.2.1 13 | * PyWin32 218 14 | * NetworkX v1.7 15 | * Lxml 2.3 16 | * PySerial 2.5 17 | * PyODBC 3.0.2 18 | * PyQt 4.9.6-1 19 | * IPython 0.13.1 20 | * Pandas 0.11.0 21 | 22 | Package file size (compressed): 65MB 23 | 24 | Installed size: based on selected packages, between 63MB and 260MB 25 | 26 | Package file hash: 27 | * MD5 - 5ba055a057ce4fe1950a0f1f7ebae323 28 | * SHA1 - 5945656bb40e6e168af428e3bb1c9f14e2b8d199 29 | 30 | Download this package by using [torrent network](http://www.legittorrents.info/download.php?id=d4e46efacde003ca2f10264a275ad48899996e19&f=Portable%20Python%203.2.5.1.torrent) (recommended), or select one of the mirrors listed below: 31 | 32 | | Country | Mirror | Type | 33 | |-------------|------------|----------| 34 | | Belgium | [Belnet.be](http://www.belnet.be) | [HTTP](http://ftp.belnet.be/PortablePython/v3.2/PortablePython_3.2.5.1.exe) [FTP](ftp://ftp.belnet.be/mirror/PortablePython/v3.2/PortablePython_3.2.5.1.exe) | 35 | | Ireland | [HEAnet.ie](http://www.HEAnet.ie) | [HTTP](http://ftp.heanet.ie/pub/portablepython/v3.2/PortablePython_3.2.5.1.exe) [FTP](ftp://ftp.heanet.ie/pub/portablepython/v3.2/PortablePython_3.2.5.1.exe) | 36 | | Netherlands | [NLUUG.nl](http://www.NLUUG.nl) | [HTTP](http://ftp.nluug.nl/languages/python/portablepython/v3.2/PortablePython_3.2.5.1.exe) [FTP](ftp://ftp.nluug.nl/pub/languages/python/portablepython/v3.2/PortablePython_3.2.5.1.exe) | 37 | | USA | [Rowan.edu](http://www.Rowan.edu) | [HTTP](http://elvis.rowan.edu/mirrors/portablepython/v3.2/PortablePython_3.2.5.1.exe) | 38 | | USA | [OSUOSL.org](http://osuosl.org/) | [HTTP](http://ftp.osuosl.org/pub/portablepython/v3.2/PortablePython_3.2.5.1.exe) [FTP](ftp://ftp.osuosl.org/pub/portablepython/v3.2/PortablePython_3.2.5.1.exe) | 39 | 40 | Back to the [download page]({{site.url}}/wiki/Download/). --------------------------------------------------------------------------------