This commit is contained in:
Colin Davis 2011-07-05 21:09:08 -04:00
parent 19358e9c28
commit 711f88546c
71 changed files with 2745 additions and 4 deletions

430
static/css/main.css Normal file
View File

@ -0,0 +1,430 @@
@charset "UTF-8";
/* CSS Document */
@font-face {
font-family: 'MyriadProRegular';
src: url('myriadpro-regular-webfont.eot');
src: local('☺'), url('myriadpro-regular-webfont.woff') format('woff'), url('myriadpro-regular-webfont.ttf') format('truetype'), url('myriadpro-regular-webfont.svg#webfonto70rnzVV') format('svg');
font-weight: normal;
font-style: normal;
}
body {
background-image:url(../img/page_bground.jpg);
margin: 0px;
padding: 0px;
background-repeat:repeat-x;
}
p {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:16px;
color: #8d8e92;
text-shadow:#000000 -1px -1px 0px;
line-height: 18px;
padding-bottom: 15px;
}
.intro_text {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:18px;
color: #8d8e92;
text-shadow:#000000 -1px -1px 0px;
line-height: 22px;
}
h1 {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:40px;
color: #afb0b4;
text-shadow:#000000 -1px -1px 0px;
letter-spacing:-2px;
line-height: 50px;
text-transform:uppercase;
}
h2 {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:24px;
color: #afb0b4;
text-shadow:#000000 -1px -1px 0px;
letter-spacing:-2px;
text-transform:uppercase;
}
h3 {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:30px;
color: #afb0b4;
text-shadow:#000000 -1px -1px 0px;
line-height: 30px;
letter-spacing:-1px;
text-transform:uppercase;
}
div.hr hr { display: none;}
div.hr {
height: 30px;
background: url(../img/hr.png) no-repeat scroll center;
clear: both;
margin: 30px 0 40px 0;
}
.clear {
clear: both;
margin: 0 0 30px 0;
}
.section_title {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:30px;
color: #afb0b4;
text-shadow:#000000 -1px -1px 0px;
line-height: 40px;
letter-spacing:-1px;
text-transform:uppercase;
margin-bottom: 30px;
}
.footer_heading {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:24px;
color: #afb0b4;
text-shadow:#000000 1px 1px 0px;
letter-spacing:-.05em;
}
.large_quote {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:24px;
color: #afb0b4;
text-shadow:#000000 -1px -1px 0px;
line-height: 40px;
letter-spacing:-.05em;
}
.small_quote {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:14px;
color: #707174;
text-shadow:#000000 -1px -1px 0px;
letter-spacing:-.05em;
}
.benefit_header {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:24px;
color: #afb0b4;
text-shadow:#000000 -1px -1px 0px;
letter-spacing:-.05em;
}
#header_fullwidth {
margin: 0 auto;
background-image:url(../img/header_bground.jpg);
background-repeat:repeat-x;
width: 100%;
height: 223px;
}
#header {
width: 960px;
margin: 0 auto;
height: 223px;
}
#wrapper {
width: 960px;
margin: 0 auto;
}
#top_logo {
width: 960px;
margin: 0 auto;
text-align: center;
padding-top: 30px;
}
a img {
border: none;
}
img {
border: none;
}
img.left {
float: left;
}
img.right {
float: right;
}
.content_section {
width: 960px;
text-align: left;
clear: both;
padding-top: 6r0px;
}
.content_section ul.gallery li {
display: inline;
margin: 0 34px 0 0;
}
.intro_section {
width: 960px;
text-align: center;
clear: both;
padding-top: 30px;
}
.quotes_wrapper {
margin: 0 auto;
clear: both;
background-image:url(../img/quote_bground.jpg);
background-repeat:no-repeat;
width: 960px;
height: 130px;
padding-top: 20px;
}
.left_quote {
width: 480px;
float: left;
text-align:center;
}
.right_quote {
width: 480px;
float: right;
text-align:center;
}
.left_content {
width: 480px;
float: left;
text-align:left;
}
.benefit {
float: left;
width: 480px;
margin-top: 30px;
}
.benefit_right {
float: right;
width: 390px;
}
.content_section ul.social li {
display: inline;
margin: 0 15px 0 0;
padding:2px 0 0 0;
}
.social {
padding:20px 0 20px 0;
}
.social img, img.a {
padding:2px 0 0 0;
}
.social a:hover {
filter: gray;
}
.right_content {
width: 480px;
float: right;
text-align:left;
}
.right_content ul.gallery li {
display: inline;
margin: 0 9px 0 0;
}
#gallery {
padding:20px 0 20px 0;
}
#gallery img, img.a {
padding:2px 0 0 0;
}
ul {
margin:0;
padding: 0;
list-style:none;
list-style-position: inside;
line-height: 1.8em;
list-style-type:disc;
}
li {
padding: 0 0 0 0;
margin:0;
font-family:Helvetica, sans-serif;
font-size:12px;
}
.tiny {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:10px;
color: #8f8f8f;
}
#footer_wrapper {
clear: both;
background-image:url(../img/footer_bground.jpg);
background-repeat:repeat-x;
min-height:224px;
margin-top: 0 auto;
}
#footer_container {
margin: 0 auto;
width: 960px;
}
#footer_left {
float: left;
width: 400px;
margin-top: 100px;
}
#footer_right {
float: right;
width: 500px;
margin-top: 80px;
text-align:right;
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:11px;
color: #737373;
}
#footer_bottom {
margin: 0 auto;
width: 960px;
}
.follow a {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:11px;
color: #c1c1c1;
font-style:italic;
text-decoration:none;
}
.copyright {
float:left;
clear: both;
width: 520px;
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:11px;
color: #737373;
}
.copyright a {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:11px;
color: #737373;
text-decoration:underline;
}
.bottom_logo {
float:right;
width: 300px;
text-align: right;
}
/***********************************************************************************************************************
STYLES FOR TWITTER FEED
************************************************************************************************************************/
.tweet, .query {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:12px;
color:#333333;
line-height:1.5em; }
.tweet .tweet_list, .query .tweet_list {
list-style-type: none;
}
.tweet .tweet_list .awesome, .tweet .tweet_list .epic, .query .tweet_list .awesome, .query .tweet_list .epic {
text-transform: uppercase; }
.tweet .tweet_list li, .query .tweet_list li {
overflow-y: auto;
overflow-x: hidden;
padding: 0;
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:12px;
color:#737373;
list-style:none;
margin-bottom:10px;
padding-top:10px;
padding-bottom:10px;}
.tweet .tweet_list li a, .query .tweet_list li a {
color: #c1c1c1; }
.tweet .tweet_list .tweet_avatar, .query .tweet_list .tweet_avatar {
padding-right: .5em;
float: left; }
.tweet .tweet_list .tweet_avatar img, .query .tweet_list .tweet_avatar img {
vertical-align: middle;
padding:0 10px 0 0;}
.tweet .tweet_first {
padding: 0;}
.tweet-button_container {
margin-bottom: 20px;}
/***********************************************************************************************************************
STYLES FOR Tipsy Rollovers
************************************************************************************************************************/
.tipsy { padding: 5px; font-size: 11px; opacity: 1.0; filter: alpha(opacity=100); background-repeat: no-repeat; background-image: url(../img/tipsy.gif); margin-top: 10px; color:#1F242F; font-family: Helvetica, Arial, sans-serif; }
.tipsy-inner { padding: 5px 8px 4px 8px; background-color: #0969a6; color: white; max-width: 500px; text-align: center; }
.tipsy-inner { -moz-border-radius:3px; -webkit-border-radius:3px; }
.tipsy-north { background-position: top center; }
.tipsy-south { background-position: bottom center;}
.tipsy-east { background-position: right center; }
.tipsy-west { background-position: left center; }
.pp_nav p {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:20px;
color: #8d8e92;
letter-spacing:-.05em;
margin:10px 0 5px 15px;
z-index:9999;
text-shadow: none;
}
.pp_description {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:20px;
color: #8d8e92;
letter-spacing:-.05em;
margin:10px 0 5px 15px;
z-index:9999;
text-shadow: none;
}

Binary file not shown.

View File

@ -0,0 +1,240 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG webfont generated by Font Squirrel.
Designer : Robert Slimbach and Carol Twombly
Foundry URL : http://www.adobe.com/type
</metadata>
<defs>
<font id="webfonto70rnzVV" horiz-adv-x="513" >
<font-face units-per-em="1000" ascent="750" descent="-250" />
<missing-glyph horiz-adv-x="212" />
<glyph unicode=" " horiz-adv-x="212" />
<glyph unicode="&#x09;" horiz-adv-x="212" />
<glyph unicode="&#xa0;" horiz-adv-x="212" />
<glyph unicode="!" horiz-adv-x="230" d="M149 193h-68l-14 481h96zM114 -11q-25 0 -41.5 18t-16.5 44q0 27 17 44.5t43 17.5t42 -17.5t16 -44.5t-16.5 -44.5t-43.5 -17.5z" />
<glyph unicode="&#x22;" horiz-adv-x="337" d="M51 692h87l-17 -240h-54zM200 692h87l-17 -240h-53z" />
<glyph unicode="#" horiz-adv-x="497" d="M188 255h104l19 145h-104zM154 0h-60l26 196h-83v59h92l19 145h-87v59h95l26 191h59l-26 -191h105l25 191h59l-25 -191h82v-59h-91l-18 -145h86v-59h-95l-26 -196h-60l26 196h-104z" />
<glyph unicode="$" d="M281 -85h-63v100q-93 2 -152 44l24 67q65 -43 143 -43q53 0 86 27.5t33 70.5q0 40 -27.5 68t-85.5 51q-83 32 -124 72t-41 102t41 106t109 55v100h63v-97q73 -2 130 -35l-25 -66q-61 35 -126 35q-53 0 -79.5 -26t-26.5 -61q0 -37 27.5 -61t96.5 -53q80 -33 117.5 -75 t37.5 -107q0 -63 -42 -110.5t-116 -59.5v-104z" />
<glyph unicode="%" horiz-adv-x="792" d="M188 661q68 0 108.5 -51t40.5 -142q0 -98 -44 -151.5t-111 -53.5q-65 0 -108 51t-44 144q0 95 45 149t113 54zM183 608q-39 0 -61.5 -41.5t-22.5 -104.5q-2 -64 21.5 -105t63.5 -41q42 0 63 40t21 107q0 65 -20.5 105t-64.5 40zM231 -12h-56l383 674h56zM612 392 q68 0 108.5 -51t40.5 -143q0 -98 -44 -151.5t-111 -53.5q-65 0 -108 51t-44 145q0 95 45 149t113 54zM607 339q-39 0 -61.5 -41.5t-22.5 -105.5q-2 -64 21.5 -105t63.5 -41q42 0 63 40t21 108q0 65 -20.5 105t-64.5 40z" />
<glyph unicode="&#x26;" horiz-adv-x="605" d="M602 0h-104l-63 65q-83 -76 -197 -76q-95 0 -151 55t-56 134q0 125 132 197v3q-56 70 -56 141q0 67 45.5 117t125.5 50q64 0 106.5 -39t42.5 -104q0 -54 -34.5 -97.5t-113.5 -82.5v-4l164 -187q45 69 65 197h80q-29 -168 -97 -249zM254 55q82 0 138 61l-190 213 q-87 -56 -87 -138q0 -58 39 -97t100 -39zM271 626q-39 0 -61.5 -28.5t-22.5 -69.5q0 -56 51 -122q57 33 84.5 62.5t27.5 70.5q0 35 -20 61t-59 26z" />
<glyph unicode="'" horiz-adv-x="188" d="M51 692h87l-17 -240h-54z" />
<glyph unicode="(" horiz-adv-x="284" d="M195 694h68q-125 -170 -125 -410q0 -226 125 -405h-68q-131 173 -131 406q1 236 131 409z" />
<glyph unicode=")" horiz-adv-x="284" d="M88 -121h-68q125 177 125 408t-125 407h68q131 -171 131 -407q-1 -235 -131 -408z" />
<glyph unicode="*" horiz-adv-x="415" d="M269 686l60 -35l-95 -125v-2l151 20v-68l-151 19v-3l96 -120l-63 -36l-61 140h-2l-64 -141l-57 36l95 122v3l-148 -20v68l147 -19v2l-94 123l61 35l62 -140h2z" />
<glyph unicode="+" horiz-adv-x="596" d="M266 532h64v-235h226v-60h-226v-237h-64v237h-226v60h226v235z" />
<glyph unicode="," horiz-adv-x="207" d="M78 -117l-62 -7q40 110 60 240l98 10q-18 -64 -46.5 -136t-49.5 -107z" />
<glyph unicode="-" horiz-adv-x="307" d="M30 302h247v-64h-247v64z" />
<glyph unicode="." horiz-adv-x="207" d="M110 -11q-25 0 -41.5 18t-16.5 45t17 45t43 18t42.5 -17.5t16.5 -45.5q0 -27 -17 -45t-44 -18z" />
<glyph unicode="/" horiz-adv-x="343" d="M66 -39h-67l278 725h69z" />
<glyph unicode="0" d="M263 661q102 0 158.5 -87t56.5 -242q0 -165 -59 -254t-167 -89q-97 0 -156 88t-60 246q0 160 62.5 249t164.5 89zM257 593q-59 0 -95.5 -71t-36.5 -200q0 -125 35.5 -195t96.5 -70q65 0 98.5 71.5t33.5 199.5q0 125 -32.5 195t-99.5 70z" />
<glyph unicode="1" d="M236 0v568h-2l-113 -61l-17 67l142 76h75v-650h-85z" />
<glyph unicode="2" d="M460 0h-415v54l69 67q136 129 189 200t53 140q0 56 -30 91.5t-98 35.5q-72 0 -138 -55l-28 62q78 66 183 66q98 0 148.5 -56t50.5 -133q0 -83 -53 -159.5t-171 -189.5l-51 -48v-2h291v-73z" />
<glyph unicode="3" d="M42 33l24 67q67 -40 144 -40t112.5 38.5t34.5 87.5q-1 64 -49.5 97t-118.5 33h-49v66h49q55 0 100 28.5t45 81.5q0 42 -28.5 70t-85.5 28q-70 0 -130 -43l-24 64q70 50 171 50q90 0 138 -45t48 -110q0 -52 -31 -92.5t-89 -61.5v-2q63 -12 103.5 -56t41.5 -110 q0 -82 -63 -138.5t-174 -56.5q-102 0 -169 44z" />
<glyph unicode="4" d="M400 0h-83v178h-302v57l290 415h95v-404h91v-68h-91v-178zM104 246h213v217q0 51 3 102h-3q-26 -49 -54 -96l-159 -221v-2z" />
<glyph unicode="5" d="M433 650v-74h-248l-25 -167q22 3 53 3q84 0 140 -35q41 -23 67 -65.5t26 -100.5q0 -96 -68.5 -159t-173.5 -63q-98 0 -162 40l22 67q61 -36 140 -36q64 0 109 39t44 102q0 66 -46.5 104.5t-139.5 38.5q-43 0 -91 -6l42 312h311z" />
<glyph unicode="6" d="M416 660v-72q-26 1 -66 -5q-99 -16 -156.5 -79.5t-69.5 -150.5h2q56 76 158 76q87 0 141.5 -58t54.5 -152t-59.5 -162t-157.5 -68q-104 0 -166.5 75.5t-62.5 201.5q0 185 110 293q82 81 208 96q32 5 64 5zM265 57q56 0 91 43t35 113q0 69 -36.5 109t-97.5 40 q-40 0 -74.5 -22t-52.5 -58q-9 -18 -9 -38q1 -83 38.5 -135t105.5 -52z" />
<glyph unicode="7" d="M57 650h410v-58l-283 -592h-91l282 575v2h-318v73z" />
<glyph unicode="8" d="M166 339l-1 3q-52 24 -78 63t-26 83q0 76 57.5 124.5t144.5 48.5q90 0 140 -47t50 -113q0 -102 -108 -152v-3q131 -52 131 -168q0 -84 -63 -136.5t-158 -52.5q-99 0 -158.5 50.5t-59.5 124.5q0 120 129 175zM257 53q59 0 94.5 32.5t35.5 83.5q0 56 -36.5 89t-106.5 53 q-56 -16 -86.5 -52t-30.5 -83q-2 -51 34 -87t96 -36zM258 598q-53 0 -83 -30t-30 -74q-1 -46 31.5 -75t92.5 -45q45 15 72 45.5t27 72.5q0 44 -27.5 75t-82.5 31z" />
<glyph unicode="9" d="M96 -10v72q20 -2 71 3q83 11 136 63q69 62 86 172h-3q-56 -69 -154 -69q-85 0 -138 57t-53 142q0 95 62.5 163t159.5 68q99 0 157 -74.5t58 -200.5q0 -196 -112 -304q-76 -74 -189 -87q-43 -7 -81 -5zM255 594q-56 0 -91.5 -44.5t-35.5 -114.5q0 -61 34 -99.5t91 -38.5 q43 0 76.5 18.5t51.5 49.5q8 14 8 33q0 88 -33.5 142t-100.5 54z" />
<glyph unicode=":" horiz-adv-x="207" d="M111 342q-25 0 -41.5 18t-16.5 44q0 28 16.5 45.5t42.5 17.5q27 0 43 -17.5t16 -45.5q0 -27 -16.5 -44.5t-43.5 -17.5zM111 -11q-25 0 -41.5 18t-16.5 44q0 28 16.5 45.5t42.5 17.5q27 0 43 -17.5t16 -45.5q0 -27 -16.5 -44.5t-43.5 -17.5z" />
<glyph unicode=";" horiz-adv-x="207" d="M78 -116l-61 -7q41 112 60 240l97 10q-18 -64 -46.5 -135.5t-49.5 -107.5zM118 342q-25 0 -41.5 18t-16.5 44q0 28 16.5 45.5t42.5 17.5q27 0 43 -17.5t16 -45.5q0 -27 -16.5 -44.5t-43.5 -17.5z" />
<glyph unicode="&#x3c;" horiz-adv-x="596" d="M66 239v54l464 239v-69l-391 -196v-2l391 -196v-69z" />
<glyph unicode="=" horiz-adv-x="596" d="M556 337h-516v60h516v-60zM556 141h-516v60h516v-60z" />
<glyph unicode="&#x3e;" horiz-adv-x="596" d="M530 295v-57l-464 -238v69l394 196v2l-394 196v69z" />
<glyph unicode="?" horiz-adv-x="406" d="M220 192h-79l-2 26q-10 87 62 173q70 82 70 137q0 39 -24.5 62t-70.5 24q-60 0 -101 -31l-24 63q57 40 143 40q81 0 124 -42.5t43 -104.5q0 -46 -21 -84t-65 -90q-61 -73 -57 -148zM178 -11q-25 0 -41.5 18t-16.5 44q0 28 16.5 45.5t42.5 17.5q27 0 43 -17.5t16 -45.5 q0 -27 -16.5 -44.5t-43.5 -17.5z" />
<glyph unicode="@" horiz-adv-x="737" d="M448 255l21 112q-20 8 -50 8q-66 0 -112.5 -53.5t-46.5 -126.5q0 -34 17 -55t49 -21q41 0 77 43t45 93zM508 -22l16 -43q-76 -40 -178 -40q-127 0 -215 86t-88 227q0 160 101.5 272.5t263.5 112.5q129 0 209.5 -81.5t80.5 -208.5q0 -108 -52 -173t-125 -65 q-33 0 -54.5 22t-20.5 66h-3q-52 -88 -141 -88q-45 0 -76.5 34.5t-31.5 91.5q0 96 67.5 166.5t169.5 70.5q61 0 107 -21l-34 -181q-22 -110 30 -112q41 -2 74.5 49t33.5 133q0 112 -64 181.5t-178 69.5q-126 0 -213 -92.5t-87 -240.5q0 -123 72 -197t185 -74q89 0 151 35z " />
<glyph unicode="A" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122z" />
<glyph unicode="B" horiz-adv-x="542" d="M76 2v662q63 15 159 15q125 0 184 -49q57 -42 57 -119q0 -49 -30.5 -89t-83.5 -59v-3q56 -13 97.5 -56t41.5 -112q0 -82 -58 -135q-67 -63 -232 -63q-77 0 -135 8zM163 606v-218h79q67 0 106 32t39 82q0 110 -147 110q-49 0 -77 -6zM163 323v-257q24 -4 73 -4 q75 0 124 31.5t49 99.5q0 65 -49 97.5t-125 32.5h-72z" />
<glyph unicode="C" horiz-adv-x="580" d="M529 91l17 -70q-62 -32 -178 -32q-147 0 -239.5 90t-92.5 252q0 159 97.5 256.5t254.5 97.5q102 0 160 -30l-22 -71q-56 28 -135 28q-120 0 -191.5 -73.5t-71.5 -204.5q0 -125 68.5 -198t189.5 -73q85 0 143 28z" />
<glyph unicode="D" horiz-adv-x="666" d="M76 2v662q88 15 185 15q181 0 273 -84q96 -87 96 -242q0 -165 -97 -262q-99 -97 -299 -97q-88 0 -158 8zM163 601v-533q29 -4 88 -4q139 0 213 74.5t74 211.5q1 122 -68.5 191t-204.5 69q-61 0 -102 -9z" />
<glyph unicode="E" horiz-adv-x="492" d="M424 388v-72h-261v-243h292v-73h-380v674h365v-73h-277v-213h261z" />
<glyph unicode="F" horiz-adv-x="487" d="M75 0v674h363v-73h-275v-224h254v-72h-254v-305h-88z" />
<glyph unicode="G" horiz-adv-x="646" d="M590 354v-324q-96 -37 -208 -37q-159 0 -252 89q-94 91 -94 251q0 153 99 250.5t266 97.5q105 0 169 -31l-22 -71q-61 29 -149 29q-124 0 -197.5 -72.5t-73.5 -198.5q0 -127 70.5 -199.5t189.5 -72.5q80 0 116 18v201h-136v70h222z" />
<glyph unicode="H" horiz-adv-x="652" d="M75 674h88v-282h326v282h88v-674h-88v316h-326v-316h-88v674z" />
<glyph unicode="I" horiz-adv-x="239" d="M75 674h88v-674h-88v674z" />
<glyph unicode="J" horiz-adv-x="370" d="M213 230v444h88v-451q0 -234 -204 -234q-56 0 -93 16l12 71q33 -13 74 -13q62 0 92.5 36.5t30.5 130.5z" />
<glyph unicode="K" horiz-adv-x="542" d="M76 0v674h87v-325h3q23 33 53 72l206 253h108l-244 -286l263 -388h-103l-221 331l-65 -74v-257h-87z" />
<glyph unicode="L" horiz-adv-x="472" d="M75 0v674h88v-601h288v-73h-376z" />
<glyph unicode="M" horiz-adv-x="804" d="M660 0l-16 296q-11 207 -11 291h-2q-46 -148 -85 -256l-119 -327h-66l-110 321q-51 154 -77 262h-2q-3 -129 -13 -298l-18 -289h-83l47 674h111l115 -326q40 -120 68 -227h2q24 92 72 227l120 326h111l42 -674h-86z" />
<glyph unicode="N" horiz-adv-x="658" d="M158 0h-82v674h96l215 -341q78 -126 120 -219l3 1q-10 113 -10 277v282h82v-674h-88l-214 342q-84 133 -125 225l-3 -1q6 -102 6 -278v-288z" />
<glyph unicode="O" horiz-adv-x="689" d="M348 686q138 0 221 -95t83 -247q0 -167 -89 -261t-224 -94q-134 0 -218.5 95t-84.5 248q0 159 87.5 256.5t224.5 97.5zM345 615q-103 0 -160 -81.5t-57 -199.5q0 -114 58.5 -194t157.5 -80q100 0 158 80t58 200q0 111 -56.5 193t-158.5 82z" />
<glyph unicode="P" horiz-adv-x="532" d="M76 0v666q78 13 167 13q127 0 189 -56q59 -52 59 -141q0 -90 -52 -144q-71 -74 -206 -74q-46 0 -70 6v-270h-87zM163 603v-262q27 -7 72 -7q79 0 124 37.5t45 105.5q0 66 -42.5 99.5t-116.5 33.5q-56 0 -82 -7z" />
<glyph unicode="Q" horiz-adv-x="689" d="M657 -26l-25 -73q-137 36 -258 78q-30 10 -41 10q-127 5 -212 95t-85 247q0 160 87.5 257.5t225.5 97.5q137 0 220 -95t83 -246q0 -126 -52 -209.5t-140 -114.5v-4q108 -27 197 -43zM344 60q100 0 158 80t58 200q0 111 -56 193t-157 82q-70 0 -121 -40.5t-74.5 -103.5 t-23.5 -138q0 -114 58.5 -193.5t157.5 -79.5z" />
<glyph unicode="R" horiz-adv-x="538" d="M76 0v665q77 14 167 14q134 0 195 -55q53 -48 53 -129q0 -63 -35 -107.5t-91 -63.5v-3q73 -26 98 -136q37 -156 52 -185h-90q-16 28 -44 161q-15 70 -46 99.5t-90 31.5h-82v-292h-87zM163 604v-246h89q69 0 110.5 35t41.5 93q0 63 -41.5 94t-113.5 31q-60 0 -86 -7z" />
<glyph unicode="S" horiz-adv-x="493" d="M42 33l23 73q69 -44 155 -44q66 0 103.5 31.5t37.5 83.5q0 46 -29.5 76.5t-97.5 56.5q-178 65 -178 192q0 80 60.5 131.5t157.5 51.5q92 0 148 -33l-24 -71q-52 32 -127 32q-63 0 -95 -30.5t-32 -70.5q0 -46 30.5 -74t103.5 -56q88 -34 129.5 -80t41.5 -118 q0 -83 -60.5 -139t-174.5 -56q-48 0 -96 12.5t-76 31.5z" />
<glyph unicode="T" horiz-adv-x="497" d="M204 0v600h-205v74h499v-74h-206v-600h-88z" />
<glyph unicode="U" horiz-adv-x="647" d="M75 674h88v-400q0 -108 43 -161t114 -53q77 0 120.5 53t43.5 161v400h88v-394q0 -148 -69.5 -219.5t-185.5 -71.5q-111 0 -176.5 69.5t-65.5 218.5v397z" />
<glyph unicode="V" horiz-adv-x="558" d="M320 0h-96l-221 674h95l105 -332q52 -170 72 -252h2q26 105 77 251l114 333h93z" />
<glyph unicode="W" horiz-adv-x="846" d="M277 0h-91l-171 674h92l80 -341q31 -131 50 -233h2q11 68 55 234l90 340h91l82 -342q36 -150 47 -231h2q13 70 54 233l89 340h89l-191 -674h-91l-85 351q-32 133 -44 220h-2q-15 -91 -52 -220z" />
<glyph unicode="X" horiz-adv-x="571" d="M546 0h-101l-87 149q-44 71 -77 133h-2q-23 -47 -73 -134l-81 -148h-100l206 341l-198 333h101l89 -158q42 -73 62 -114h3q24 50 61 114l91 158h101l-205 -328z" />
<glyph unicode="Y" horiz-adv-x="541" d="M314 0h-88v286l-214 388h100l95 -186l67 -139h2q12 28 68 139l97 186h98l-225 -387v-287z" />
<glyph unicode="Z" horiz-adv-x="553" d="M30 0v51l373 547v3h-341v73h455v-53l-372 -545v-3h377v-73h-492z" />
<glyph unicode="[" horiz-adv-x="284" d="M264 -112h-183v798h183v-55h-114v-688h114v-55z" />
<glyph unicode="\" horiz-adv-x="341" d="M342 -39h-68l-272 725h68z" />
<glyph unicode="]" horiz-adv-x="284" d="M20 686h183v-798h-183v55h114v688h-114v55z" />
<glyph unicode="^" horiz-adv-x="596" d="M536 189h-70l-167 388h-2l-167 -388h-69l206 461h63z" />
<glyph unicode="_" horiz-adv-x="500" d="M0 -75h500v-50h-500v50z" />
<glyph unicode="`" horiz-adv-x="300" d="M22 693h96l88 -143h-62z" />
<glyph unicode="a" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28z" />
<glyph unicode="b" horiz-adv-x="569" d="M73 125v585h87v-304h2q51 88 165 88q91 0 148 -68.5t57 -177.5q0 -122 -65 -190.5t-153 -68.5q-110 0 -163 90h-2l-5 -79h-75q4 66 4 125zM160 280v-86q0 -19 4 -32q12 -46 48 -74.5t84 -28.5q69 0 108 51t39 135q0 77 -38.5 128.5t-106.5 51.5q-45 0 -82.5 -29.5 t-50.5 -78.5q-5 -18 -5 -37z" />
<glyph unicode="c" horiz-adv-x="448" d="M403 83l15 -66q-59 -28 -139 -28q-109 0 -175 68t-66 179q0 113 71.5 185.5t188.5 72.5q74 0 122 -26l-20 -67q-44 23 -102 23q-80 0 -125.5 -52.5t-45.5 -130.5q0 -83 47.5 -132t120.5 -49q56 0 108 23z" />
<glyph unicode="d" horiz-adv-x="564" d="M403 710h87v-585q0 -59 4 -125h-78l-4 84h-3q-20 -42 -63 -68.5t-100 -26.5q-89 0 -148.5 68.5t-59.5 177.5q-1 117 62.5 188t154.5 71q53 0 90.5 -21t55.5 -52h2v289zM403 203v84q0 22 -4 37q-10 43 -44.5 72t-82.5 29q-67 0 -106 -52.5t-39 -133.5q0 -77 37.5 -128 t105.5 -51q45 0 81 28.5t48 76.5q4 16 4 38z" />
<glyph unicode="e" horiz-adv-x="501" d="M462 226h-340q1 -85 47.5 -126.5t118.5 -41.5q77 0 134 25l16 -63q-69 -31 -162 -31q-110 0 -174 67t-64 178q0 112 62 186t165 74q56 0 97.5 -22.5t62.5 -58.5t30.5 -72.5t9.5 -73.5q0 -26 -3 -41zM123 289h257q1 53 -27.5 97.5t-94.5 44.5q-61 0 -95 -43.5t-40 -98.5z " />
<glyph unicode="f" horiz-adv-x="292" d="M169 0h-87v417h-67v67h67v23q0 114 56 169q46 45 118 45q41 0 75 -14l-12 -68q-24 11 -56 11q-94 0 -94 -140v-26h117v-67h-117v-417z" />
<glyph unicode="g" horiz-adv-x="559" d="M487 352v-281q0 -157 -69 -222q-65 -58 -177 -58q-101 0 -161 40l22 68q59 -39 142 -39q72 0 114 41t42 129v53h-2q-21 -36 -60.5 -58.5t-93.5 -22.5q-89 0 -147.5 67.5t-58.5 168.5q0 117 65 186.5t154 69.5q105 0 151 -83h2l3 73h78q-4 -45 -4 -132zM399 206v87 q0 25 -5 39q-13 41 -44.5 67.5t-78.5 26.5q-64 0 -104 -50t-40 -133q0 -75 37.5 -124.5t105.5 -49.5q42 0 75.5 24t46.5 66q7 21 7 47z" />
<glyph unicode="h" horiz-adv-x="555" d="M73 0v710h88v-303h2q23 41 63 63q42 24 90 24q21 0 42.5 -5.5t45 -19.5t41 -36.5t29 -59.5t11.5 -85v-288h-88v278q0 64 -27 103.5t-85 39.5q-41 0 -73 -25t-45 -62q-6 -16 -6 -42v-292h-88z" />
<glyph unicode="i" horiz-adv-x="234" d="M161 0h-88v484h88v-484zM117 675q24 0 39 -15.5t15 -39.5q0 -23 -15 -38.5t-41 -15.5q-24 0 -38.5 15.5t-14.5 38.5t15.5 39t39.5 16z" />
<glyph unicode="j" horiz-adv-x="243" d="M-36 -211l-10 69q67 5 96 38q19 21 26.5 59t7.5 122v407h88v-441q0 -140 -58 -199q-27 -27 -69 -41t-81 -14zM128 675q24 0 39 -16t15 -39t-15 -38.5t-41 -15.5q-23 0 -38 16t-15 38q0 23 15.5 39t39.5 16z" />
<glyph unicode="k" horiz-adv-x="469" d="M160 710v-448h2q20 28 42 55l143 167h105l-186 -199l213 -285h-108l-166 232l-45 -50v-182h-87v710h87z" />
<glyph unicode="l" horiz-adv-x="236" d="M73 0v710h88v-710h-88z" />
<glyph unicode="m" horiz-adv-x="834" d="M73 0v353q0 51 -4 131h77l4 -79h3q52 89 153 89q48 0 84 -26.5t52 -70.5h2q19 36 55 63q45 34 106 34q27 0 53 -9.5t51 -31.5t40.5 -65.5t15.5 -103.5v-284h-86v273q0 71 -26.5 110t-78.5 39q-36 0 -64 -22.5t-41 -56.5q-7 -23 -7 -44v-299h-86v290q0 60 -26 96t-75 36 q-38 0 -68 -26t-41 -62q-7 -17 -7 -43v-291h-86z" />
<glyph unicode="n" horiz-adv-x="555" d="M73 0v353q0 78 -4 131h78l5 -80h2q20 38 62 64t98 26q28 0 55.5 -9.5t54.5 -31t44 -64t17 -101.5v-288h-88v279q0 64 -27 103.5t-85 39.5q-41 0 -73 -26t-45 -64q-6 -16 -6 -41v-291h-88z" />
<glyph unicode="o" horiz-adv-x="549" d="M278 494q104 0 168.5 -69t64.5 -179q0 -125 -72 -191t-169 -66q-100 0 -166 68.5t-66 180.5q0 117 68.5 186.5t171.5 69.5zM276 428q-72 0 -110 -55.5t-38 -131.5q0 -80 41 -133t105 -53q63 0 105 53.5t42 134.5q0 71 -36.5 128t-108.5 57z" />
<glyph unicode="p" horiz-adv-x="569" d="M73 -198v524q0 66 -4 158h78l5 -83h2q55 93 172 93q89 0 147.5 -68t58.5 -177q0 -124 -64.5 -192t-156.5 -68q-48 0 -87.5 20t-61.5 56h-2v-263h-87zM160 281v-84q0 -21 4 -36q12 -46 48.5 -74.5t83.5 -28.5q69 0 108 51t39 136q0 76 -38.5 127.5t-105.5 51.5 q-46 0 -83.5 -29.5t-49.5 -78.5q-6 -22 -6 -35z" />
<glyph unicode="q" horiz-adv-x="563" d="M403 -198v272h-2q-49 -85 -158 -85q-87 0 -146 68t-59 176q0 127 66.5 194t152.5 67q53 0 91.5 -23t57.5 -60h2l3 73h83q-4 -80 -4 -133v-549h-87zM403 197v91q0 21 -4 36q-11 43 -45 71.5t-81 28.5q-67 0 -106.5 -51.5t-39.5 -133.5q0 -77 37 -128.5t106 -51.5 q43 0 77 25t49 70q7 23 7 43z" />
<glyph unicode="r" horiz-adv-x="327" d="M73 0v333q0 91 -4 151h77l4 -96h3q16 48 53 77t82 29q8 0 24 -2v-83q-9 2 -30 2q-46 0 -77.5 -31t-40.5 -81q-3 -18 -3 -41v-258h-88z" />
<glyph unicode="s" horiz-adv-x="396" d="M40 23l21 66q57 -34 117 -34q45 0 69 20t24 52q0 31 -20 50.5t-69 37.5q-129 47 -129 137q0 60 46 101t121 41q72 0 118 -30l-21 -64q-46 29 -99 29q-38 0 -59 -19t-21 -47q0 -29 20.5 -46t70.5 -37q64 -24 95.5 -58.5t31.5 -86.5q0 -66 -48 -106t-132 -40q-78 0 -136 34 z" />
<glyph unicode="t" horiz-adv-x="331" d="M93 574l86 26v-116h126v-67h-126v-261q0 -94 66 -94q31 0 51 6l4 -67q-34 -12 -78 -12q-61 0 -95 37q-34 38 -34 127v264h-75v67h75v90z" />
<glyph unicode="u" horiz-adv-x="551" d="M478 484v-351q0 -82 4 -133h-78l-5 79h-2q-20 -36 -61 -63t-99 -27q-31 0 -58.5 10t-53 32.5t-40.5 66t-15 103.5v283h88v-267q0 -155 108 -155q41 0 72 24t44 57q8 19 8 45v296h88z" />
<glyph unicode="v" horiz-adv-x="481" d="M13 484h94l95 -271q26 -73 39 -125h3q12 43 41 125l94 271h92l-190 -484h-84z" />
<glyph unicode="w" horiz-adv-x="736" d="M18 484h90l65 -246q29 -120 35 -154h3q11 49 43 153l79 247h74l75 -242q27 -88 43 -158h3q10 60 37 157l69 243h87l-156 -484h-80l-74 231q-29 91 -43 159h-2q-14 -69 -44 -160l-78 -230h-80z" />
<glyph unicode="x" horiz-adv-x="463" d="M16 484h98l69 -104q24 -34 50 -78h2q18 32 49 79l67 103h96l-165 -234l169 -250h-99l-72 109q-20 30 -52 84h-2q-22 -39 -51 -84l-70 -109h-97l172 247z" />
<glyph unicode="y" horiz-adv-x="471" d="M9 484h96l105 -286q18 -47 32 -99h2q1 3 12.5 41.5t18.5 59.5l96 284h93l-132 -345q-49 -128 -85.5 -196t-80.5 -107q-55 -46 -108 -56l-22 73q42 13 77 43q45 35 74 98q7 16 7 21q0 8 -7 23z" />
<glyph unicode="z" horiz-adv-x="428" d="M18 0v51l218 285l64 76v2h-262v70h368v-55l-216 -281q-43 -55 -62 -76v-2h282v-70h-392z" />
<glyph unicode="{" horiz-adv-x="284" d="M28 263v51q47 0 63.5 20.5t17.5 53.5q0 29 -8 83q-8 58 -8 84q0 66 39.5 98.5t106.5 32.5h20v-55h-17q-80 -1 -80 -86q0 -15 7 -71q8 -50 8 -76q1 -88 -73 -108v-2q73 -19 73 -109q0 -27 -8 -77q-7 -56 -7 -72q0 -86 80 -87h17v-55h-21q-145 0 -145 137q0 33 9 82 q7 65 7 81q0 75 -81 75z" />
<glyph unicode="|" horiz-adv-x="239" d="M86 750h67v-1000h-67v1000z" />
<glyph unicode="}" horiz-adv-x="284" d="M256 314v-51q-79 0 -81 -75q0 -25 8 -81q8 -54 8 -82q0 -137 -145 -137h-21v55h17q80 1 80 87q0 16 -7 72q-8 50 -8 77q-1 89 73 109v2q-73 19 -73 108q0 26 8 76q7 56 7 71q0 85 -80 86h-17v55h20q67 0 106.5 -32.5t39.5 -98.5q0 -26 -8 -84q-8 -54 -8 -83 q0 -33 16.5 -53.5t64.5 -20.5z" />
<glyph unicode="~" horiz-adv-x="596" d="M109 210h-60q-2 72 31.5 111.5t87.5 39.5q30 0 58.5 -9.5t83.5 -35.5q88 -42 124 -42q52 0 54 84h59q3 -78 -29.5 -114.5t-84.5 -36.5q-50 0 -145 44l-19.5 9.5t-19 9.5t-16.5 8t-17.5 7l-15.5 5t-16.5 4t-15.5 1q-58 0 -59 -85z" />
<glyph unicode="&#xa1;" horiz-adv-x="230" d="M163 -195h-96l14 477h68zM116 488q26 0 42 -17.5t16 -45.5q0 -26 -16.5 -43.5t-42.5 -17.5t-42.5 17.5t-16.5 43.5q0 28 17 45.5t43 17.5z" />
<glyph unicode="&#xa2;" d="M331 -14h-63v101q-88 10 -144 70q-57 62 -57 169q0 97 55 164.5t146 82.5v100h63v-98q62 -1 109 -25l-20 -67q-44 25 -105 25q-72 0 -116 -51.5t-44 -127.5q0 -80 44.5 -127.5t112.5 -47.5q64 0 114 25l15 -64q-43 -25 -110 -29v-100z" />
<glyph unicode="&#xa3;" d="M471 0h-415v50q51 26 82.5 73t31.5 102q0 37 -5 70h-103v63h93q-11 66 -11 108q0 88 54 141.5t138 53.5q69 0 109 -25l-19 -66q-36 20 -90 20q-56 0 -82.5 -34t-26.5 -91q0 -48 11 -107h144v-63h-136q6 -73 -4 -112q-16 -63 -69 -108v-2h298v-73z" />
<glyph unicode="&#xa4;" d="M257 534q70 0 115 -40l71 75l45 -46l-79 -71q35 -47 35 -118q0 -76 -35 -122l75 -74l-44 -44l-69 76q-45 -42 -117 -42q-71 0 -114 40l-67 -74l-43 44l72 70q-37 50 -37 121q0 73 39 123l-76 71l45 46l68 -76q48 41 116 41zM254 471q-53 0 -85.5 -40.5t-32.5 -100.5 q0 -67 36.5 -103t81.5 -36q48 0 83.5 35.5t35.5 106.5q0 56 -31.5 97t-87.5 41z" />
<glyph unicode="&#xa5;" d="M292 0h-83v176h-155v49h155v73h-155v49h131l-169 303h94l104 -206q24 -51 40 -91h3q16 45 40 93l108 204h92l-179 -303h130v-49h-156v-73h156v-49h-156v-176z" />
<glyph unicode="&#xa6;" horiz-adv-x="239" d="M86 174h67v-350h-67v350zM86 674h67v-350h-67v350z" />
<glyph unicode="&#xa7;" horiz-adv-x="519" d="M131 350q0 -28 24 -50.5t81 -43.5q88 -31 114 -48q38 28 38 77q0 62 -89 93q-9 4 -30 11.5l-34.5 12.5t-30 12.5t-28.5 14.5q-45 -32 -45 -79zM418 650l-22 -57q-50 32 -119 32q-45 0 -74.5 -20.5t-29.5 -53.5q0 -36 29 -55t96 -41q80 -26 121 -60.5t41 -96.5 q0 -72 -64 -121q38 -36 38 -89q0 -73 -56 -111.5t-134 -38.5q-100 0 -157 42l24 57q56 -40 133 -40q49 0 80 21.5t31 59.5q0 35 -26 57.5t-96 47.5q-88 30 -131 64t-43 93q0 69 74 118q-16 11 -26.5 34.5t-10.5 48.5q0 65 52.5 103.5t131.5 38.5t138 -33z" />
<glyph unicode="&#xa8;" horiz-adv-x="300" d="M56 570q-21 0 -35 15t-14 36t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5q0 -21 -14 -36t-36 -15zM242 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z" />
<glyph unicode="&#xa9;" horiz-adv-x="677" d="M341 648q126 0 213 -90t87 -218q0 -129 -87.5 -219.5t-213.5 -90.5q-127 0 -215.5 90.5t-88.5 219.5q0 128 88.5 218t216.5 90zM339 607q-107 0 -180 -78t-73 -192q0 -112 73 -189t181 -77q106 -1 178.5 77t72.5 192q0 112 -73 189.5t-179 77.5zM474 493l-12 -39 q-43 23 -97 23q-68 0 -104 -38.5t-36 -101.5q0 -61 37 -101t104 -40q61 0 101 26l12 -38q-47 -31 -123 -31q-85 0 -134 51.5t-49 129.5q0 83 56 134.5t135 51.5q36 0 67 -8.5t43 -18.5z" />
<glyph unicode="&#xaa;" horiz-adv-x="346" d="M304 266h-59l-5 42h-2q-39 -47 -102 -47q-48 0 -75.5 27.5t-27.5 68.5q0 54 53 84.5t148 28.5v10q0 8 -2.5 17t-9.5 20t-23.5 18t-39.5 7q-50 0 -85 -26l-16 42q46 33 114 33q127 0 127 -140v-107q0 -38 5 -78zM235 372v55q-136 4 -136 -66q0 -24 16.5 -38t41.5 -14 q46 0 68 37q10 13 10 26z" />
<glyph unicode="&#xab;" horiz-adv-x="419" d="M232 436l-133 -184l134 -184h-72l-132 184l132 184h71zM396 436l-133 -184l133 -184h-71l-132 184l132 184h71z" />
<glyph unicode="&#xac;" horiz-adv-x="596" d="M40 399h516v-278h-64v218h-452v60z" />
<glyph unicode="&#xad;" horiz-adv-x="291" d="M30 302h247v-64h-247v64z" />
<glyph unicode="&#xae;" horiz-adv-x="419" d="M184 499v-65h-38v164q38 5 63 5q38 0 56 -13q17 -12 17 -35q0 -28 -34 -39v-2q21 -7 29 -40q5 -27 12 -40h-40q-4 5 -13 40q-4 25 -34 25h-18zM185 573v-47h18q38 0 38 24q0 25 -35 25q-13 0 -21 -2zM211 683q70 0 118.5 -47.5t48.5 -116.5t-49 -117t-119 -48 q-71 0 -120 48t-49 117t49.5 116.5t120.5 47.5zM209 650q-53 0 -89.5 -38.5t-36.5 -92.5q0 -55 37 -93t91 -38q53 -1 89 37.5t36 92.5q0 55 -36.5 93.5t-90.5 38.5z" />
<glyph unicode="&#xaf;" horiz-adv-x="300" d="M38 643h225v-57h-225v57z" />
<glyph unicode="&#xb0;" horiz-adv-x="318" d="M163 686q59 0 95 -38.5t36 -91.5q0 -59 -40 -96.5t-94 -37.5q-57 0 -94 37.5t-37 91.5q0 57 38.5 96t95.5 39zM160 639q-36 0 -56.5 -26.5t-20.5 -61.5t22 -58.5t56 -23.5t56.5 24.5t22.5 61.5q0 32 -20 58t-60 26z" />
<glyph unicode="&#xb1;" horiz-adv-x="596" d="M266 571h64v-194h226v-60h-226v-200h-64v200h-226v60h226v194zM40 60h516v-60h-516v60z" />
<glyph unicode="&#xb2;" horiz-adv-x="311" d="M12 443v37l63 58q68 62 97 100t29 74q0 30 -19.5 49.5t-56.5 19.5q-42 0 -84 -31l-21 46q50 41 123 41q65 0 98.5 -33.5t33.5 -78.5q0 -51 -32 -94t-101 -103l-30 -28v-2h170v-55h-270z" />
<glyph unicode="&#xb3;" horiz-adv-x="305" d="M45 759l-17 48q48 31 115 31q61 0 91.5 -27t30.5 -67q0 -31 -20.5 -54.5t-56.5 -36.5v-2q41 -6 67 -32.5t26 -64.5q0 -48 -42.5 -82.5t-115.5 -34.5q-72 0 -115 28l18 50q42 -26 93 -26q43 0 66 20.5t22 46.5q0 36 -31 53.5t-75 17.5h-27v46h28q34 0 62.5 16t28.5 47 q0 21 -15.5 35.5t-47.5 14.5q-46 0 -85 -27z" />
<glyph unicode="&#xb4;" horiz-adv-x="300" d="M189 693h96l-122 -143h-62z" />
<glyph unicode="&#xb5;" horiz-adv-x="553" d="M403 75h-3q-18 -34 -54 -59t-85 -25q-76 0 -106 53v-59q0 -134 11 -183h-79q-14 42 -14 179v503h88v-286q0 -61 27 -99t82 -38q41 0 71.5 24t43.5 57q8 21 8 46v296h88v-351q0 -41 10 -58t36 -18l-7 -64q-15 -4 -31 -4q-75 0 -86 86z" />
<glyph unicode="&#xb6;" horiz-adv-x="512" d="M293 -49h-62v314h-7q-68 0 -128.5 50.5t-61.5 139.5q0 42 12.5 79t42 70t86 52.5t134.5 19.5q77 0 117 -8v-717h-62v665h-71v-665z" />
<glyph unicode="&#xb7;" horiz-adv-x="207" d="M102 200q-25 0 -41.5 18t-16.5 44q0 28 17 45.5t43 17.5t42.5 -17.5t16.5 -45.5q0 -27 -17 -44.5t-44 -17.5z" />
<glyph unicode="&#xb8;" horiz-adv-x="300" d="M135 3h55l-33 -53q29 -3 49.5 -22t20.5 -47q0 -42 -29.5 -61.5t-75.5 -19.5q-39 0 -68 17l15 43q26 -14 54 -14q19 0 31.5 7.5t11.5 23.5q0 35 -78 42z" />
<glyph unicode="&#xb9;" horiz-adv-x="244" d="M177 443h-70v328h-2l-72 -35l-11 52l94 45h61v-390z" />
<glyph unicode="&#xba;" horiz-adv-x="355" d="M180 591q71 0 114 -45.5t43 -117.5q-1 -81 -48.5 -124t-111.5 -43q-68 0 -113.5 45t-45.5 117q0 76 47 122t115 46zM176 541q-44 0 -67.5 -35.5t-23.5 -81.5q0 -48 27.5 -80.5t65.5 -32.5q40 0 66 32t26 83q0 44 -24 79.5t-70 35.5z" />
<glyph unicode="&#xbb;" horiz-adv-x="419" d="M157 252l-133 184h70l133 -184l-133 -184h-70zM320 252l-134 184h71l133 -184l-133 -184h-70z" />
<glyph unicode="&#xbc;" horiz-adv-x="759" d="M198 266h-70v329h-2l-72 -35l-11 52l94 44h61v-390zM195 -11h-57l380 672h56zM663 0h-66v103h-200v39l193 253h73v-243h60v-49h-60v-103zM597 152v118q0 9 3 63h-2q-6 -9 -16.5 -27.5t-16.5 -27.5l-96 -125l1 -1h127z" />
<glyph unicode="&#xbd;" horiz-adv-x="759" d="M184 266h-70v329h-2l-72 -35l-11 52l94 44h61v-390zM175 -11h-56l379 672h56zM440 0v37l63 58q69 64 97.5 101t28.5 73q0 31 -19.5 50.5t-56.5 19.5q-42 0 -84 -31l-21 46q50 41 123 41q65 0 98.5 -33.5t33.5 -78.5q0 -52 -31.5 -94t-101.5 -104l-30 -28v-2h170v-55h-270 z" />
<glyph unicode="&#xbe;" horiz-adv-x="759" d="M66 582l-17 47q46 32 114 32q61 0 92 -27t31 -67q0 -31 -20 -54.5t-56 -35.5v-2q41 -6 67 -32.5t26 -64.5q0 -49 -42.5 -83t-115.5 -34q-72 0 -115 28l18 50q38 -26 93 -26q43 0 66 20.5t22 46.5q0 36 -31 53.5t-75 16.5h-27v46h27q34 0 62.5 16t28.5 47q0 21 -16 35.5 t-48 14.5q-45 0 -84 -27zM232 -11h-57l380 672h56zM674 0h-66v103h-200v39l193 253h73v-243h60v-49h-60v-103zM608 152v118q0 9 3 63h-2q-29 -50 -33 -55l-97 -125l1 -1h128z" />
<glyph unicode="&#xbf;" horiz-adv-x="406" d="M238 488q26 0 42 -17.5t16 -45.5q0 -27 -16 -44.5t-43 -17.5q-26 0 -42.5 17.5t-16.5 44.5q0 28 16.5 45.5t43.5 17.5zM197 286h77l3 -26q10 -86 -62 -174q-70 -82 -70 -137q0 -39 24.5 -62.5t70.5 -23.5q58 0 102 31l23 -63q-59 -40 -143 -40q-81 0 -124 42.5t-43 104.5 q0 46 21.5 84t65.5 90q62 74 56 148z" />
<glyph unicode="&#xc0;" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122zM161 827h106l93 -116h-71z" />
<glyph unicode="&#xc1;" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122zM348 827h106l-128 -117h-71z" />
<glyph unicode="&#xc2;" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122zM276 824h67l105 -114h-74l-63 69h-2l-64 -69h-71z" />
<glyph unicode="&#xc3;" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122zM232 715h-47q-1 46 17.5 74t50.5 28q22 0 60 -20q32 -18 48 -18q12 0 18.5 8t8.5 31h46q2 -97 -67 -97q-25 0 -61 19q-38 19 -48 19q-21 0 -26 -44z" />
<glyph unicode="&#xc4;" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122zM216 719q-21 0 -34.5 15t-13.5 36t14 35.5t35 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-35.5 -14.5zM402 719q-21 0 -34.5 15t-13.5 36t14.5 35.5 t35.5 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-36.5 -14.5z" />
<glyph unicode="&#xc5;" horiz-adv-x="612" d="M424 212h-239l-70 -212h-90l230 674h104l230 -674h-93zM203 280h204l-67 194q-14 41 -35 123h-2q-23 -90 -34 -122zM309 878q44 0 71 -26t27 -65q0 -38 -28 -63t-71 -25q-44 0 -72 25.5t-28 62.5q0 39 27.5 65t73.5 26zM306 842q-22 0 -34.5 -16t-12.5 -39 q0 -20 13.5 -35.5t34.5 -15.5t34.5 15t13.5 38q0 22 -13.5 37.5t-35.5 15.5z" />
<glyph unicode="&#xc6;" horiz-adv-x="788" d="M89 0h-90l308 674h422l-1 -73h-286l26 -215h251v-72h-240l30 -241h247l-1 -73h-321l-30 237h-207zM226 308h168l-22 194q-10 80 -12 109h-4q-10 -28 -43 -106z" />
<glyph unicode="&#xc7;" horiz-adv-x="585" d="M530 91l17 -69q-57 -31 -175 -32l-25 -40q30 -6 50 -25.5t20 -48.5q0 -41 -29.5 -61t-73.5 -20q-40 0 -71 17l14 45q23 -14 55 -14q43 0 43 31q0 33 -78 43l42 76q-128 15 -205.5 102.5t-77.5 235.5q0 159 97.5 256.5t255.5 97.5q104 0 159 -30l-21 -71q-58 28 -136 28 q-120 0 -191.5 -73.5t-71.5 -204.5q0 -126 68.5 -198.5t190.5 -72.5q84 0 143 28z" />
<glyph unicode="&#xc8;" horiz-adv-x="492" d="M424 388v-72h-261v-243h292v-73h-380v674h365v-73h-277v-213h261zM119 827h106l93 -116h-71z" />
<glyph unicode="&#xc9;" horiz-adv-x="492" d="M424 388v-72h-261v-243h292v-73h-380v674h365v-73h-277v-213h261zM302 827h106l-128 -117h-71z" />
<glyph unicode="&#xca;" horiz-adv-x="492" d="M424 388v-72h-261v-243h292v-73h-380v674h365v-73h-277v-213h261zM223 824h67l105 -114h-74l-63 69h-2l-64 -69h-71z" />
<glyph unicode="&#xcb;" horiz-adv-x="492" d="M425 388v-72h-262v-243h293v-73h-381v674h365v-73h-277v-213h262zM162 721q-21 0 -34.5 15t-13.5 36t14 35.5t35 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-35.5 -14.5zM347 721q-21 0 -34.5 15t-13.5 36t14.5 35.5t35.5 14.5t34.5 -14.5t13.5 -35.5 q0 -22 -13.5 -36.5t-36.5 -14.5z" />
<glyph unicode="&#xcc;" horiz-adv-x="239" d="M75 674h88v-674h-88v674zM-25 827h106l93 -116h-71z" />
<glyph unicode="&#xcd;" horiz-adv-x="239" d="M75 674h88v-674h-88v674zM160 827h106l-128 -117h-71z" />
<glyph unicode="&#xce;" horiz-adv-x="239" d="M75 674h88v-674h-88v674zM85 824h67l105 -114h-74l-63 69h-2l-64 -69h-71z" />
<glyph unicode="&#xcf;" horiz-adv-x="239" d="M75 674h88v-674h-88v674zM27 721q-21 0 -34.5 15t-13.5 36t14 35.5t35 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-35.5 -14.5zM212 721q-21 0 -34.5 15t-13.5 36t14.5 35.5t35.5 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-36.5 -14.5z" />
<glyph unicode="&#xd0;" horiz-adv-x="671" d="M-1 307v70h82v290q88 15 185 15q183 0 272 -84q96 -85 96 -245q0 -164 -97 -263q-99 -97 -298 -97q-81 0 -158 7v307h-82zM348 377v-70h-180v-240q29 -4 87 -4q140 0 213.5 74.5t73.5 214.5q1 124 -68 192.5t-204 68.5q-61 0 -102 -9v-227h180z" />
<glyph unicode="&#xd1;" horiz-adv-x="658" d="M158 0h-82v674h96l215 -341q78 -126 120 -219l3 1q-10 113 -10 277v282h82v-674h-88l-214 342q-84 133 -125 225l-3 -1q6 -102 6 -278v-288zM257 715h-47q-1 46 17.5 74t50.5 28q21 0 59 -20q32 -18 48 -18q12 0 18.5 8t8.5 31h46q2 -97 -67 -97q-23 0 -61 19 q-36 19 -47 19q-21 0 -26 -44z" />
<glyph unicode="&#xd2;" horiz-adv-x="689" d="M348 686q138 0 221 -95t83 -247q0 -167 -89 -261t-224 -94q-134 0 -218.5 95t-84.5 248q0 159 87.5 256.5t224.5 97.5zM345 615q-103 0 -160 -81.5t-57 -199.5q0 -114 58.5 -194t157.5 -80q100 0 158 80t58 200q0 111 -56.5 193t-158.5 82zM199 829h106l93 -116h-71z" />
<glyph unicode="&#xd3;" horiz-adv-x="689" d="M348 686q138 0 221 -95t83 -247q0 -167 -89 -261t-224 -94q-134 0 -218.5 95t-84.5 248q0 159 87.5 256.5t224.5 97.5zM345 615q-103 0 -160 -81.5t-57 -199.5q0 -114 58.5 -194t157.5 -80q100 0 158 80t58 200q0 111 -56.5 193t-158.5 82zM384 829h106l-128 -117h-71z " />
<glyph unicode="&#xd4;" horiz-adv-x="689" d="M348 686q138 0 221 -95t83 -247q0 -167 -89 -261t-224 -94q-134 0 -218.5 95t-84.5 248q0 159 87.5 256.5t224.5 97.5zM345 615q-103 0 -160 -81.5t-57 -199.5q0 -114 58.5 -194t157.5 -80q100 0 158 80t58 200q0 111 -56.5 193t-158.5 82zM309 827h67l105 -114h-74 l-63 69h-2l-64 -69h-71z" />
<glyph unicode="&#xd5;" horiz-adv-x="689" d="M348 686q138 0 221 -95t83 -247q0 -167 -89 -261t-224 -94q-134 0 -218.5 95t-84.5 248q0 159 87.5 256.5t224.5 97.5zM345 615q-103 0 -160 -81.5t-57 -199.5q0 -114 58.5 -194t157.5 -80q100 0 158 80t58 200q0 111 -56.5 193t-158.5 82zM267 718h-47q-1 45 17.5 73 t50.5 28q21 0 59 -20q32 -18 48 -18q12 0 18.5 8t8.5 31h46q2 -97 -67 -97q-23 0 -61 19q-36 19 -47 19q-21 0 -26 -43z" />
<glyph unicode="&#xd6;" horiz-adv-x="689" d="M348 686q138 0 221 -95t83 -247q0 -167 -89 -261t-224 -94q-134 0 -218.5 95t-84.5 248q0 159 87.5 256.5t224.5 97.5zM345 615q-103 0 -160 -81.5t-57 -199.5q0 -114 58.5 -194t157.5 -80q100 0 158 80t58 200q0 111 -56.5 193t-158.5 82zM251 721q-21 0 -34.5 15 t-13.5 36t14 35.5t35 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-35.5 -14.5zM436 721q-21 0 -34.5 15t-13.5 36t14.5 35.5t35.5 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-36.5 -14.5z" />
<glyph unicode="&#xd7;" horiz-adv-x="596" d="M40 482l44 44l214 -219l214 219l44 -44l-215 -219l215 -219l-44 -44l-214 219l-214 -219l-44 44l214 219z" />
<glyph unicode="&#xd8;" horiz-adv-x="689" d="M112 -43l-49 40l62 87q-89 97 -89 250q0 158 88 255t223 97q96 0 168 -54l59 81l53 -36l-62 -86q87 -95 87 -248q0 -168 -89 -261t-218 -93q-96 0 -170 54zM176 158l296 411q-55 47 -127 47q-104 0 -162 -82t-58 -196q0 -96 49 -181zM513 516l-295 -409q51 -48 126 -48 q101 0 160 81t59 200q0 98 -47 176h-3z" />
<glyph unicode="&#xd9;" horiz-adv-x="647" d="M75 674h88v-400q0 -108 43 -161t114 -53q77 0 120.5 53t43.5 161v400h88v-394q0 -148 -69.5 -219.5t-185.5 -71.5q-111 0 -176.5 69.5t-65.5 218.5v397zM183 827h106l93 -116h-71z" />
<glyph unicode="&#xda;" horiz-adv-x="647" d="M75 674h88v-400q0 -108 43 -161t114 -53q77 0 120.5 53t43.5 161v400h88v-394q0 -148 -69.5 -219.5t-185.5 -71.5q-111 0 -176.5 69.5t-65.5 218.5v397zM367 827h106l-128 -117h-71z" />
<glyph unicode="&#xdb;" horiz-adv-x="647" d="M75 674h88v-400q0 -108 43 -161t114 -53q77 0 120.5 53t43.5 161v400h88v-394q0 -148 -69.5 -219.5t-185.5 -71.5q-111 0 -176.5 69.5t-65.5 218.5v397zM295 824h67l105 -114h-74l-63 69h-2l-64 -69h-71z" />
<glyph unicode="&#xdc;" horiz-adv-x="647" d="M75 674h88v-400q0 -108 43 -161t114 -53q77 0 120.5 53t43.5 161v400h88v-394q0 -148 -69.5 -219.5t-185.5 -71.5q-111 0 -176.5 69.5t-65.5 218.5v397zM232 721q-21 0 -34.5 15t-13.5 36t14 35.5t35 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-35.5 -14.5zM418 721 q-21 0 -34.5 15t-13.5 36t14.5 35.5t35.5 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-36.5 -14.5z" />
<glyph unicode="&#xdd;" horiz-adv-x="541" d="M314 0h-88v286l-214 388h100l95 -186l67 -139h2q12 28 68 139l97 186h98l-225 -387v-287zM320 822h106l-128 -117h-71z" />
<glyph unicode="&#xde;" horiz-adv-x="531" d="M76 0v674h86v-131q38 7 96 7q117 0 178 -55q55 -50 55 -130q0 -104 -69.5 -159t-183.5 -55q-41 0 -76 5v-156h-86zM162 473v-246q28 -6 75 -6q80 0 123.5 36t43.5 98q0 63 -41.5 94.5t-112.5 31.5q-56 0 -88 -8z" />
<glyph unicode="&#xdf;" horiz-adv-x="548" d="M161 0h-88v452q0 154 72 218q55 51 146 51q75 0 126.5 -45t51.5 -124q0 -48 -24 -82q-71 -30 -71 -81q0 -16 7 -31.5t16 -25.5l28 -30q26 -26 40 -42.5t27.5 -47t13.5 -64.5q0 -71 -48.5 -115t-130.5 -44q-65 0 -106 21l16 67q40 -20 84 -20q46 0 72 24t26 60 q0 52 -54 103q-39 37 -58.5 66t-19.5 67q0 80 90 123q8 19 8 43q0 51 -28.5 80t-75.5 29q-60 0 -90 -46t-30 -150v-456z" />
<glyph unicode="&#xe0;" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28zM95 693h96l88 -143h-62z" />
<glyph unicode="&#xe1;" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28zM275 693h97l-122 -143h-62z" />
<glyph unicode="&#xe2;" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28zM205 693h61l96 -143h-67l-58 94h-2l-58 -94h-66z" />
<glyph unicode="&#xe3;" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28zM163 567h-48q-1 48 17 76t51 28q20 0 62 -22q30 -17 42 -17q25 0 28 42h47q2 -101 -68 -101q-22 0 -62 21q-30 18 -43 18q-23 0 -26 -45z" />
<glyph unicode="&#xe4;" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28zM148 570q-21 0 -35 15t-14 36t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5q0 -21 -14 -36t-36 -15zM333 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z " />
<glyph unicode="&#xe5;" horiz-adv-x="482" d="M413 297v-181q0 -70 7 -116h-79l-7 61h-3q-22 -31 -60.5 -51.5t-87.5 -20.5q-70 0 -109 41t-39 98q0 88 75.5 134.5t215.5 45.5v10q0 18 -3.5 34.5t-14 35.5t-34 30t-58.5 11q-74 0 -127 -36l-20 59q67 42 160 42q101 0 142.5 -56t41.5 -141zM328 163v84 q-205 4 -205 -109q0 -41 23.5 -62.5t58.5 -21.5q45 0 76 23.5t43 57.5q4 13 4 28zM240 537q-44 0 -72.5 26t-28.5 65q0 40 28 67t74 27q44 0 71.5 -26.5t27.5 -67.5q0 -39 -28.5 -65t-71.5 -26zM240 574q23 0 37 16t14 39q0 24 -14.5 40t-37.5 16t-36 -16.5t-13 -40.5 q0 -21 14 -37.5t36 -16.5z" />
<glyph unicode="&#xe6;" horiz-adv-x="773" d="M734 233h-325q-2 -84 41 -130t114 -46q74 0 132 27l16 -62q-63 -33 -159 -33q-64 0 -113.5 28t-70.5 79h-3q-23 -50 -70 -78.5t-109 -28.5q-72 0 -111.5 40.5t-39.5 97.5q0 85 76 131t215 44v20q0 12 -4 27.5t-14.5 34.5t-35 32t-58.5 13q-72 0 -124 -36l-21 57 q68 44 151 44q123 0 156 -102h2q24 48 68 75t101 27q52 0 91.5 -23t59 -59t29 -71t9.5 -69q0 -26 -3 -39zM329 172v71q-206 4 -206 -109q0 -37 24 -58.5t60 -21.5q45 -1 75.5 23t41.5 60q5 18 5 35zM409 296h244q1 28 -8.5 57.5t-37 54t-68.5 24.5q-60 0 -93.5 -43 t-36.5 -93z" />
<glyph unicode="&#xe7;" horiz-adv-x="447" d="M403 84l15 -66q-54 -27 -126 -28l-25 -40q30 -6 50 -25t20 -48q0 -42 -29.5 -62.5t-74.5 -20.5q-41 0 -70 17l15 45q23 -14 55 -14q43 0 43 32q-1 34 -78 42l42 77q-92 11 -147 77.5t-55 166.5q0 112 71.5 184.5t188.5 72.5q74 0 122 -26l-20 -67q-44 23 -102 23 q-80 0 -125.5 -52t-45.5 -131q0 -82 47.5 -131t120.5 -49q58 0 108 23z" />
<glyph unicode="&#xe8;" horiz-adv-x="501" d="M462 226h-340q1 -85 47.5 -126.5t118.5 -41.5q77 0 134 25l16 -63q-69 -31 -162 -31q-110 0 -174 67t-64 178q0 112 62 186t165 74q56 0 97.5 -22.5t62.5 -58.5t30.5 -72.5t9.5 -73.5q0 -26 -3 -41zM123 289h257q1 53 -27.5 97.5t-94.5 44.5q-61 0 -95 -43.5t-40 -98.5z M135 693h96l88 -143h-62z" />
<glyph unicode="&#xe9;" horiz-adv-x="501" d="M462 226h-340q1 -85 47.5 -126.5t118.5 -41.5q77 0 134 25l16 -63q-69 -31 -162 -31q-110 0 -174 67t-64 178q0 112 62 186t165 74q56 0 97.5 -22.5t62.5 -58.5t30.5 -72.5t9.5 -73.5q0 -26 -3 -41zM123 289h257q1 53 -27.5 97.5t-94.5 44.5q-61 0 -95 -43.5t-40 -98.5z M304 693h96l-122 -143h-62z" />
<glyph unicode="&#xea;" horiz-adv-x="501" d="M462 226h-340q1 -85 47.5 -126.5t118.5 -41.5q77 0 134 25l16 -63q-69 -31 -162 -31q-110 0 -174 67t-64 178q0 112 62 186t165 74q56 0 97.5 -22.5t62.5 -58.5t30.5 -72.5t9.5 -73.5q0 -26 -3 -41zM123 289h257q1 53 -27.5 97.5t-94.5 44.5q-61 0 -95 -43.5t-40 -98.5z M231 693h61l96 -143h-67l-58 94h-2l-58 -94h-66z" />
<glyph unicode="&#xeb;" horiz-adv-x="501" d="M462 226h-340q1 -85 47.5 -126.5t118.5 -41.5q77 0 134 25l16 -63q-69 -31 -162 -31q-110 0 -174 67t-64 178q0 112 62 186t165 74q56 0 97.5 -22.5t62.5 -58.5t30.5 -72.5t9.5 -73.5q0 -26 -3 -41zM123 289h257q1 53 -27.5 97.5t-94.5 44.5q-61 0 -95 -43.5t-40 -98.5z M175 570q-21 0 -35 15t-14 36t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5q0 -21 -14 -36t-36 -15zM360 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z" />
<glyph unicode="&#xec;" horiz-adv-x="234" d="M161 0h-88v484h88v-484zM-27 693h96l88 -143h-62z" />
<glyph unicode="&#xed;" horiz-adv-x="234" d="M161 0h-88v484h88v-484zM156 693h96l-122 -143h-62z" />
<glyph unicode="&#xee;" horiz-adv-x="234" d="M161 0h-88v484h88v-484zM86 693h61l96 -143h-67l-58 94h-2l-58 -94h-66z" />
<glyph unicode="&#xef;" horiz-adv-x="234" d="M161 0h-88v484h88v-484zM24 570q-21 0 -35 15t-14 36t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5q0 -21 -14 -36t-36 -15zM209 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z" />
<glyph unicode="&#xf0;" horiz-adv-x="541" d="M268 55q65 0 104 52.5t39 135.5q0 92 -34 134q-41 47 -106 47q-71 0 -107 -58t-36 -129q0 -77 40 -129.5t100 -52.5zM116 507l-19 43l116 55q-41 31 -104 60l39 55q73 -32 140 -81l127 61l22 -44l-106 -50q83 -68 127 -159q43 -86 43 -195q0 -67 -20 -119t-54 -82.5 t-74.5 -46t-85.5 -15.5q-100 0 -164.5 67.5t-64.5 179.5t66 179.5t157 68.5q66 0 113 -43l2 3q-45 73 -118 129z" />
<glyph unicode="&#xf1;" horiz-adv-x="555" d="M73 0v353q0 78 -4 131h78l5 -80h2q20 38 62 64t98 26q28 0 55.5 -9.5t54.5 -31t44 -64t17 -101.5v-288h-88v279q0 64 -27 103.5t-85 39.5q-41 0 -73 -26t-45 -64q-6 -16 -6 -41v-291h-88zM203 567h-48q-1 48 17 76t51 28q20 0 62 -22q30 -17 42 -17q24 0 27 42h47 q2 -101 -68 -101q-23 0 -61 21q-33 18 -43 18q-23 0 -26 -45z" />
<glyph unicode="&#xf2;" horiz-adv-x="549" d="M278 494q104 0 168.5 -69t64.5 -179q0 -125 -72 -191t-169 -66q-100 0 -166 68.5t-66 180.5q0 117 68.5 186.5t171.5 69.5zM276 428q-72 0 -110 -55.5t-38 -131.5q0 -80 41 -133t105 -53q63 0 105 53.5t42 134.5q0 71 -36.5 128t-108.5 57zM145 693h96l88 -143h-62z" />
<glyph unicode="&#xf3;" horiz-adv-x="549" d="M278 494q104 0 168.5 -69t64.5 -179q0 -125 -72 -191t-169 -66q-100 0 -166 68.5t-66 180.5q0 117 68.5 186.5t171.5 69.5zM276 428q-72 0 -110 -55.5t-38 -131.5q0 -80 41 -133t105 -53q63 0 105 53.5t42 134.5q0 71 -36.5 128t-108.5 57zM309 693h97l-122 -143h-62z " />
<glyph unicode="&#xf4;" horiz-adv-x="549" d="M278 494q104 0 168.5 -69t64.5 -179q0 -125 -72 -191t-169 -66q-100 0 -166 68.5t-66 180.5q0 117 68.5 186.5t171.5 69.5zM276 428q-72 0 -110 -55.5t-38 -131.5q0 -80 41 -133t105 -53q63 0 105 53.5t42 134.5q0 71 -36.5 128t-108.5 57zM243 693h61l96 -143h-67 l-59 94h-2l-57 -94h-66z" />
<glyph unicode="&#xf5;" horiz-adv-x="549" d="M278 494q104 0 168.5 -69t64.5 -179q0 -125 -72 -191t-169 -66q-100 0 -166 68.5t-66 180.5q0 117 68.5 186.5t171.5 69.5zM276 428q-72 0 -110 -55.5t-38 -131.5q0 -80 41 -133t105 -53q63 0 105 53.5t42 134.5q0 71 -36.5 128t-108.5 57zM199 567h-48q-1 48 17 76 t51 28q19 0 63 -22q30 -17 42 -17q24 0 27 42h47q2 -101 -68 -101q-22 0 -62 21q-30 18 -43 18q-23 0 -26 -45z" />
<glyph unicode="&#xf6;" horiz-adv-x="549" d="M278 494q104 0 168.5 -69t64.5 -179q0 -125 -72 -191t-169 -66q-100 0 -166 68.5t-66 180.5q0 117 68.5 186.5t171.5 69.5zM276 428q-72 0 -110 -55.5t-38 -131.5q0 -80 41 -133t105 -53q63 0 105 53.5t42 134.5q0 71 -36.5 128t-108.5 57zM181 570q-21 0 -35 15t-14 36 t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5q0 -21 -14 -36t-36 -15zM366 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z" />
<glyph unicode="&#xf7;" horiz-adv-x="596" d="M297 387q-23 0 -37.5 15.5t-14.5 39.5q0 25 15 40.5t38 15.5q24 0 38.5 -15.5t14.5 -40.5q0 -24 -15 -39.5t-39 -15.5zM556 237h-516v60h516v-60zM297 36q-23 0 -37.5 15.5t-14.5 39.5q0 25 15 40.5t38 15.5q24 0 38.5 -15.5t14.5 -40.5q0 -24 -15 -39.5t-39 -15.5z" />
<glyph unicode="&#xf8;" horiz-adv-x="549" d="M277 494q69 0 122 -34l42 60l39 -27l-43 -63q74 -71 74 -185q0 -124 -71 -190t-165 -66q-71 0 -123 34l-44 -61l-37 30l42 60q-75 72 -75 187q0 117 68 186t171 69zM161 119l198 280q-34 29 -85 29q-74 0 -112 -56.5t-38 -130.5q0 -72 35 -121zM389 361l-198 -278 q34 -28 81 -28q68 0 110.5 52.5t42.5 134.5q0 68 -34 119h-2z" />
<glyph unicode="&#xf9;" horiz-adv-x="551" d="M478 484v-351q0 -82 4 -133h-78l-5 79h-2q-20 -36 -61 -63t-99 -27q-31 0 -58.5 10t-53 32.5t-40.5 66t-15 103.5v283h88v-267q0 -155 108 -155q41 0 72 24t44 57q8 19 8 45v296h88zM140 693h96l88 -143h-62z" />
<glyph unicode="&#xfa;" horiz-adv-x="551" d="M478 484v-351q0 -82 4 -133h-78l-5 79h-2q-20 -36 -61 -63t-99 -27q-31 0 -58.5 10t-53 32.5t-40.5 66t-15 103.5v283h88v-267q0 -155 108 -155q41 0 72 24t44 57q8 19 8 45v296h88zM321 693h96l-122 -143h-62z" />
<glyph unicode="&#xfb;" horiz-adv-x="551" d="M478 484v-351q0 -82 4 -133h-78l-5 79h-2q-20 -36 -61 -63t-99 -27q-31 0 -58.5 10t-53 32.5t-40.5 66t-15 103.5v283h88v-267q0 -155 108 -155q41 0 72 24t44 57q8 19 8 45v296h88zM244 693h61l96 -143h-67l-58 94h-2l-58 -94h-66z" />
<glyph unicode="&#xfc;" horiz-adv-x="551" d="M478 484v-351q0 -82 4 -133h-78l-5 79h-2q-20 -36 -61 -63t-99 -27q-31 0 -58.5 10t-53 32.5t-40.5 66t-15 103.5v283h88v-267q0 -155 108 -155q41 0 72 24t44 57q8 19 8 45v296h88zM185 570q-21 0 -35 15t-14 36t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5q0 -21 -14 -36 t-36 -15zM370 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z" />
<glyph unicode="&#xfd;" horiz-adv-x="471" d="M9 484h96l105 -286q18 -47 32 -99h2q1 3 12.5 41.5t18.5 59.5l96 284h93l-132 -345q-49 -128 -85.5 -196t-80.5 -107q-55 -46 -108 -56l-22 73q42 13 77 43q45 35 74 98q7 16 7 21q0 8 -7 23zM285 693h97l-122 -143h-62z" />
<glyph unicode="&#xfe;" horiz-adv-x="569" d="M73 669h87v-262h2q54 87 165 87q87 1 146 -67.5t59 -178.5q0 -125 -65.5 -192t-155.5 -67q-100 0 -149 76h-2v-263h-87v867zM160 280v-89q0 -26 9 -44q15 -41 50 -65t79 -24q66 0 105.5 51t39.5 137q0 75 -38.5 126.5t-104.5 51.5q-43 0 -79 -26t-51 -69q-10 -28 -10 -49 z" />
<glyph unicode="&#xff;" horiz-adv-x="471" d="M9 484h96l105 -286q18 -47 32 -99h2q1 3 12.5 41.5t18.5 59.5l96 284h93l-132 -345q-49 -128 -85.5 -196t-80.5 -107q-55 -46 -108 -56l-22 73q42 13 77 43q45 35 74 98q7 16 7 21q0 8 -7 23zM154 570q-21 0 -35 15t-14 36t14.5 36t36.5 15q20 0 34 -14.5t14 -36.5 q0 -21 -14 -36t-36 -15zM339 570q-21 0 -35 15t-14 36t14.5 36t35.5 15t35 -14.5t14 -36.5q0 -21 -14 -36t-36 -15z" />
<glyph unicode="&#x152;" horiz-adv-x="894" d="M857 73v-73h-345q-18 0 -66 -6q-62 -5 -83 -5q-153 0 -240 96.5t-87 246.5q0 164 92 259t240 95q38 0 88 -6t64 -6h322v-73h-277v-214h261v-72h-261v-242h292zM477 73v527q-43 15 -107 15q-111 0 -176.5 -77t-65.5 -202t67 -200.5t184 -75.5q62 0 98 13z" />
<glyph unicode="&#x153;" horiz-adv-x="863" d="M824 227h-329q0 -80 44.5 -124.5t116.5 -44.5q67 0 129 27l17 -63q-58 -33 -157 -33q-137 0 -192 114h-2q-26 -56 -77 -85t-110 -29q-98 0 -162 68.5t-64 181.5q0 115 66 185t166 70q62 0 111 -30.5t71 -84.5h2q26 56 72.5 85.5t104.5 29.5q44 0 79.5 -15.5t56.5 -39.5 t35 -55t19 -59.5t5 -56.5q0 -23 -2 -41zM270 428q-72 0 -107 -57t-35 -130q0 -79 40.5 -132.5t102.5 -53.5q64 0 103 52t39 135q0 77 -36 131.5t-107 54.5zM494 290h248q0 23 -5 45.5t-17 45t-37 36.5t-59 14q-59 0 -92 -43.5t-38 -97.5z" />
<glyph unicode="&#x178;" horiz-adv-x="541" d="M314 0h-88v286l-214 388h100l95 -186l67 -139h2q12 28 68 139l97 186h98l-225 -387v-287zM186 714q-21 0 -34.5 15t-13.5 36t14 35.5t35 14.5t34.5 -14.5t13.5 -35.5q0 -22 -13.5 -36.5t-35.5 -14.5zM371 714q-21 0 -34.5 15t-13.5 36t14.5 35.5t35.5 14.5t34.5 -14.5 t13.5 -35.5q0 -22 -13.5 -36.5t-36.5 -14.5z" />
<glyph unicode="&#x2c6;" horiz-adv-x="300" d="M119 693h61l96 -143h-67l-58 94h-2l-58 -94h-66z" />
<glyph unicode="&#x2dc;" horiz-adv-x="300" d="M75 567h-48q-1 48 17 76t51 28q20 0 62 -22q30 -17 43 -17q24 0 27 42h47q2 -101 -68 -101q-22 0 -62 21q-30 18 -43 18q-23 0 -26 -45z" />
<glyph unicode="&#x2000;" horiz-adv-x="439" />
<glyph unicode="&#x2001;" horiz-adv-x="878" />
<glyph unicode="&#x2002;" horiz-adv-x="439" />
<glyph unicode="&#x2003;" horiz-adv-x="878" />
<glyph unicode="&#x2004;" horiz-adv-x="292" />
<glyph unicode="&#x2005;" horiz-adv-x="219" />
<glyph unicode="&#x2006;" horiz-adv-x="146" />
<glyph unicode="&#x2007;" horiz-adv-x="146" />
<glyph unicode="&#x2008;" horiz-adv-x="109" />
<glyph unicode="&#x2009;" horiz-adv-x="175" />
<glyph unicode="&#x200a;" horiz-adv-x="48" />
<glyph unicode="&#x2010;" horiz-adv-x="307" d="M30 302h247v-64h-247v64z" />
<glyph unicode="&#x2011;" horiz-adv-x="307" d="M30 302h247v-64h-247v64z" />
<glyph unicode="&#x2013;" horiz-adv-x="500" d="M30 284h440v-60h-440v60z" />
<glyph unicode="&#x2014;" horiz-adv-x="1000" d="M30 284h940v-60h-940v60z" />
<glyph unicode="&#x2018;" horiz-adv-x="207" d="M125 458l-90 -10q17 62 44.5 132.5t48.5 105.5l56 6q-41 -114 -59 -234z" />
<glyph unicode="&#x2019;" horiz-adv-x="207" d="M93 682l90 10q-17 -62 -44.5 -132.5t-48.5 -105.5l-56 -6q41 114 59 234z" />
<glyph unicode="&#x201a;" horiz-adv-x="207" d="M77 -112l-56 -6q41 114 59 234l90 10q-17 -62 -44.5 -132.5t-48.5 -105.5z" />
<glyph unicode="&#x201c;" horiz-adv-x="354" d="M125 458l-90 -10q17 62 44.5 132.5t48.5 105.5l56 6q-41 -114 -59 -234zM273 458l-90 -10q17 62 44.5 132.5t48.5 105.5l56 6q-39 -106 -59 -234z" />
<glyph unicode="&#x201d;" horiz-adv-x="354" d="M93 682l90 10q-17 -62 -44.5 -132.5t-48.5 -105.5l-56 -6q39 106 59 234zM241 682l90 10q-17 -62 -44.5 -132.5t-48.5 -105.5l-56 -6q41 114 59 234z" />
<glyph unicode="&#x201e;" horiz-adv-x="356" d="M76 -112l-56 -6q39 106 59 234l90 10q-17 -62 -44.5 -132.5t-48.5 -105.5zM224 -112l-56 -6q41 114 59 234l90 10q-17 -62 -44.5 -132.5t-48.5 -105.5z" />
<glyph unicode="&#x2022;" horiz-adv-x="282" d="M140 157q-43 0 -73.5 30.5t-30.5 74.5q-1 43 30 74t75 31t74.5 -30.5t30.5 -74.5t-31 -74.5t-75 -30.5z" />
<glyph unicode="&#x2026;" horiz-adv-x="1000" d="M165 -11q-25 0 -41.5 18t-16.5 45t17 45t43 18t42.5 -17.5t16.5 -45.5q0 -27 -17 -45t-44 -18zM498 -11q-25 0 -41.5 18t-16.5 45t17 45t43 18t42.5 -17.5t16.5 -45.5q0 -27 -17 -45t-44 -18zM831 -11q-25 0 -41.5 18t-16.5 45t17 45t43 18t42.5 -17.5t16.5 -45.5 q0 -27 -17 -45t-44 -18z" />
<glyph unicode="&#x202f;" horiz-adv-x="175" />
<glyph unicode="&#x2039;" horiz-adv-x="255" d="M232 436l-133 -184l133 -184h-71l-132 184l132 184h71z" />
<glyph unicode="&#x203a;" horiz-adv-x="255" d="M157 252l-133 184h70l133 -184l-133 -184h-70z" />
<glyph unicode="&#x205f;" horiz-adv-x="219" />
<glyph unicode="&#x20ac;" d="M479 94l17 -64q-61 -41 -149 -41q-128 0 -203 89q-59 65 -72 172h-62v50h57v15q0 16 2 44h-59v50h66q18 105 82 169q78 83 197 83q74 0 134 -32l-20 -66q-49 28 -112 28q-81 0 -133 -54q-43 -45 -59 -128h279v-50h-288q-2 -13 -2 -42v-17h290v-50h-283q12 -85 55 -131 q54 -58 141 -58q68 0 122 33z" />
<glyph unicode="&#x2122;" horiz-adv-x="619" d="M31 674h227v-45h-87v-227h-54v227h-86v45zM606 402h-54l-10 160q-1 11 -1.5 37t-0.5 39h-3l-23 -81l-49 -151h-56l-49 155l-19 77h-3q0 -26 -2 -76l-10 -160h-52l20 272h81l47 -133q3 -9 18 -69h1q3 9 9.5 32.5l9.5 34.5l47 135h78z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Binary file not shown.

463
static/css/prettyPhoto.css Normal file
View File

@ -0,0 +1,463 @@
/* ------------------------------------------------------------------------
This you can edit.
------------------------------------------------------------------------- */
div.light_rounded .pp_top .pp_left { background: url(../img/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */
div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */
div.light_rounded .pp_top .pp_right { background: url(../img/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */
div.light_rounded .pp_content .ppt { color: #000; }
div.light_rounded .pp_content_container .pp_left,
div.light_rounded .pp_content_container .pp_right { background: #fff; }
div.light_rounded .pp_content { background-color: #fff; } /* Content background */
div.light_rounded .pp_next:hover { background: url(../img/prettyPhoto/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */
div.light_rounded .pp_previous:hover { background: url(../img/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */
div.light_rounded .pp_expand { background: url(../img/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */
div.light_rounded .pp_expand:hover { background: url(../img/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */
div.light_rounded .pp_contract { background: url(../img/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */
div.light_rounded .pp_contract:hover { background: url(../img/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */
div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../img/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */
div.light_rounded #pp_full_res .pp_inline { color: #000; }
div.light_rounded .pp_gallery a.pp_arrow_previous,
div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; }
div.light_rounded .pp_nav .pp_play { background: url(../img/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; }
div.light_rounded .pp_nav .pp_pause { background: url(../img/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; }
div.light_rounded .pp_arrow_previous { background: url(../img/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */
div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; }
div.light_rounded .pp_arrow_next { background: url(../img/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */
div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; }
div.light_rounded .pp_bottom .pp_left { background: url(../img/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */
div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */
div.light_rounded .pp_bottom .pp_right { background: url(../img/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */
div.light_rounded .pp_loaderIcon { background: url(../img/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */
/* ----------------------------------
Dark Rounded Theme
----------------------------------- */
div.dark_rounded .pp_top .pp_left { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */
div.dark_rounded .pp_top .pp_middle { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */
div.dark_rounded .pp_top .pp_right { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */
div.dark_rounded .pp_content_container .pp_left { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */
div.dark_rounded .pp_content_container .pp_right { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */
div.dark_rounded .pp_content { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Content background */
div.dark_rounded .pp_next:hover { background: url(../img/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */
div.dark_rounded .pp_previous:hover { background: url(../img/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */
div.dark_rounded .pp_expand { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */
div.dark_rounded .pp_expand:hover { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */
div.dark_rounded .pp_contract { background: url(../img/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */
div.dark_rounded .pp_contract:hover { background: url(../img/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */
div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../img/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */
div.dark_rounded .currentTextHolder { color: #c4c4c4; }
div.dark_rounded .pp_description { color: #fff; }
div.dark_rounded #pp_full_res .pp_inline { color: #fff; }
div.dark_rounded .pp_gallery a.pp_arrow_previous,
div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; }
div.dark_rounded .pp_nav .pp_play { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; }
div.dark_rounded .pp_nav .pp_pause { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; }
div.dark_rounded .pp_arrow_previous { background: url(../img/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */
div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; }
div.dark_rounded .pp_arrow_next { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */
div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; }
div.dark_rounded .pp_bottom .pp_left { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */
div.dark_rounded .pp_bottom .pp_middle { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */
div.dark_rounded .pp_bottom .pp_right { background: url(../img/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */
div.dark_rounded .pp_loaderIcon { background: url(../img/prettyPhoto/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */
/* ----------------------------------
Dark Square Theme
----------------------------------- */
div.dark_square .pp_left ,
div.dark_square .pp_middle,
div.dark_square .pp_right,
div.dark_square .pp_content { background: url(../img/prettyPhoto/dark_square/contentPattern.png) top left repeat; }
div.dark_square .currentTextHolder { color: #c4c4c4; }
div.dark_square .pp_description { color: #fff; }
div.dark_square .pp_loaderIcon { background: url(../img/prettyPhoto/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */
div.dark_square .pp_content_container .pp_left { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */
div.dark_square .pp_content_container .pp_right { background: url(../img/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */
div.dark_square .pp_expand { background: url(../img/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */
div.dark_square .pp_expand:hover { background: url(../img/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */
div.dark_square .pp_contract { background: url(../img/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */
div.dark_square .pp_contract:hover { background: url(../img/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */
div.dark_square .pp_close { width: 75px; height: 22px; background: url(../img/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */
div.dark_square #pp_full_res .pp_inline { color: #fff; }
div.dark_square .pp_gallery a.pp_arrow_previous,
div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; }
div.dark_square .pp_nav .pp_play { background: url(../img/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; }
div.dark_square .pp_nav .pp_pause { background: url(../img/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; }
div.dark_square .pp_arrow_previous { background: url(../img/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */
div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; }
div.dark_square .pp_arrow_next { background: url(../img/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */
div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; }
div.dark_square .pp_next:hover { background: url(../img/prettyPhoto/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */
div.dark_square .pp_previous:hover { background: url(../img/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */
/* ----------------------------------
Light Square Theme
----------------------------------- */
div.light_square .pp_left ,
div.light_square .pp_middle,
div.light_square .pp_right,
div.light_square .pp_content { background: #fff; }
div.light_square .pp_content .ppt { color: #000; }
div.light_square .pp_expand { background: url(../img/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */
div.light_square .pp_expand:hover { background: url(../img/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */
div.light_square .pp_contract { background: url(../img/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */
div.light_square .pp_contract:hover { background: url(../img/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */
div.light_square .pp_close { width: 75px; height: 22px; background: url(../img/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */
div.light_square #pp_full_res .pp_inline { color: #000; }
div.light_square .pp_gallery a.pp_arrow_previous,
div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; }
div.light_square .pp_nav .pp_play { background: url(../img/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; }
div.light_square .pp_nav .pp_pause { background: url(../img/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; }
div.light_square .pp_arrow_previous { background: url(../img/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */
div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; }
div.light_square .pp_arrow_next { background: url(../img/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */
div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; }
div.light_square .pp_next:hover { background: url(../img/prettyPhoto/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */
div.light_square .pp_previous:hover { background: url(../img/prettyPhoto/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */
/* ----------------------------------
Facebook style Theme
----------------------------------- */
div.facebook .pp_top .pp_left { background: url(../img/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */
div.facebook .pp_top .pp_middle { background: url(../img/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */
div.facebook .pp_top .pp_right { background: url(../img/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */
div.facebook .pp_content .ppt { color: #000; }
div.facebook .pp_content_container .pp_left { background: url(../img/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */
div.facebook .pp_content_container .pp_right { background: url(../img/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */
div.facebook .pp_content { background: #fff; } /* Content background */
div.facebook .pp_expand { background: url(../img/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */
div.facebook .pp_expand:hover { background: url(../img/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */
div.facebook .pp_contract { background: url(../img/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */
div.facebook .pp_contract:hover { background: url(../img/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */
div.facebook .pp_close { width: 22px; height: 22px; background: url(../img/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */
div.facebook #pp_full_res .pp_inline { color: #000; }
div.facebook .pp_loaderIcon { background: url(../img/prettyPhoto/facebook/loader.gif) center center no-repeat; } /* Loader icon */
div.facebook .pp_arrow_previous { background: url(../img/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */
div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; }
div.facebook .pp_arrow_next { background: url(../img/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */
div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; }
div.facebook .pp_nav { margin-top: 0; }
div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; }
div.facebook .pp_nav .pp_play { background: url(../img/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; }
div.facebook .pp_nav .pp_pause { background: url(../img/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; }
div.facebook .pp_next:hover { background: url(../img/prettyPhoto/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */
div.facebook .pp_previous:hover { background: url(../img/prettyPhoto/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */
div.facebook .pp_bottom .pp_left { background: url(../img/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */
div.facebook .pp_bottom .pp_middle { background: url(../img/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */
div.facebook .pp_bottom .pp_right { background: url(../img/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */
/* ------------------------------------------------------------------------
DO NOT CHANGE
------------------------------------------------------------------------- */
div.pp_pic_holder a:focus { outline:none; }
div.pp_overlay {
background: #000;
display: none;
left: 0;
position: absolute;
top: 0;
width: 100%;
z-index: 9500;
}
div.pp_pic_holder {
display: none;
position: absolute;
width: 100px;
z-index: 10000;
}
.pp_top {
height: 20px;
position: relative;
}
* html .pp_top { padding: 0 20px; }
.pp_top .pp_left {
height: 20px;
left: 0;
position: absolute;
width: 20px;
}
.pp_top .pp_middle {
height: 20px;
left: 20px;
position: absolute;
right: 20px;
}
* html .pp_top .pp_middle {
left: 0;
position: static;
}
.pp_top .pp_right {
height: 20px;
left: auto;
position: absolute;
right: 0;
top: 0;
width: 20px;
}
.pp_content { height: 40px; }
.pp_fade { display: none; }
.pp_content_container {
position: relative;
text-align: left;
width: 100%;
}
.pp_content_container .pp_left { padding-left: 20px; }
.pp_content_container .pp_right { padding-right: 20px; }
.pp_content_container .pp_details {
float: left;
margin: 10px 0 2px 0;
}
.pp_description {
display: none;
margin: 0 0 5px 0;
}
.pp_nav {
clear: left;
float: left;
margin: 3px 0 0 0;
}
.pp_nav p {
float: left;
margin: 2px 4px;
}
.pp_nav .pp_play,
.pp_nav .pp_pause {
float: left;
margin-right: 4px;
text-indent: -10000px;
}
a.pp_arrow_previous,
a.pp_arrow_next {
display: block;
float: left;
height: 15px;
margin-top: 3px;
overflow: hidden;
text-indent: -10000px;
width: 14px;
}
.pp_hoverContainer {
position: absolute;
top: 0;
width: 100%;
z-index: 2000;
}
.pp_gallery {
left: 50%;
margin-top: -50px;
position: absolute;
z-index: 10000;
}
.pp_gallery ul {
float: left;
height: 35px;
margin: 0 0 0 5px;
overflow: hidden;
position: relative;
}
.pp_gallery ul a {
border: 1px #000 solid;
border: 1px rgba(0,0,0,0.5) solid;
display: block;
float: left;
height: 33px;
overflow: hidden;
}
.pp_gallery ul a:hover,
.pp_gallery li.selected a { border-color: #fff; }
.pp_gallery ul a img { border: 0; }
.pp_gallery li {
display: block;
float: left;
margin: 0 5px 0 0;
}
.pp_gallery li.default a {
background: url(../img/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;
display: block;
height: 33px;
width: 50px;
}
.pp_gallery li.default a img { display: none; }
.pp_gallery .pp_arrow_previous,
.pp_gallery .pp_arrow_next {
margin-top: 7px !important;
}
a.pp_next {
background: url(../img/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;
display: block;
float: right;
height: 100%;
text-indent: -10000px;
width: 49%;
}
a.pp_previous {
background: url(../img/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;
display: block;
float: left;
height: 100%;
text-indent: -10000px;
width: 49%;
}
a.pp_expand,
a.pp_contract {
cursor: pointer;
display: none;
height: 20px;
position: absolute;
right: 30px;
text-indent: -10000px;
top: 10px;
width: 20px;
z-index: 20000;
}
a.pp_close {
display: block;
float: right;
line-height:22px;
text-indent: -10000px;
}
.pp_bottom {
height: 20px;
position: relative;
}
* html .pp_bottom { padding: 0 20px; }
.pp_bottom .pp_left {
height: 20px;
left: 0;
position: absolute;
width: 20px;
}
.pp_bottom .pp_middle {
height: 20px;
left: 20px;
position: absolute;
right: 20px;
}
* html .pp_bottom .pp_middle {
left: 0;
position: static;
}
.pp_bottom .pp_right {
height: 20px;
left: auto;
position: absolute;
right: 0;
top: 0;
width: 20px;
}
.pp_loaderIcon {
display: block;
height: 24px;
left: 50%;
margin: -12px 0 0 -12px;
position: absolute;
top: 50%;
width: 24px;
}
#pp_full_res {
line-height: 1 !important;
}
#pp_full_res .pp_inline {
text-align: left;
}
#pp_full_res .pp_inline p { margin: 0 0 15px 0; }
div.ppt {
color: #fff;
display: none;
font-size: 17px;
margin: 0 0 5px 15px;
z-index: 9999;
}
/* ------------------------------------------------------------------------
Miscellaneous
------------------------------------------------------------------------- */
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix {height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
div.ppt {
font-family:MyriadProRegular, Helvetica, sans-serif;
font-size:20px;
color: #8d8e92;
letter-spacing:-.05em;
margin:10px 0 5px 15px;
z-index:9999;
text-shadow: none;
}

BIN
static/img/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
static/img/bottom_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
static/img/buy_button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
static/img/digg_color.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/img/hr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

BIN
static/img/imac_iphone.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
static/img/image_well.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
static/img/ipad.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
static/img/page_bground.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
static/img/report_icon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
static/img/share_icon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
static/img/star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/img/star_icon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
static/img/tipsy.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
static/img/top_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
static/img/tut_icon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
static/img/video_link.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

19
static/js/jquery-1.3.2.min.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,832 @@
/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 3.0
------------------------------------------------------------------------- */
(function($) {
$.prettyPhoto = {version: '3.0'};
$.fn.prettyPhoto = function(pp_settings) {
pp_settings = jQuery.extend({
animation_speed: 'fast', /* fast/slow/normal */
slideshow: false, /* false OR interval time in ms */
autoplay_slideshow: false, /* true/false */
opacity: 0.80, /* Value between 0 and 1 */
show_title: true, /* true/false */
allow_resize: true, /* Resize the photos bigger than viewport. true/false */
default_width: 500,
default_height: 344,
counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
theme: 'facebook', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
wmode: 'opaque', /* Set the flash wmode attribute */
autoplay: true, /* Automatically start videos: True/False */
modal: false, /* If set to true, only the close button will close the window */
overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */
changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
callback: function(){}, /* Called when prettyPhoto is closed */
markup: '<div class="pp_pic_holder"> \
<div class="ppt">&nbsp;</div> \
<div class="pp_top"> \
<div class="pp_left"></div> \
<div class="pp_middle"></div> \
<div class="pp_right"></div> \
</div> \
<div class="pp_content_container"> \
<div class="pp_left"> \
<div class="pp_right"> \
<div class="pp_content"> \
<div class="pp_loaderIcon"></div> \
<div class="pp_fade"> \
<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
<div class="pp_hoverContainer"> \
<a class="pp_next" href="#">next</a> \
<a class="pp_previous" href="#">previous</a> \
</div> \
<div id="pp_full_res"></div> \
<div class="pp_details clearfix"> \
<p class="pp_description"></p> \
<a class="pp_close" href="#">Close</a> \
<div class="pp_nav"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
<p class="currentTextHolder">0/0</p> \
<a href="#" class="pp_arrow_next">Next</a> \
</div> \
</div> \
</div> \
</div> \
</div> \
</div> \
</div> \
<div class="pp_bottom"> \
<div class="pp_left"></div> \
<div class="pp_middle"></div> \
<div class="pp_right"></div> \
</div> \
</div> \
<div class="pp_overlay"></div>',
gallery_markup: '<div class="pp_gallery"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
<ul> \
{gallery} \
</ul> \
<a href="#" class="pp_arrow_next">Next</a> \
</div>',
image_markup: '<img id="fullResImage" src="" />',
flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',
iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
inline_markup: '<div class="pp_inline clearfix">{content}</div>',
custom_markup: ''
}, pp_settings);
// Global variables accessible only by prettyPhoto
var matchedObjects = this, percentBased = false, correctSizes, pp_open,
// prettyPhoto container specific
pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth,
// Window size
windowHeight = $(window).height(), windowWidth = $(window).width(),
// Global elements
pp_slideshow;
doresize = true, scroll_pos = _get_scroll();
// Window/Keyboard events
$(window).unbind('resize').resize(function(){ _center_overlay(); _resize_overlay(); });
if(pp_settings.keyboard_shortcuts) {
$(document).unbind('keydown').keydown(function(e){
if(typeof $pp_pic_holder != 'undefined'){
if($pp_pic_holder.is(':visible')){
switch(e.keyCode){
case 37:
$.prettyPhoto.changePage('previous');
break;
case 39:
$.prettyPhoto.changePage('next');
break;
case 27:
if(!settings.modal)
$.prettyPhoto.close();
break;
};
return false;
};
};
});
}
/**
* Initialize prettyPhoto.
*/
$.prettyPhoto.initialize = function() {
settings = pp_settings;
if($.browser.msie && parseInt($.browser.version) == 6) settings.theme = "light_square"; // Fallback to a supported theme for IE6
_buildOverlay(this); // Build the overlay {this} being the caller
if(settings.allow_resize)
$(window).scroll(function(){ _center_overlay(); });
_center_overlay();
set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned
$.prettyPhoto.open();
return false;
}
/**
* Opens the prettyPhoto modal box.
* @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths.
* @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles.
* @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions.
*/
$.prettyPhoto.open = function() {
if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables
settings = pp_settings;
if($.browser.msie && $.browser.version == 6) settings.theme = "light_square"; // Fallback to a supported theme for IE6
_buildOverlay(this); // Build the overlay {this} being the caller
pp_images = $.makeArray(arguments[0]);
pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray("");
pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray("");
isSet = (pp_images.length > 1) ? true : false;
set_position = 0;
}
if($.browser.msie && $.browser.version == 6) $('select').css('visibility','hidden'); // To fix the bug with IE select boxes
if(settings.hideflash) $('object,embed').css('visibility','hidden'); // Hide the flash
_checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images.
$('.pp_loaderIcon').show();
// Fade the content in
if($ppt.is(':hidden')) $ppt.css('opacity',0).show();
$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);
// Display the current position
$pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size());
// Set the description
$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));
// Set the title
(settings.show_title && pp_titles[set_position] != "") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html('&nbsp;');
// Get the dimensions
movie_width = ( parseFloat(grab_param('width',pp_images[set_position])) ) ? grab_param('width',pp_images[set_position]) : settings.default_width.toString();
movie_height = ( parseFloat(grab_param('height',pp_images[set_position])) ) ? grab_param('height',pp_images[set_position]) : settings.default_height.toString();
// If the size is % based, calculate according to window dimensions
if(movie_width.indexOf('%') != -1 || movie_height.indexOf('%') != -1){
movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150);
movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150);
percentBased = true;
}else{
percentBased = false;
}
// Fade the holder
$pp_pic_holder.fadeIn(function(){
imgPreloader = "";
// Inject the proper content
switch(_getFileType(pp_images[set_position])){
case 'image':
imgPreloader = new Image();
// Preload the neighbour images
nextImage = new Image();
if(isSet && set_position > $(pp_images).size()) nextImage.src = pp_images[set_position + 1];
prevImage = new Image();
if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1];
$pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup;
$pp_pic_holder.find('#fullResImage').attr('src',pp_images[set_position]);
imgPreloader.onload = function(){
// Fit item to viewport
correctSizes = _fitToViewport(imgPreloader.width,imgPreloader.height);
_showContent();
};
imgPreloader.onerror = function(){
alert('Image cannot be loaded. Make sure the path is correct and image exist.');
$.prettyPhoto.close();
};
imgPreloader.src = pp_images[set_position];
break;
case 'youtube':
correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
movie = 'http://www.youtube.com/v/'+grab_param('v',pp_images[set_position]);
if(settings.autoplay) movie += "&autoplay=1";
toInject = settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
break;
case 'vimeo':
correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
movie_id = pp_images[set_position];
var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)/;
var match = movie_id.match(regExp);
movie = 'http://player.vimeo.com/video/'+ match[2] +'?title=0&amp;byline=0&amp;portrait=0';
if(settings.autoplay) movie += "&autoplay=1;";
vimeo_width = correctSizes['width'] + '/embed/?moog_width='+ correctSizes['width'];
toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,correctSizes['height']).replace(/{path}/g,movie);
break;
case 'quicktime':
correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
correctSizes['height']+=15; correctSizes['contentHeight']+=15; correctSizes['containerHeight']+=15; // Add space for the control bar
toInject = settings.quicktime_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);
break;
case 'flash':
correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
flash_vars = pp_images[set_position];
flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length);
filename = pp_images[set_position];
filename = filename.substring(0,filename.indexOf('?'));
toInject = settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);
break;
case 'iframe':
correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
frame_url = pp_images[set_position];
frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
toInject = settings.iframe_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{path}/g,frame_url);
break;
case 'custom':
correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
toInject = settings.custom_markup;
break;
case 'inline':
// to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
myClone = $(pp_images[set_position]).clone().css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline clearfix"></div></div>').appendTo($('body'));
correctSizes = _fitToViewport($(myClone).width(),$(myClone).height());
$(myClone).remove();
toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());
break;
};
if(!imgPreloader){
$pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
// Show content
_showContent();
};
});
return false;
};
/**
* Change page in the prettyPhoto modal box
* @param direction {String} Direction of the paging, previous or next.
*/
$.prettyPhoto.changePage = function(direction){
currentGalleryPage = 0;
if(direction == 'previous') {
set_position--;
if (set_position < 0){
set_position = 0;
return;
};
}else if(direction == 'next'){
set_position++;
if(set_position > $(pp_images).size()-1) {
set_position = 0;
}
}else{
set_position=direction;
};
if(!doresize) doresize = true; // Allow the resizing of the images
$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');
_hideContent(function(){ $.prettyPhoto.open(); });
};
/**
* Change gallery page in the prettyPhoto modal box
* @param direction {String} Direction of the paging, previous or next.
*/
$.prettyPhoto.changeGalleryPage = function(direction){
if(direction=='next'){
currentGalleryPage ++;
if(currentGalleryPage > totalPage){
currentGalleryPage = 0;
};
}else if(direction=='previous'){
currentGalleryPage --;
if(currentGalleryPage < 0){
currentGalleryPage = totalPage;
};
}else{
currentGalleryPage = direction;
};
// Slide the pages, if we're on the last page, find out how many items we need to slide. To make sure we don't have an empty space.
itemsToSlide = (currentGalleryPage == totalPage) ? pp_images.length - ((totalPage) * itemsPerPage) : itemsPerPage;
$pp_pic_holder.find('.pp_gallery li').each(function(i){
$(this).animate({
'left': (i * itemWidth) - ((itemsToSlide * itemWidth) * currentGalleryPage)
});
});
};
/**
* Start the slideshow...
*/
$.prettyPhoto.startSlideshow = function(){
if(typeof pp_slideshow == 'undefined'){
$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){
$.prettyPhoto.stopSlideshow();
return false;
});
pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow);
}else{
$.prettyPhoto.changePage('next');
};
}
/**
* Stop the slideshow...
*/
$.prettyPhoto.stopSlideshow = function(){
$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){
$.prettyPhoto.startSlideshow();
return false;
});
clearInterval(pp_slideshow);
pp_slideshow=undefined;
}
/**
* Closes prettyPhoto.
*/
$.prettyPhoto.close = function(){
clearInterval(pp_slideshow);
$pp_pic_holder.stop().find('object,embed').css('visibility','hidden');
$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); });
$pp_overlay.fadeOut(settings.animation_speed, function(){
if($.browser.msie && $.browser.version == 6) $('select').css('visibility','visible'); // To fix the bug with IE select boxes
if(settings.hideflash) $('object,embed').css('visibility','visible'); // Show the flash
$(this).remove(); // No more need for the prettyPhoto markup
$(window).unbind('scroll');
settings.callback();
doresize = true;
pp_open = false;
delete settings;
});
};
/**
* Set the proper sizes on the containers and animate the content in.
*/
_showContent = function(){
$('.pp_loaderIcon').hide();
$ppt.fadeTo(settings.animation_speed,1);
// Calculate the opened top position of the pic holder
projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (correctSizes['containerHeight']/2));
if(projectedTop < 0) projectedTop = 0;
// Resize the content holder
$pp_pic_holder.find('.pp_content').animate({'height':correctSizes['contentHeight']},settings.animation_speed);
// Resize picture the holder
$pp_pic_holder.animate({
'top': projectedTop,
'left': (windowWidth/2) - (correctSizes['containerWidth']/2),
'width': correctSizes['containerWidth']
},settings.animation_speed,function(){
$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(correctSizes['height']).width(correctSizes['width']);
$pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content
// Show the nav
if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); }
if(correctSizes['resized']) $('a.pp_expand,a.pp_contract').fadeIn(settings.animation_speed); // Fade the resizing link if the image is resized
if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow();
settings.changepicturecallback(); // Callback!
pp_open = true;
});
_insert_gallery();
};
/**
* Hide the content...DUH!
*/
function _hideContent(callback){
// Fade out the current picture
$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');
$pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){
$('.pp_loaderIcon').show();
callback();
});
};
/**
* Check the item position in the gallery array, hide or show the navigation links
* @param setCount {integer} The total number of items in the set
*/
function _checkPosition(setCount){
// If at the end, hide the next link
if(set_position == setCount-1) {
$pp_pic_holder.find('a.pp_next').css('visibility','hidden');
$pp_pic_holder.find('a.pp_next').addClass('disabled').unbind('click');
}else{
$pp_pic_holder.find('a.pp_next').css('visibility','visible');
$pp_pic_holder.find('a.pp_next.disabled').removeClass('disabled').bind('click',function(){
$.prettyPhoto.changePage('next');
return false;
});
};
// If at the beginning, hide the previous link
if(set_position == 0) {
$pp_pic_holder
.find('a.pp_previous')
.css('visibility','hidden')
.addClass('disabled')
.unbind('click');
}else{
$pp_pic_holder.find('a.pp_previous.disabled')
.css('visibility','visible')
.removeClass('disabled')
.bind('click',function(){
$.prettyPhoto.changePage('previous');
return false;
});
};
(setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set.
};
/**
* Resize the item dimensions if it's bigger than the viewport
* @param width {integer} Width of the item to be opened
* @param height {integer} Height of the item to be opened
* @return An array containin the "fitted" dimensions
*/
function _fitToViewport(width,height){
resized = false;
_getDimensions(width,height);
// Define them in case there's no resize needed
imageWidth = width, imageHeight = height;
if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) {
resized = true, fitting = false;
while (!fitting){
if((pp_containerWidth > windowWidth)){
imageWidth = (windowWidth - 200);
imageHeight = (height/width) * imageWidth;
}else if((pp_containerHeight > windowHeight)){
imageHeight = (windowHeight - 200);
imageWidth = (width/height) * imageHeight;
}else{
fitting = true;
};
pp_containerHeight = imageHeight, pp_containerWidth = imageWidth;
};
_getDimensions(imageWidth,imageHeight);
};
return {
width:Math.floor(imageWidth),
height:Math.floor(imageHeight),
containerHeight:Math.floor(pp_containerHeight),
containerWidth:Math.floor(pp_containerWidth) + 40, // 40 behind the side padding
contentHeight:Math.floor(pp_contentHeight),
contentWidth:Math.floor(pp_contentWidth),
resized:resized
};
};
/**
* Get the containers dimensions according to the item size
* @param width {integer} Width of the item to be opened
* @param height {integer} Height of the item to be opened
*/
function _getDimensions(width,height){
width = parseFloat(width);
height = parseFloat(height);
// Get the details height, to do so, I need to clone it since it's invisible
$pp_details = $pp_pic_holder.find('.pp_details');
$pp_details.width(width);
detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
$pp_details = $pp_details.clone().appendTo($('body')).css({
'position':'absolute',
'top':-10000
});
detailsHeight += $pp_details.height();
detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details
if($.browser.msie && $.browser.version==7) detailsHeight+=8;
$pp_details.remove();
// Get the container size, to resize the holder to the right dimensions
pp_contentHeight = height + detailsHeight;
pp_contentWidth = width;
pp_containerHeight = pp_contentHeight + $ppt.height() + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height();
pp_containerWidth = width;
}
function _getFileType(itemSrc){
if (itemSrc.match(/youtube\.com\/watch/i)) {
return 'youtube';
}else if (itemSrc.match(/vimeo\.com/i)) {
return 'vimeo';
}else if(itemSrc.indexOf('.mov') != -1){
return 'quicktime';
}else if(itemSrc.indexOf('.swf') != -1){
return 'flash';
}else if(itemSrc.indexOf('iframe') != -1){
return 'iframe';
}else if(itemSrc.indexOf('custom') != -1){
return 'custom';
}else if(itemSrc.substr(0,1) == '#'){
return 'inline';
}else{
return 'image';
};
};
function _center_overlay(){
if(doresize && typeof $pp_pic_holder != 'undefined') {
scroll_pos = _get_scroll();
titleHeight = $ppt.height(), contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width();
projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2);
$pp_pic_holder.css({
'top': projectedTop,
'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2)
});
};
};
function _get_scroll(){
if (self.pageYOffset) {
return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
} else if (document.body) {// all other Explorers
return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
};
};
function _resize_overlay() {
windowHeight = $(window).height(), windowWidth = $(window).width();
if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height());
};
function _insert_gallery(){
if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") {
itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
navWidth = (settings.theme == "facebook") ? 58 : 38; // Define the arrow width depending on the theme
itemsPerPage = Math.floor((correctSizes['containerWidth'] - 100 - navWidth) / itemWidth);
itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length;
totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1;
// Hide the nav in the case there's no need for links
if(totalPage == 0){
navWidth = 0; // No nav means no width!
$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').hide();
}else{
$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').show();
};
galleryWidth = itemsPerPage * itemWidth + navWidth;
// Set the proper width to the gallery items
$pp_pic_holder.find('.pp_gallery')
.width(galleryWidth)
.css('margin-left',-(galleryWidth/2));
$pp_pic_holder
.find('.pp_gallery ul')
.width(itemsPerPage * itemWidth)
.find('li.selected')
.removeClass('selected');
goToPage = (Math.floor(set_position/itemsPerPage) <= totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage;
if(itemsPerPage) {
$pp_pic_holder.find('.pp_gallery').hide().show().removeClass('disabled');
}else{
$pp_pic_holder.find('.pp_gallery').hide().addClass('disabled');
}
$.prettyPhoto.changeGalleryPage(goToPage);
$pp_pic_holder
.find('.pp_gallery ul li:eq('+set_position+')')
.addClass('selected');
}else{
$pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave');
$pp_pic_holder.find('.pp_gallery').hide();
}
}
function _buildOverlay(caller){
// Find out if the picture is part of a set
theRel = $(caller).attr('rel');
galleryRegExp = /\[(?:.*)\]/;
isSet = (galleryRegExp.exec(theRel)) ? true : false;
// Put the SRCs, TITLEs, ALTs into an array.
pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(caller).attr('href'));
pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(caller).find('img').attr('alt'));
pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr('rel').indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(caller).attr('title'));
$('body').append(settings.markup); // Inject the markup
$pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors
// Inject the inline gallery!
if(isSet && settings.overlay_gallery) {
currentGalleryPage = 0;
toInject = "";
for (var i=0; i < pp_images.length; i++) {
var regex = new RegExp("(.*?)\.(jpg|jpeg|png|gif)$");
var results = regex.exec( pp_images[i] );
if(!results){
classname = 'default';
}else{
classname = '';
}
toInject += "<li class='"+classname+"'><a href='#'><img src='" + pp_images[i] + "' width='50' alt='' /></a></li>";
};
toInject = settings.gallery_markup.replace(/{gallery}/g,toInject);
$pp_pic_holder.find('#pp_full_res').after(toInject);
$pp_pic_holder.find('.pp_gallery .pp_arrow_next').click(function(){
$.prettyPhoto.changeGalleryPage('next');
$.prettyPhoto.stopSlideshow();
return false;
});
$pp_pic_holder.find('.pp_gallery .pp_arrow_previous').click(function(){
$.prettyPhoto.changeGalleryPage('previous');
$.prettyPhoto.stopSlideshow();
return false;
});
$pp_pic_holder.find('.pp_content').hover(
function(){
$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();
},
function(){
$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();
});
itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin.
$pp_pic_holder.find('.pp_gallery ul li').each(function(i){
$(this).css({
'position':'absolute',
'left': i * itemWidth
});
$(this).find('a').unbind('click').click(function(){
$.prettyPhoto.changePage(i);
$.prettyPhoto.stopSlideshow();
return false;
});
});
};
// Inject the play/pause if it's a slideshow
if(settings.slideshow){
$pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
$pp_pic_holder.find('.pp_nav .pp_play').click(function(){
$.prettyPhoto.startSlideshow();
return false;
});
}
$pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme
$pp_overlay
.css({
'opacity':0,
'height':$(document).height(),
'width':$(document).width()
})
.bind('click',function(){
if(!settings.modal) $.prettyPhoto.close();
});
$('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; });
$('a.pp_expand').bind('click',function(e){
// Expand the image
if($(this).hasClass('pp_expand')){
$(this).removeClass('pp_expand').addClass('pp_contract');
doresize = false;
}else{
$(this).removeClass('pp_contract').addClass('pp_expand');
doresize = true;
};
_hideContent(function(){ $.prettyPhoto.open(); });
return false;
});
$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){
$.prettyPhoto.changePage('previous');
$.prettyPhoto.stopSlideshow();
return false;
});
$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){
$.prettyPhoto.changePage('next');
$.prettyPhoto.stopSlideshow();
return false;
});
_center_overlay(); // Center it
};
return this.unbind('click').click($.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
};
function grab_param(name,url){
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url );
return ( results == null ) ? "" : results[1];
}
})(jQuery);

109
static/js/tipsy.js Normal file
View File

@ -0,0 +1,109 @@
/***************************************************
SOCIAL ICON HOVERS
***************************************************/
(function($) {
$.fn.tipsy = function(options) {
options = $.extend({}, $.fn.tipsy.defaults, options);
return this.each(function() {
var opts = $.fn.tipsy.elementOptions(this, options);
$(this).hover(function() {
$.data(this, 'cancel.tipsy', true);
var tip = $.data(this, 'active.tipsy');
if (!tip) {
tip = $('<div class="tipsy"><div class="tipsy-inner"/></div>');
tip.css({position: 'absolute', zIndex: 100000});
$.data(this, 'active.tipsy', tip);
}
if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') {
$(this).attr('original-title', $(this).attr('title') || '').removeAttr('title');
}
var title;
if (typeof opts.title == 'string') {
title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title);
} else if (typeof opts.title == 'function') {
title = opts.title.call(this);
}
tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback);
var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});
tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity
tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;
var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity;
switch (gravity.charAt(0)) {
case 'n':
tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');
break;
case 's':
tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south');
break;
case 'e':
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');
break;
case 'w':
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');
break;
}
if (opts.fade) {
tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 1.0});
} else {
tip.css({visibility: 'visible'});
}
}, function() {
$.data(this, 'cancel.tipsy', false);
var self = this;
setTimeout(function() {
if ($.data(this, 'cancel.tipsy')) return;
var tip = $.data(self, 'active.tipsy');
if (opts.fade) {
tip.stop().fadeOut(function() { $(this).remove(); });
} else {
tip.remove();
}
}, 100);
});
});
};
// Overwrite this method to provide options on a per-element basis.
// For example, you could store the gravity in a 'tipsy-gravity' attribute:
// return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
// (remember - do not modify 'options' in place!)
$.fn.tipsy.elementOptions = function(ele, options) {
return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
};
$.fn.tipsy.defaults = {
fade: false,
fallback: '',
gravity: 'n',
html: false,
title: 'title'
};
$.fn.tipsy.autoNS = function() {
return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
};
$.fn.tipsy.autoWE = function() {
return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
};
})(jQuery);

169
static/js/twitter.js Normal file
View File

@ -0,0 +1,169 @@
/***************************************************
TWITTER FEED
***************************************************/
(function($) {
$.fn.tweet = function(o){
var s = {
username: ["seaofclouds"], // [string] required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"]
list: null, //[string] optional name of list belonging to username
avatar_size: null, // [integer] height and width of avatar if displayed (48px max)
count: 3, // [integer] how many tweets to display?
intro_text: null, // [string] do you want text BEFORE your your tweets?
outro_text: null, // [string] do you want text AFTER your tweets?
join_text: null, // [string] optional text in between date and tweet, try setting to "auto"
auto_join_text_default: "i said,", // [string] auto text for non verb: "i said" bullocks
auto_join_text_ed: "i", // [string] auto text for past tense: "i" surfed
auto_join_text_ing: "i am", // [string] auto tense for present tense: "i was" surfing
auto_join_text_reply: "i replied to", // [string] auto tense for replies: "i replied to" @someone "with"
auto_join_text_url: "i was looking at", // [string] auto tense for urls: "i was looking at" http:...
loading_text: null, // [string] optional loading text, displayed while tweets load
query: null // [string] optional search query
};
if(o) $.extend(s, o);
$.fn.extend({
linkUrl: function() {
var returning = [];
var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
this.each(function() {
returning.push(this.replace(regexp,"<a href=\"$1\">$1</a>"));
});
return $(returning);
},
linkUser: function() {
var returning = [];
var regexp = /[\@]+([A-Za-z0-9-_]+)/gi;
this.each(function() {
returning.push(this.replace(regexp,"<a href=\"http://twitter.com/$1\">@$1</a>"));
});
return $(returning);
},
linkHash: function() {
var returning = [];
var regexp = /(?:^| )[\#]+([A-Za-z0-9-_]+)/gi;
this.each(function() {
returning.push(this.replace(regexp, ' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from='+s.username.join("%2BOR%2B")+'">#$1</a>'));
});
return $(returning);
},
capAwesome: function() {
var returning = [];
this.each(function() {
returning.push(this.replace(/\b(awesome)\b/gi, '<span class="awesome">$1</span>'));
});
return $(returning);
},
capEpic: function() {
var returning = [];
this.each(function() {
returning.push(this.replace(/\b(epic)\b/gi, '<span class="epic">$1</span>'));
});
return $(returning);
},
makeHeart: function() {
var returning = [];
this.each(function() {
returning.push(this.replace(/(&lt;)+[3]/gi, "<tt class='heart'>&#x2665;</tt>"));
});
return $(returning);
}
});
function parse_date(date_str) {
// The non-search twitter APIs return inconsistently-formatted dates, which Date.parse
// cannot handle in IE. We therefore perform the following transformation:
// "Wed Apr 29 08:53:31 +0000 2009" => "Wed, Apr 29 2009 08:53:31 +0000"
return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
}
function relative_time(time_value) {
var parsed_date = parse_date(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
var pluralize = function (singular, n) {
return '' + n + ' ' + singular + (n == 1 ? '' : 's');
};
if(delta < 60) {
return 'less than a minute ago';
} else if(delta < (60*60)) {
return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago';
} else if(delta < (24*60*60)) {
return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago';
} else {
return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago';
}
}
function build_url() {
var proto = ('https:' == document.location.protocol ? 'https:' : 'http:');
if (s.list) {
return proto+"//api.twitter.com/1/"+s.username[0]+"/lists/"+s.list+"/statuses.json?per_page="+s.count+"&callback=?";
} else if (s.query == null && s.username.length == 1) {
return proto+'//api.twitter.com/1/statuses/user_timeline.json?screen_name='+s.username[0]+'&count='+s.count+'&include_rts=1&callback=?';
} else {
var query = (s.query || 'from:'+s.username.join(' OR from:'));
return proto+'//search.twitter.com/search.json?&q='+encodeURIComponent(query)+'&rpp='+s.count+'&callback=?';
}
}
return this.each(function(i, widget){
var list = $('<ul class="tweet_list">').appendTo(widget);
var intro = '<p class="tweet_intro">'+s.intro_text+'</p>';
var outro = '<p class="tweet_outro">'+s.outro_text+'</p>';
var loading = $('<p class="loading">'+s.loading_text+'</p>');
if(typeof(s.username) == "string"){
s.username = [s.username];
}
if (s.loading_text) $(widget).append(loading);
$.getJSON(build_url(), function(data){
if (s.loading_text) loading.remove();
if (s.intro_text) list.before(intro);
var tweets = (data.results || data);
$.each(tweets, function(i,item){
// auto join text based on verb tense and content
if (s.join_text == "auto") {
if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) {
var join_text = s.auto_join_text_reply;
} else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) {
var join_text = s.auto_join_text_url;
} else if (item.text.match(/^((\w+ed)|just) .*/im)) {
var join_text = s.auto_join_text_ed;
} else if (item.text.match(/^(\w*ing) .*/i)) {
var join_text = s.auto_join_text_ing;
} else {
var join_text = s.auto_join_text_default;
}
} else {
var join_text = s.join_text;
};
var from_user = item.from_user || item.user.screen_name;
var profile_image_url = item.profile_image_url || item.user.profile_image_url;
var join_template = '<span class="tweet_join"> '+join_text+' </span>';
var join = ((s.join_text) ? join_template : ' ');
var avatar_template = '<a class="tweet_avatar" href="http://twitter.com/'+from_user+'"><img src="'+profile_image_url+'" height="'+s.avatar_size+'" width="'+s.avatar_size+'" alt="'+from_user+'\'s avatar" title="'+from_user+'\'s avatar" border="0"/></a>';
var avatar = (s.avatar_size ? avatar_template : '');
var date = '<span class="tweet_time"><a href="http://twitter.com/'+from_user+'/statuses/'+item.id+'" title="view tweet on twitter">'+relative_time(item.created_at)+'</a></span>';
var text = '<span class="tweet_text">' +$([item.text]).linkUrl().linkUser().linkHash().makeHeart().capAwesome().capEpic()[0]+ '</span>';
// until we create a template option, arrange the items below to alter a tweet's display.
list.append('<li>' + avatar + date + join + text + '</li>');
list.children('li:first').addClass('tweet_first');
list.children('li:odd').addClass('tweet_even');
list.children('li:even').addClass('tweet_odd');
});
if (s.outro_text) list.after(outro);
$(widget).trigger("loaded").trigger((tweets.length == 0 ? "empty" : "full"));
});
});
};
})(jQuery);

438
templates/root.html Normal file
View File

@ -0,0 +1,438 @@
{% import random,string %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Slate - Landing Page</title>
<link href="/static/css/main.css" rel="stylesheet" type="text/css" />
<link href="/static/css/prettyPhoto.css" rel="stylesheet" type="text/css" />
<!-- JavaScript Files -->
<script src="/static/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/static/js/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>
<script src="/static/js/twitter.js" type="text/javascript" charset="utf-8"></script>
<script src="/static/js/tipsy.js" type="text/javascript" charset="utf-8"></script>
<!-- *************************************************************************
********************* THIS IS THE PRETTY PHOTO JS **************************
************************************************************************** -->
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$("#wrapper a[rel^='prettyPhoto']").prettyPhoto({animationSpeed:'slow',theme:'facebook',slideshow:5000, autoplay_slideshow: true});
});
</script>
<!-- *************************************************************************
*****************TWITTER FEED CHANGE THE USERNAME HERE! ********************
************************************************************************** -->
<script type='text/javascript'>
$(document).ready(function(){
$(".tweet").tweet({
username: "robohash",
join_text: "auto",
avatar_size: 0,
count: 1,
auto_join_text_default: "we said,",
auto_join_text_ed: "we",
auto_join_text_ing: "we were",
auto_join_text_reply: "we replied to",
auto_join_text_url: "we were checking out",
loading_text: "loading tweets..."
});
});
</script>
<!-- *************************************************************************
************************* SCROLL TO TOP SCRIPT *****************************
************************************************************************** -->
<script type='text/javascript'>
$(document).ready(function(){
$(".scroll").click(function(event){
//prevent the default action for the click event
event.preventDefault();
//get the full url - like mysitecom/index.htm#home
var full_url = this.href;
//split the url by # and get the anchor target name - home in mysitecom/index.htm#home
var parts = full_url.split("#");
var trgt = parts[1];
//get the top offset of the target anchor
var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;
//goto that anchor by setting the body scroll top to anchor top
$('html, body').animate({scrollTop:target_top}, 800);
});
});
</script>
</head>
<body>
<!-- *************************************************************************
************************* TIPSY SCRIPT LEAVE HERE! *************************
************************************************************************** -->
<script type='text/javascript'>
$(function() {
$('#example-1').tipsy();
$('#north').tipsy({gravity: 'n'});
$('#south').tipsy({gravity: 's'});
$('#east').tipsy({gravity: 'e'});
$('#west').tipsy({gravity: 'w'});
$('#auto-gravity').tipsy({gravity: $.fn.tipsy.autoNS});
$('.fade').tipsy({fade: true});
$('#example-custom-attribute').tipsy({title: 'id'});
$('#example-callback').tipsy({title: function() { return this.getAttribute('original-title').toUpperCase(); } });
$('#example-fallback').tipsy({fallback: "?" });
$('#example-html').tipsy({html: true });
});
</script>
<!-- *************************************************************************
****************************** HEADER SECTION ******************************
************************************************************************** -->
<!-- start of header full width-->
<div id="header_fullwidth">
<!-- start of header-->
<div id="header">
<!-- start of top logo -->
<div id="top_logo">
<img src="/static/img/top_logo.png" width="375" height="151" alt="logo" id="toc"/></div><!-- end of top logo -->
</div><!-- end of header-->
</div><!-- end of header full width-->
<!-- *************************************************************************
****************************** MAIN PAGE WRAPPER ***************************
************************************************************************** -->
<!-- start of page wrapper -->
<div id="wrapper">
<!-- *************************************************************************
****************************** INTRO SECTION *******************************
************************************************************************** -->
<!-- start of content section -->
<div class="intro_section">
<h1>Generate Unique images from any text </h1>
<p class="intro_text">Robohash is a easy web service that makes it easy to provide unique, robot/alien/monster/whatever images for any text.<br>
Put in any text, such as IP address, email, filename, userid, or whatever else you like, and get back a pretty image for your site. <br><br> With hundreds of millions of variations, Robohash is the among the leading robot-based hashing tools on the web. </p>
</div><!-- end of content section -->
<!-- *************************************************************************
****************************** IPAD SECTION ******************************
************************************************************************** -->
<!-- start of content section -->
<div class="content_section">
<!-- start of left content section -->
<div class="left_content">
<img src="/{{ip}}.png" alt="You!" class="left" />
</div><!-- end of left content section -->
<!-- start of right content section -->
<div class="right_content">
<div class="section_title">How cool is this?</div>
<p>That guy to your left there? He was specially generated <i>Just for you</i>.<br>
Try on your phone, and I bet you get someone different! </p>
<p><a href="#" title="Buy today while we have 20% off!" class="fade"><img src="/static/img/buy_button.png" width="328" height="54" alt="buy now" /></a></p>
</div><!-- end of right content section -->
</div><!-- end of content section -->
<div class="clear"></div>
<!-- *************************************************************************
****************************** QUOTE SECTION *******************************
************************************************************************** -->
<!-- start of quotes wrapper -->
<div class="quotes_wrapper">
<!-- start of left quote -->
<div class="left_quote">
<img src="/static/img/star.png" width="33" height="31" alt="1 star" /><img src="/static/img/star.png" width="33" height="31" alt="1 star" /><img src="/static/img/star.png" width="33" height="31" alt="1 star" /><img src="/static/img/star.png" width="33" height="31" alt="1 star" /><img src="/static/img/star.png" width="33" height="31" alt="1 star" />
<br />
<span class="large_quote">"Eliminates sources of Human Error."</span>
<br />
<span class="small_quote">Dr. Chandra, RobotCrunch</span>
</div><!-- end of left quote -->
<!-- start of right quote -->
<div class="right_quote">
<img src="/static/img/indented_star.png" width="27" height="25" alt="1 star" /><img src="/static/img/indented_star.png" width="27" height="25" alt="1 star" /><img src="/static/img/indented_star.png" width="27" height="25" alt="1 star" /><img src="/static/img/indented_star.png" width="27" height="25" alt="1 star" /><img src="/static/img/indented_star.png" width="27" height="25" alt="1 star" />
<br />
<span class="large_quote">"Klaatu barada nikto!"</span>
<br />
<span class="small_quote">Gort's Web Emporium</span>
</div><!-- end of right quote -->
</div><!-- end of quotes wrapper -->
<div class="hr"></div>
<!-- *************************************************************************
****************************** GALLERY SECTION *****************************
************************************************************************** -->
<!-- start of content section -->
<div class="content_section">
<div class="section_title">Here are five Robots, Randomly generated, Just for you!</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. </p>
<ul class="gallery">
{% set c1 = '/'.join(random.choice(string.ascii_uppercase + string.digits) for x in range(5)) + ".png" %}
{% set c2 = '/'.join(random.choice(string.ascii_uppercase + string.digits) for x in range(5)) + "1.png" %}
{% set c3 = '/'.join(random.choice(string.ascii_uppercase + string.digits) for x in range(5)) + "2.png" %}
{% set c4 = '/'.join(random.choice(string.ascii_uppercase + string.digits) for x in range(5)) + "3.png" %}
{% set c5 = '/'.join(random.choice(string.ascii_uppercase + string.digits) for x in range(5)) + "4.png" %}
<li><a href="{{c1}}" rel="prettyPhoto[gallery1]" title="This character is awesome, and so are you." class="fade"><img src="{{c1}}" width="154" height="101" alt="Some great title" /></a></li>
<li><a href="{{c2}}" rel="prettyPhoto[gallery1]" title="I think he thinks you're cute." class="fade"><img src="{{c2}}" width="154" height="101" alt="Some great title" /></a></li>
<li><a href="{{c3}}" rel="prettyPhoto[gallery1]" title="Any robot you don't click on, we dismantle." class="fade"><img src="{{c3}}" width="154" height="101" alt="Some great title" /></a></li>
<li><a href="{{c4}}" rel="prettyPhoto[gallery1]" title="Robot tears taste like candy." class="fade"><img src="{{c4}}" width="154" height="101" alt="Some great title" /></a></li>
<li><a href="{{c5}}" rel="prettyPhoto[gallery1]" title="01010010010011110100001001001111010101000101001100100001!" class="fade"><img src="{{c5}}" width="154" height="101" alt="Some great title" /></a></li>
</ul>
</div><!-- end of content section -->
<div class="hr"></div>
<!-- *************************************************************************
****************************** BENEFITS SECTION ****************************
************************************************************************** -->
<!-- start of content section -->
<div class="content_section">
<div class="section_title">Robohashes are awesome.</div>
<!-- start of left content section -->
<div class="left_content">
<!-- ********** BENEFITS ITEM 1 ********** -->
<!-- start of benefit item -->
<div class="benefit">
<img src="/static/img/star_icon.jpg" width="73" height="72" alt="Super Easy to use" class="left"/>
<!-- start of benefit right -->
<div class="benefit_right">
<span class="benefit_header">Super Easy</span>
<p>Anytime you need a Robohash, just embed <br> &ltimg src="http://robohash.org/YOUR-TEXT.png"&gt<br>
</p>
</div><!-- end of benefit right -->
</div><!-- end of benefit item -->
<!-- ********** BENEFITS ITEM 2 ********** -->
<!-- start of benefit item -->
<div class="benefit">
<img src="/static/img/report_icon.jpg" width="73" height="72" alt="Supported Formats" class="left"/>
<!-- start of benefit right -->
<div class="benefit_right">
<span class="benefit_header">Styles of Robot</span>
<p>Want a JPG instead? Fine. Want it over HTTPS? FINE! Want it as a bitmap? I think you're nutty. But fine. Just change the URL to request in any format you want.</p>
</div><!-- end of benefit right -->
</div><!-- end of benefit item -->
<!-- ********** BENEFITS ITEM 3 ********** -->
<!-- start of benefit item -->
<div class="benefit">
<img src="/static/img/tut_icon.jpg" width="73" height="72" alt="Very infrequent murderous rampages." class="left"/>
<!-- start of benefit right -->
<div class="benefit_right">
<span class="benefit_header">Very Infrequent Rampages</span>
<p>Due to Robot caching modules and CDN usage, our robots stay speedy, and only rarely go on murderous rampages. That's a Fact!</p>
</div><!-- end of benefit right -->
</div><!-- end of benefit item -->
</div><!-- end of left content section -->
<!-- start of right content section -->
<div class="right_content">
<!-- ********** BENEFITS ITEM 1 ********** -->
<!-- start of benefit item -->
<div class="benefit">
<img src="/static/img/share_icon.jpg" width="73" height="72" alt="3 classes to choose from" class="left"/>
<!-- start of benefit right -->
<div class="benefit_right">
<span class="benefit_header">Multiple designs</span>
<p>Want robots from a specific set? Use Robohash.org/Collection1/whatever.png. <br>Try out Collection1, Collection2, Collection3, see which best decorate your site.</p>
</div><!-- end of benefit right -->
</div><!-- end of benefit item -->
<!-- ********** BENEFITS ITEM 2 ********** -->
<!-- start of benefit item -->
<div class="benefit">
<img src="/static/img/usability_icon.jpg" width="73" height="72" alt="Robots on Vacation" class="left"/>
<!-- start of benefit right -->
<div class="benefit_right">
<span class="benefit_header">Vacationing Robots</span>
<p>Our robots like to travel. If you append ?background=true to your URL, our robots will appear with a random background picture from their travels. </p>
</div><!-- end of benefit right -->
</div><!-- end of benefit item -->
<!-- ********** BENEFITS ITEM 3 ********** -->
<!-- start of benefit item -->
<div class="benefit">
<img src="/static/img/usability_icon.jpg" width="73" height="72" alt="Robotic Values" class="left"/>
<!-- start of benefit right -->
<div class="benefit_right">
<span class="benefit_header">Robotic Value</span>
<p>Robohash.org robots believe in Family, Warmth, and killing-all-humans. To that end, we provide this service for free <sup><a href="#smallprint" class='fade'>*</a></sup>. </p>
</div><!-- end of benefit right -->
</div><!-- end of benefit item -->
</div><!-- end of right content section -->
</div><!-- end of content section -->
<div class="hr"></div>
<a id="smallprint">
<!-- start of content section -->
<div class="content_section">
<div class="section_title">Everyone needs Robots!</div>
RoboHash.org is here because Robots are funny, and because I needed the algorithm/art anyway for a Super-Awesome new forum I'm working on.<br>
You should email me - <a href="mailto:colin@robohash.org"> colin@robohash.org</a>
If the bandwidth gets crazy, I might add a [Robohash.org] banner to the bottom of the image. But it'd be super-tasteful.<br>
</div><!-- end of content section -->
<div class="hr"></div>
</a>
<!-- *************************************************************************
****************************** FOOTER SECTION ******************************
************************************************************************** -->
<!-- start of footer wrapper -->
<div id="footer_wrapper">
<!-- start of footer container -->
<div id="footer_container">
<!-- start of footer left -->
<div id="footer_left"> <a href="#top" class="scroll"><img src="bottom_logo.png" width="140" height="55" alt="logo" /></a>
</div><!-- end of footer left -->
<!-- start of footer right -->
<div id="footer_right">
<span class="footer_heading">Twitter</span>&nbsp;&nbsp;<span class="follow"><a href="http://www.twitter.org/robohash" class="fade" title="Clicking on this will replace your cat with a robot.">Follow Us</a></span>
<div class="tweet"></div>
</div><!-- end of footer right -->
</div><!-- end of footer container -->
</div><!-- end of footer wrapper -->
</body>
</html>

View File

@ -0,0 +1,32 @@
<!-- *************************************************************************
****************************** VIDEO SECTION *******************************
************************************************************************** -->
<!-- start of content section -->
<div class="content_section">
<!-- start of left content section -->
<div class="left_content">
<div class="section_title">LOOK A VIDEO... nice!</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra.</p>
<p><a href="http://www.youtube.com/watch?v=d1_JBMrrYw8" rel="prettyPhoto" title="Go ahead and click to view our awesome video!"><img src="/static/img/video_link.jpg" alt="click to view video" width="429" height="98" /></a></p>
<p><a href="#" title="Buy today while we have 20% off!" class="fade"><img src="/static/img/buy_button.png" width="328" height="54" alt="buy now" /></a></p>
</div><!-- end of left content section -->
<!-- start of right content section -->
<div class="right_content">
<img src="/static/img/imac_iphone.jpg" alt="mac and iphone" width="426" height="374" class="right" />
</div><!-- end of right content section -->
</div><!-- end of content section -->
<div class="hr"></div>

View File

@ -75,7 +75,10 @@ class Robohash(object):
class MainHandler(tornado.web.RequestHandler):
def get(self):
ip = self.request.remote_ip
self.write(self.render_string('templates/root.html',ip=ip))
class ImgHandler(tornado.web.RequestHandler):
def get(self,string=None):
@ -90,6 +93,8 @@ class ImgHandler(tornado.web.RequestHandler):
#Change to a usuable format
if string.endswith(('.png','.gif','.jpg','bmp','im','jpeg','pcx','ppm','tiff','xbm')):
ext = string[string.rfind('.') +1 :len(string)]
if ext == '.jpg':
ext = '.jpeg'
else:
ext = "png"
self.set_header("Content-Type", "image/" + ext)
@ -100,15 +105,19 @@ class ImgHandler(tornado.web.RequestHandler):
for png in hashlist:
img = Image.open(png)
robohash.paste(img,(0,0),img)
if ext == 'bmp':
#Flatten bmps
r, g, b, a = robohash.split()
robohash = Image.merge("RGB", (r, g, b))
robohash.save(self,format=ext)
# self.write("Running in Random mode:<br>")
# self.write("<img src='/images/" + string + "'>")
application = tornado.web.Application([
(r"/images/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(os.path.dirname(__file__),
"static/images")}),
(r"/static/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(os.path.dirname(__file__),
"static/")}),
(r"/", ImgHandler),
(r"/", MainHandler),
(r"/(.*)", ImgHandler),
])