diff --git a/QubesOS-Checklist.md b/QubesOS-Checklist.md new file mode 100644 index 0000000..93fbe6d --- /dev/null +++ b/QubesOS-Checklist.md @@ -0,0 +1,98 @@ +# Qubes OS Checklist # + +1. `qubes-dom0-update` + +## Fedora Template ## + +1. `sudo yum update` + +For general coding: + + sudo yum install ruby fish vim git mercurial svn gcc gcc-c++ genkey keychain + sudo chsh user + /usr/bin/fish + +For transmet dev work: + + sudo yum install postgresql postgresql-contrib postgresql-server + +For Markdown work: + + sudo yum install Perl-Digest-MD5 retext + +## Firefox in VMs## + +1. ublock-origin +2. HTTPS everywhere +3. Switch search to DuckDuckGo + +## Postgresql in VMs ## + +Sourced from [bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html](http://bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html) + +Local backup [references/bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html](references/bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html) + +Create persistant storage for Postgresql + + cd /rw + sudo mkdir -p var/pgsql/data + sudo chown postgres:postgres var/pgsql/data + sudo chmod 700 var/pgsql/data + sudo mkdir -p var/pgsql/backups + sudo chown postgres:postgres var/pgsql/backups + sudo chmod 700 var/pgsql/backups + +Initializing the database + + sudo su + rm -rf /var/lib/pgsql + ln -s /rw/var/pgsql /var/lib/pgsql + postgresql-setup initdb + exit + +Configuring the database cluster for local app access + + sudo su - postgres + vi /var/lib/pgsql/data/pg_hba.conf + host all all 127.0.0.1/32 md5 + host all all ::1/128 md5 + +Configuring a database database (example transmet) + + sudo systemctl start postgresql + sudo -s -H -u postgres + /usr/bin/createuser -S -P -E transmet + /usr/bin/createdb --owner transmet --encoding utf8 transmet + +Preparing for a reboot + + sudo vi config/rc.local + #!/bin/bash + rm -rf /var/lib/pgsql + ln -s /rw/var/pgsql /var/lib/pgsql + /usr/bin/systemctl enable postgresql & + /usr/bin/systemctl start postgresql & + sudo chmod u+x config/rc.local + +## Go Development VM ## + +0. Setup keychain + +1. Get go from [golang.org](https://golang.org/) and place it in ~/go + +2. Set shell paths in ~/.config/fish/config.fish + + set -xU GOROOT /home/user/go + set -xU GOPATH /home/user/src/go + set -U fish_user_paths /home/user/go/bin /home/user/src/go/bin + +### Eclipse for Go setup ### + +1. Get eclipse (and add ~ `/home/user/eclipse/java-mars/eclipse` to the fish path) +2. Install eclipse plugins for: + 1. goeclipse + 2. WTP (web tools platform) + 3. egit + 4. TM Terminal +3. Configure goeclipse and have it run commands to get oracle and gocode + diff --git a/references/qubes-postgresql/apis.google.com/js/plusone.js b/references/qubes-postgresql/apis.google.com/js/plusone.js new file mode 100644 index 0000000..fbdfd02 --- /dev/null +++ b/references/qubes-postgresql/apis.google.com/js/plusone.js @@ -0,0 +1,47 @@ +var gapi=window.gapi=window.gapi||{};gapi._bs=new Date().getTime();(function(){var aa=function(a,b,c){return a.call.apply(a.bind,arguments)},ba=function(a,b,c){if(!a)throw Error();if(2/g,ka=/"/g,la=/'/g,ma=function(a){return String(a).replace(ha,"&").replace(ia,"<").replace(ja,">").replace(ka,""").replace(la,"'")},w=function(){var a;if((a=Object.create)&& +ea.test(a))a=a(null);else{a={};for(var b in a)a[b]=void 0}return a},y=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},z=function(a){if(ea.test(Object.keys))return Object.keys(a);var b=[],c;for(c in a)y(a,c)&&b.push(c);return b},A=function(a,b){a=a||{};for(var c in a)y(a,c)&&(b[c]=a[c])},na=function(a){return function(){n.setTimeout(a,0)}},B=function(a,b){if(!a)throw Error(b||"");},C=v(n,"gapi",{});var D=function(a,b,c){var d=new RegExp("([#].*&|[#])"+b+"=([^&#]*)","g");b=new RegExp("([?#].*&|[?#])"+b+"=([^&#]*)","g");if(a=a&&(d.exec(a)||b.exec(a)))try{c=decodeURIComponent(a[2])}catch(e){}return c},oa=/^([^?#]*)(\?([^#]*))?(\#(.*))?$/,qa=function(a){a=a.match(oa);var b=w();b.J=a[1];b.query=a[3]?[a[3]]:[];b.o=a[5]?[a[5]]:[];return b},ra=function(a){return a.J+(0fa.call(b,e)&&c.push(e)}return c},$a=function(a){"loading"!=p.readyState?Za(a):p.write("<"+Xa+' src="'+encodeURI(a)+'">")},Za=function(a){var b=p.createElement(Xa);b.setAttribute("src",a);b.async="true";(a=p.getElementsByTagName(Xa)[0])?a.parentNode.insertBefore(b,a):(p.head||p.body||p.documentElement).appendChild(b)},ab=function(a,b){var c=b&&b._c;if(c)for(var d=0;de;e++)d[e]=b.charCodeAt(c)<<24|b.charCodeAt(c+1)<<16|b.charCodeAt(c+2)<<8|b.charCodeAt(c+3),c+=4;else for(e=0;16>e;e++)d[e]=b[c]<<24|b[c+1]<<16|b[c+2]<<8|b[c+3],c+=4;for(e=16;80>e;e++){var f=d[e-3]^d[e-8]^d[e-14]^d[e-16];d[e]=(f<<1|f>>>31)&4294967295}b=a.b[0];c=a.b[1];for(var g=a.b[2],k=a.b[3],h=a.b[4],l,e=0;80>e;e++)40>e?20>e?(f=k^c&(g^k),l=1518500249):(f=c^g^k,l=1859775393):60>e?(f=c&g|k&(c|g),l=2400959708):(f=c^g^k, +l=3395469782),f=(b<<5|b>>>27)+f+h+l+d[e]&4294967295,h=k,k=g,g=(c<<30|c>>>2)&4294967295,c=b,b=f;a.b[0]=a.b[0]+b&4294967295;a.b[1]=a.b[1]+c&4294967295;a.b[2]=a.b[2]+g&4294967295;a.b[3]=a.b[3]+k&4294967295;a.b[4]=a.b[4]+h&4294967295}; +V.prototype.update=function(a,b){if(null!=a){void 0===b&&(b=a.length);for(var c=b-this.c,d=0,e=this.B,f=this.j;dthis.j?this.update(this.v,56-this.j):this.update(this.v,this.c-(this.j-56));for(var c=this.c-1;56<=c;c--)this.B[c]=b&255,b/=256;Ab(this,this.B);for(c=b=0;5>c;c++)for(var d=24;0<=d;d-=8)a[b]=this.b[c]>>d&255,++b;return a};var Bb=function(){this.F=new V};Bb.prototype.reset=function(){this.F.reset()};var Cb=n.crypto,Db=!1,Eb=0,Fb=0,Gb=1,Hb=0,Ib="",Jb=function(a){a=a||n.event;var b=a.screenX+a.clientX<<16,b=b+(a.screenY+a.clientY),b=(new Date).getTime()%1E6*b;Gb=Gb*b%Hb;0'))}catch(l){}finally{f|| +(f=a.createElement("iframe"),g&&(f.onload=function(){f.onload=null;g.call(this)},Qb(d)))}for(var h in c)a=c[h],"style"===h&&"object"===typeof a?A(a,f.style):Sb[h]||f.setAttribute(h,String(a));(h=e&&e.beforeNode||null)||e&&e.dontclear||Aa(b);b.insertBefore(f,h);f=h?h.previousSibling:b.lastChild;c.allowtransparency&&(f.allowTransparency=!0);return f};var Wb=/^:[\w]+$/,Xb=/:([a-zA-Z_]+):/g,Yb=function(){var a=xb()||"0",b=yb(),c;c=xb(void 0)||a;var d=yb(void 0),e="";c&&(e+="u/"+c+"/");d&&(e+="b/"+d+"/");c=e||null;(e=(d=!1===T("isLoggedIn"))?"_/im/":"")&&(c="");var f=T("iframes/:socialhost:"),g=T("iframes/:im_socialhost:");return ub={socialhost:f,ctx_socialhost:d?g:f,session_index:a,session_delegate:b,session_prefix:c,im_prefix:e}},Zb=function(a,b){return Yb()[b]||""},$b=function(a){return function(b,c){return a?Yb()[c]||a[c]||"":Yb()[c]||""}};var ac={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},bc=function(a){var b,c,d;b=/[\"\\\x00-\x1f\x7f-\x9f]/g;if(void 0!==a){switch(typeof a){case "string":return b.test(a)?'"'+a.replace(b,function(a){var b=ac[a];if(b)return b;b=a.charCodeAt();return"\\u00"+Math.floor(b/16).toString(16)+(b%16).toString(16)})+'"':'"'+a+'"';case "number":return isFinite(a)?String(a):"null";case "boolean":case "null":return String(a);case "object":if(!a)return"null";b=[];if("number"=== +typeof a.length&&!a.propertyIsEnumerable("length")){d=a.length;for(c=0;c=c&&(f.ic="1");h=/^#|^fr-/;c={};for(var l in f)y(f,l)&&h.test(l)&&(c[l.replace(h,"")]=f[l],delete f[l]);l="q"==T("iframes/"+a+"/params/si")?f: +c;h=mb();for(var m in h)!y(h,m)||y(f,m)||y(c,m)||(l[m]=h[m]);m=[].concat(mc);(l=T("iframes/"+a+"/methods"))&&"object"===typeof l&&ea.test(l.push)&&(m=m.concat(l));for(var q in b)y(b,q)&&/^on/.test(q)&&("plus"!=a||"onconnect"!=q)&&(m.push(q),delete f[q]);delete f.callback;c._methods=m.join(",");return ta(d,f,c)},pc=["style","data-gapiscan"],rc=function(a){for(var b=w(),c=0!=a.nodeName.toLowerCase().indexOf("g:"),d=0,e=a.attributes.length;dtype"]=a;A(c,b);f=h;c=l;h=e||{};b=h.attributes||{};B(!h.allowPost||!b.onload,"onload is not supported by post iframe");e=b=f;Wb.test(b)&&(e=T("iframes/"+e.substring(1)+"/url"),B(!!e,"Unknown iframe url config for - "+b));f=ua(p,e.replace(Xb,Zb));b=c.ownerDocument||p;l=0;do e=h.id||["I",Tb++,"_",(new Date).getTime()].join("");while(b.getElementById(e)&&5>++l);B(5>l,"Error creating iframe id");l={};var m={};b.documentMode&&9>b.documentMode&& +(l.hostiemode=b.documentMode);A(h.queryParams||{},l);A(h.fragmentParams||{},m);var q=h.connectWithQueryParams?l:m,u=h.pfname,t=w();t.id=e;t.parent=b.location.protocol+"//"+b.location.host;var x=D(b.location.href,"parent"),u=u||"";!u&&x&&(x=D(b.location.href,"id",""),u=D(b.location.href,"pfname",""),u=x?u+"/"+x:"");t.pfname=u;A(t,q);(t=D(f,"rpctoken")||l.rpctoken||m.rpctoken)||(t=q.rpctoken=h.rpctoken||String(Math.round(1E8*(Db?Mb():Lb()))));h.rpctoken=t;t=b.location.href;q=w();(x=D(t,"_bsh",H.bsh))&& +(q._bsh=x);(t=I(t))&&(q.jsh=t);h.hintInFragment?A(q,m):A(q,l);f=ta(f,l,m,h.paramsSerializer);m=w();A(Rb,m);A(h.attributes,m);m.name=m.id=e;m.src=f;h.eurl=f;if((h||{}).allowPost&&2E3a.i)a=e,b=d}});return{W:a,A:b}};var $c=function(a){if(0!==a.indexOf("GCSC"))return null;var b={N:!1};a=a.substr(4);if(!a)return b;var c=a.charAt(0);a=a.substr(1);var d=a.lastIndexOf("_");if(-1==d)return b;var e=Yc(a.substr(d+1));if(null==e)return b;a=a.substring(0,d);if("_"!==a.charAt(0))return b;d="E"===c&&e.g;return!d&&("U"!==c||e.g)||d&&!Wc?b:{N:!0,g:d,ca:a.substr(1),domain:e.domain,i:e.i}},ad=function(a){if(!a)return[];a=a.split("=");return a[1]?a[1].split("|"):[]},bd=function(a){a=a.split(":");return{C:a[0].split("=")[1],ba:ad(a[1]), +ea:ad(a[2]),da:ad(a[3])}},cd=function(){var a=Zc(),b=a.W,a=a.A;if(null!==a){var c;Xc.iterate(function(a,d){var e=$c(a);e&&e.N&&e.g==b.g&&e.i==b.i&&(c=d)});if(c){var d=bd(c),e=d&&d.ba[Number(a)],d=d&&d.C;if(e)return{A:a,aa:e,C:d}}}return null};var Z=function(a){this.K=a};Z.prototype.l=0;Z.prototype.G=2;Z.prototype.K=null;Z.prototype.D=!1;Z.prototype.T=function(){this.D||(this.l=0,this.D=!0,this.R())};Z.prototype.R=function(){this.D&&(this.K()?this.l=this.G:this.l=Math.min(2*(this.l||this.G),120),window.setTimeout(ca(this.R,this),1E3*this.l))};for(var dd=0;64>dd;++dd);var ed=null,qb=function(){return H.oa=!0},rb=function(){H.oa=!0;var a=cd();(a=a&&a.A)&&hb("googleapis.config/sessionIndex",a);ed||(ed=v(H,"ss",new Z(fd)));a=ed;a.T&&a.T()},fd=function(){var a=cd(),b=a&&a.aa||null,c=a&&a.C;P("auth",{callback:function(){var a=n.gapi.auth,e={client_id:c,session_state:b};a.checkSessionState(e,function(b){var c=e.session_state,k=T("isLoggedIn");b=T("debug/forceIm")?!1:c&&b||!c&&!b;if(k=k!=b)hb("isLoggedIn",b),rb(),tc(),b||((b=a.signOut)?b():(b=a.setToken)&&b(null));b= +mb();var h=T("savedUserState"),c=a._guss(b.cookiepolicy),h=h!=c&&"undefined"!=typeof h;hb("savedUserState",c);(k||h)&&nb(b)&&!T("disableRealtimeCallback")&&a._pimf(b,!0)})}});return!0};K("bs0",!0,window.gapi._bs);K("bs1",!0);delete window.gapi._bs;})(); +gapi.load("plusone",{callback:window["gapi_onload"],_c:{"jsl":{"ci":{"deviceType":"desktop","oauth-flow":{"authUrl":"https://accounts.google.com/o/oauth2/auth","proxyUrl":"https://accounts.google.com/o/oauth2/postmessageRelay","disableOpt":true,"idpIframeUrl":"https://accounts.google.com/o/oauth2/iframe","usegapi":false},"debug":{"reportExceptionRate":0.05,"forceIm":false,"rethrowException":false,"host":"https://apis.google.com"},"lexps":[81,97,100,122,124,45,30,79,127],"enableMultilogin":true,"googleapis.config":{"auth":{"useFirstPartyAuthV2":false}},"isPlusUser":false,"inline":{"css":1},"disableRealtimeCallback":false,"drive_share":{"skipInitCommand":true},"csi":{"rate":0.01},"report":{"apiRate":{"gapi\\.signin\\..*":0.05,"gapi\\.signin2\\..*":0.05},"apis":["iframes\\..*","gadgets\\..*","gapi\\.appcirclepicker\\..*","gapi\\.auth\\..*","gapi\\.client\\..*"],"rate":0.001,"host":"https://apis.google.com"},"client":{"headers":{"request":["Accept","Accept-Language","Authorization","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-MD5","Content-Range","Content-Type","Date","GData-Version","Host","If-Match","If-Modified-Since","If-None-Match","If-Unmodified-Since","Origin","OriginToken","Pragma","Range","Slug","Transfer-Encoding","Want-Digest","X-ClientDetails","X-GData-Client","X-GData-Key","X-Goog-AuthUser","X-Goog-PageId","X-Goog-Encode-Response-If-Executable","X-Goog-Correlation-Id","X-Goog-Request-Info","X-Goog-Experiments","x-goog-iam-authority-selector","x-goog-iam-authorization-token","X-Goog-Spatula","X-Goog-Upload-Command","X-Goog-Upload-Content-Disposition","X-Goog-Upload-Content-Length","X-Goog-Upload-Content-Type","X-Goog-Upload-File-Name","X-Goog-Upload-Offset","X-Goog-Upload-Protocol","X-Goog-Visitor-Id","X-HTTP-Method-Override","X-JavaScript-User-Agent","X-Pan-Versionid","X-Origin","X-Referer","X-Upload-Content-Length","X-Upload-Content-Type","X-Use-HTTP-Status-Code-Override","X-YouTube-VVT","X-YouTube-Page-CL","X-YouTube-Page-Timestamp"],"response":["Digest","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-MD5","Content-Range","Content-Type","Date","ETag","Expires","Last-Modified","Location","Pragma","Range","Server","Transfer-Encoding","WWW-Authenticate","Vary","Unzipped-Content-MD5","X-Goog-Generation","X-Goog-Metageneration","X-Goog-Safety-Content-Type","X-Goog-Safety-Encoding","X-Google-Trace","X-Goog-Upload-Chunk-Granularity","X-Goog-Upload-Control-URL","X-Goog-Upload-Size-Received","X-Goog-Upload-Status","X-Goog-Upload-URL","X-Goog-Diff-Download-Range","X-Goog-Hash","X-Goog-Updated-Authorization","X-Server-Object-Version","X-Guploader-Customer","X-Guploader-Upload-Result","X-Guploader-Uploadid"]},"rms":"migrated","cors":false},"isLoggedIn":false,"signInDeprecation":{"rate":0.0},"include_granted_scopes":true,"llang":"en","plus_layer":{"isEnabled":false},"iframes":{"youtube":{"params":{"location":["search","hash"]},"url":":socialhost:/:session_prefix:_/widget/render/youtube?usegapi\u003d1","methods":["scroll","openwindow"]},"ytsubscribe":{"url":"https://www.youtube.com/subscribe_embed?usegapi\u003d1"},"plus_circle":{"params":{"url":""},"url":":socialhost:/:session_prefix::se:_/widget/plus/circle?usegapi\u003d1"},"plus_share":{"params":{"url":""},"url":":socialhost:/:session_prefix::se:_/+1/sharebutton?plusShare\u003dtrue\u0026usegapi\u003d1"},"rbr_s":{"params":{"url":""},"url":":socialhost:/:session_prefix::se:_/widget/render/recobarsimplescroller"},"udc_webconsentflow":{"params":{"url":""},"url":"https://www.google.com/settings/webconsent?usegapi\u003d1"},":source:":"3p","blogger":{"params":{"location":["search","hash"]},"url":":socialhost:/:session_prefix:_/widget/render/blogger?usegapi\u003d1","methods":["scroll","openwindow"]},"evwidget":{"params":{"url":""},"url":":socialhost:/:session_prefix:_/events/widget?usegapi\u003d1"},":socialhost:":"https://apis.google.com","shortlists":{"url":""},"hangout":{"url":"https://talkgadget.google.com/:session_prefix:talkgadget/_/widget"},"plus_followers":{"params":{"url":""},"url":":socialhost:/_/im/_/widget/render/plus/followers?usegapi\u003d1"},"photocomments":{"url":":socialhost:/:session_prefix:_/widget/render/photocomments?usegapi\u003d1"},"post":{"params":{"url":""},"url":":socialhost:/:session_prefix::im_prefix:_/widget/render/post?usegapi\u003d1"},":gplus_url:":"https://plus.google.com","signin":{"params":{"url":""},"url":":socialhost:/:session_prefix:_/widget/render/signin?usegapi\u003d1","methods":["onauth"]},"rbr_i":{"params":{"url":""},"url":":socialhost:/:session_prefix::se:_/widget/render/recobarinvitation"},"share":{"url":":socialhost:/:session_prefix::im_prefix:_/widget/render/share?usegapi\u003d1"},"plusone":{"params":{"count":"","size":"","url":""},"url":":socialhost:/:session_prefix::se:_/+1/fastbutton?usegapi\u003d1"},"comments":{"params":{"location":["search","hash"]},"url":":socialhost:/:session_prefix:_/widget/render/comments?usegapi\u003d1","methods":["scroll","openwindow"]},":im_socialhost:":"https://plus.googleapis.com","backdrop":{"url":"https://clients3.google.com/cast/chromecast/home/widget/backdrop?usegapi\u003d1"},"visibility":{"params":{"url":""},"url":":socialhost:/:session_prefix:_/widget/render/visibility?usegapi\u003d1"},"autocomplete":{"params":{"url":""},"url":":socialhost:/:session_prefix:_/widget/render/autocomplete"},"additnow":{"url":"https://apis.google.com/additnow/additnow.html?usegapi\u003d1","methods":["launchurl"]},":signuphost:":"https://plus.google.com","appcirclepicker":{"url":":socialhost:/:session_prefix:_/widget/render/appcirclepicker"},"follow":{"url":":socialhost:/:session_prefix:_/widget/render/follow?usegapi\u003d1"},"community":{"url":":ctx_socialhost:/:session_prefix::im_prefix:_/widget/render/community?usegapi\u003d1"},"sharetoclassroom":{"url":"https://www.gstatic.com/classroom/sharewidget/widget_stable.html?usegapi\u003d1"},"ytshare":{"params":{"url":""},"url":":socialhost:/:session_prefix:_/widget/render/ytshare?usegapi\u003d1"},"plus":{"url":":socialhost:/:session_prefix:_/widget/render/badge?usegapi\u003d1"},"reportabuse":{"params":{"url":""},"url":":socialhost:/:session_prefix:_/widget/render/reportabuse?usegapi\u003d1"},"commentcount":{"url":":socialhost:/:session_prefix:_/widget/render/commentcount?usegapi\u003d1"},"configurator":{"url":":socialhost:/:session_prefix:_/plusbuttonconfigurator?usegapi\u003d1"},"zoomableimage":{"url":"https://ssl.gstatic.com/microscope/embed/"},"savetowallet":{"url":"https://clients5.google.com/s2w/o/savetowallet"},"person":{"url":":socialhost:/:session_prefix:_/widget/render/person?usegapi\u003d1"},"savetodrive":{"url":"https://drive.google.com/savetodrivebutton?usegapi\u003d1","methods":["save"]},"page":{"url":":socialhost:/:session_prefix:_/widget/render/page?usegapi\u003d1"},"card":{"url":":socialhost:/:session_prefix:_/hovercard/card"}}},"h":"m;/_/scs/apps-static/_/js/k\u003doz.gapi.en_GB.cJkIm0jUbF0.O/m\u003d__features__/am\u003dAQ/rt\u003dj/d\u003d1/t\u003dzcms/rs\u003dAGLTcCMfB6uTBe-eJT43Gy1rNo6w6uY2fA","u":"https://apis.google.com/js/plusone.js","hee":true,"fp":"459cb04dfc6e172aece6e799643434c476cfafbf","dpo":false},"platform":["additnow","backdrop","blogger","comments","commentcount","community","follow","page","person","photocomments","playreview","plus","plusone","post","reportabuse","savetodrive","savetowallet","shortlists","signin2","udc_webconsentflow","visibility","youtube","ytsubscribe","zoomableimage","hangout","sharetoclassroom"],"fp":"459cb04dfc6e172aece6e799643434c476cfafbf","annotation":["interactivepost","recobar","signin2","autocomplete","profile"],"bimodal":["signin","share"]}}); \ No newline at end of file diff --git a/references/qubes-postgresql/bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html b/references/qubes-postgresql/bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html new file mode 100644 index 0000000..e56f11a --- /dev/null +++ b/references/qubes-postgresql/bowabos.blogspot.co.uk/2013/12/how-to-set-up-jira-and-confluence-on.html @@ -0,0 +1,2133 @@ + + + + + + + + + + + + + + + + + +Bits Of Wood And Bits Of Strings: How-to set up Jira and Confluence on Fedora VM in Qubes OS + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+ +

Sunday, 1 December 2013

+ +
+ +
+
+ + + +

+How-to set up Jira and Confluence on Fedora VM in Qubes OS +

+
+
+
+
+This article describes how to set up Jira 6.1.4 and Confluence 5.3.4 (hosted on tomcat 7.0.42 (running on Java OpenJDK JRE 1.7.0_45) with PostgreSQL 9.2.5 as a database back-end and apache httpd 2.4.6 as a reversy proxy front-end with SSL) on Qubes OS v2 Beta 2 (Fedora 18)
+
+Audience: Unix/Web admin who are trying to set these services up on Fedora, Fedora on Qubes or who want to get familiar with how to set-up a service on a Qubes VM.
+Implementation time: If you are an old developer and know the value of copie/paste to avoid problems, it should take you between 1 and 2 hours.
+
+Jira and Confluence provide similar functionality to trac (bugs/issues tracking and wiki). It is free for open source projects. You however have to pay for a licence otherwise. There is a 30 days trial licence if you want to check it out before you buy. I am using the 2x $10 starter licence for 10 users and find such investment very valuable. Moreover for this licence, all benefits are going to the Room to Read charity, which promotes literacy and gender equality in the developing world.
+
+Qubes OS + is at the time of writing, to my view, one of the most secure Linux +based desktop operating system. It can run Linux and Windows guest +virtual machines and isolate VMs, networking, usb and graphical stacks +levering on Xen hypervisor. It also leverage on a templating system to +minimize the disk footprint of VMs based on the same template. It does +not support 3D graphical operations out of the box but advanced users +can set-up a second Video card and dedicate it to one of their VM. It is aimed to be used by IT security specialist on the go but it is also a very nice fit as a home desktop that you can leverage on to host services (file share, web site, etc...) more securely while browsing the dark net or the red district at the same time on the same hardware.
+This blog post is discussed in the Qubes user group.
+

+Target architecture

+

+Risk analysis

+The only information of value is the data in the database.
+
+If Apache is compromised, The attacker would be able to impersonate any active user, and at +some point be able to retrieve all the data in the database.
+If +Jira or Confluence +is compromised, the credentials to the database would therefore be +compromised as they have to be readable by the application daemon. Even if encrypted with a pass-phrase provided during boot time, a valid +session is present in memory.
+We are therefore for now going to run Apache, Jira, Confluence and PostgreSQL in the same VM.
+
+Note: Based on the information provided in this tutorial it would however be easy to split into a three tier model Apache, Jira/Confluence, PostgreSQL with two legs (Jira/PostgreSQL and Confluence/PostgreSQL).
+

+Methodology

+Qubes OS offers template VM which present its file system to other VM in read only mode and allow patching of fedora packages. We will therefore leverage as much as possible on this by using fedora packages whenever possible.
+In order to build and be able to test the various components as we stack them up, we will start with the far end by setting up the database, then Jira and Confluence and finally the reverse proxy which will sit in front.
+

+Preparing the Template

+

+Installing PostgreSQL

+Launch the terminal in the template.
+
    +
  • Click Application Menu (top left)
  • +
  • Select Template fedora-18-x64 / fedora-18-x64: Terminal
  • +
+Install the PostgreSQL Server by typing in the template's Terminal:
+
    +
  • sudo yum install postgresql-server
  • +
+

+Installing Tomcat

+Atlassian states that only Oracle +JRE is supported. I am going to take the risk of using OpenJDK instead as + I will have automatic update via fedora patches. I will also use the +Tomcat package provided by fedora for the same reasons.
+
+Note: If you want to use the Oracle JRE, do not install it in the template but in the app VM unless your are ready to patch it when required to ensure all your VMs use a patched version or if you are building a dedicated template.
+Let's install tomcat.
+
    +
  • sudo yum install tomcat
  • +
+ In my case this installs Tomcat 7.0.42 and will use OpenJDK Runtime Environment 1.7.0_45.
+
+Let's create the Jira and Confluence user.
+
    +
  • sudo /usr/sbin/useradd -r --comment "Account to run JIRA" --shell /bin/bash jira
  • +
  • sudo /usr/sbin/useradd -r --comment "Account to run Confluence" --shell /bin/bash confluence
  • +
+

+Installing Apache httpd

+Let's install httpd and make sure we can SSL enable it.
+
    +
  • sudo yum install httpd mod_ssl openssl
  • +
+In my case this installs httpd 2.4.6
+
+For these changes to be visible to the wiki VM, shutdown the template VM.
+
    +
  • sudo halt
  • +
+

+Preparing the Wiki VM

+

+Creating a Wiki VM

+In Qubes OS, this is trivial. In Qubes VM Manager:
+
    +
  • Select in the menu VM / Create AppVM
  • +
  • Give it the name wiki
  • +
  • Select the color blue
  • +
  • Launch the creation by pressing OK
  • +
+
+Note:  The attack surface of this VM is of medium size. However the threat is fairly small as I am planning on using this infrastructure only for personal use and will either access it within the same Qubes OS with a Disposable VM or possibly remotely after having connected to it via a reverse proxy hosted as a VM in my Qubes server with Client IP and Certificate validation and a Disposable VM Browser as a client. I have therefore used the blue color.
+

+Preparing the PostgreSQL databases

+
+

+Preparing the read-write partition

+In the read-write partition, let's first prepare a set of folders on +which we will deploy our data so that it survives a +reboot.
+
+In Wiki VM's Terminal:
+
    +
  • cd /rw
  • +
  • sudo mkdir -p var/pgsql/data
  • +
  • sudo chown postgres:postgres var/pgsql/data
  • +
  • sudo chmod 700 var/pgsql/data
  • +
  • sudo mkdir -p var/pgsql/backups
  • +
  • sudo chown postgres:postgres var/pgsql/backups
  • +
  • sudo chmod 700 var/pgsql/backups
  • +
+

+Initializing the database

+Let's initialize the database cluster.
+
+
    +
  • sudo su
  • +
  • rm -rf /var/lib/pgsql
  • +
  • ln -s /rw/var/pgsql /var/lib/pgsql
  • +
  • postgresql-setup initdb
  • +
  • exit
  • +
+

+Configuring the database cluster

+Let's make sure we can connect to the database cluster.
+
+
    +
  • sudo su - postgres
  • +
  • vi /var/lib/pgsql/data/pg_hba.conf
  • +
  • host confluence confluence 127.0.0.1/32 md5
  • +
  • host jira jira 127.0.0.1/32 md5
  • +
+
+
+Add the following lines toward the end of the file, below the IPv4 local connections.
+
+Note: If you wish to change the +port, or make the database listen to another address than the local loop + 127.0.0.1, you will need to edit pgsql/data/postgresql.conf and +change the address above in pgsql/data/pg_hba.conf.
+Once done exit from the posgres sudo session.
+
    +
  • exit
  • +
+
+
+

+Configuring the jira database

+ Let's create the jira database user and the database.
+
    +
  • sudo systemctl start postgresql
  • +
  • sudo -s -H -u postgres
  • +
  • /usr/bin/createuser -S -P -E jira
  • +
+Enter the password for the jira database user and take note of it. Once done exit from the posgres sudo session.
+
    +
  • /usr/bin/createdb --owner jira --encoding utf8 jira
  • +
+

+Configuring the confluence database

+Let's create the confluence database user and the database.
+
    +
  • /usr/bin/createuser -S -P -E confluence
  • +
+Enter the password for the confluence database user and take note of it. Once done exit from the posgres sudo session.
+
    +
  • /usr/bin/createdb --owner confluence --encoding utf8 confluence
  • +
  • exit
  • +
+

+Preparing for a reboot

+Let's now edit our rc.local script so that we set everything in place when the VM reboots. In Wiki VM's Terminal:
+
    +
  • sudo vi config/rc.local
  • +
  • #!/bin/bash
  • +
  • rm -rf /var/lib/pgsql
  • +
  • ln -s /rw/var/pgsql /var/lib/pgsql
  • +
  • /usr/bin/systemctl enable postgresql &
  • +
  • /usr/bin/systemctl start postgresql &
  • +
+Let's not forget to make this file executable
+
    +
  • sudo chmod u+x config/rc.local
  • +
+

+

+

+Testing the databases

+Stop the wiki VM.
+
    +
  • sudo halt
  • +
+
+Start the VM by opening its Terminal.
+Let's test our databases.
+
    +
  • sudo systemctl status postgresql
  • +
+This should give you a status of active (running).
+
+Try to connect to the Jira database.
+
    +
  • psql -U jira -h 127.0.0.1 -p 5432 -d jira
  • +
+
+Note: Exit the database by typing "\q" and pressing [Enter]
+Try to connect to the Confluence database.
+
    +
  • psql -U confluence -h 127.0.0.1 -p 5432 -d confluence
  • +
+Hopefully you are like me, all set for the next stage.
+

+Preparing the Jira Tomcat instance

+

+

+

+Preparing the read-write partition

+In the read-write partition, let's first prepare a set of folders on which we will deploy our application and data so that they survive a reboot.In Wiki VM's Terminal:
+
    +
  • cd /rw
  • +
  • sudo mkdir -p opt/jira
  • +
  • sudo mkdir -p var/log/jira
  • +
  • sudo mkdir -p var/jira
  • +
+

+Integrating with systemd

+Looking into systemd tomcat's service config +(/usr/lib/systemd/system/tomcat), it states that to run a new instance +of tomcat, we need to copy /etc/sysconfig/tomcat to /etc/sysconfig/jira +(jira being the name we want to give to this tomcat instance) and set +the variables we need. As the file will not be persisted in our Qubes +VM, let's prepare one that we will copy at boot time.
+
    +
  • sudo mkdir config/sysconfig
  • +
  • sudo vi config/sysconfig/jira
  • +
  • CATALINA_BASE="/opt/jira"
  • +
  • CATALINA_TMPDIR="/opt/jira/temp"
  • +
  • TOMCAT_USER="jira"
  • +
  • CATALINA_PID="/var/run/jira.pid"
  • +
+
    +
+
+Note: If you are new to linux a more natural text editor than vi can be used. nano is a good one... replace vi with nano in all instructions. You just have to know to use [Ctrl] + [x] to exit and save your file.
+
+We also have to provide a copy of /usr/lib/systemd/system/tomcat + for our service.
+
+Note: This copy needs to have SERVICE_NAME set prior to +launching the tomcat start-up script. As systemd mandate an absolute +path for the command to be executed, we are going to need to pass it via + a shell command.
+In Wiki VM's Terminal:
+
    +
  • sudo mkdir -p config/systemd/system
  • +
  • sudo cp /usr/lib/systemd/system/tomcat.service config/systemd/system/jira.service
  • +
+Let's modify the ExecStart, ExecStop, User and Group lines as follow:
+
    +
  • sudo vi config/systemd/system/jira.service
  • +
  • ExecStart=/bin/bash -c 'export SERVICE_NAME="jira"; /usr/sbin/tomcat-sysd start'
  • +
  • ExecStop=/bin/bash -c 'export SERVICE_NAME="jira"; /usr/sbin/tomcat-sysd stop'
  • +
  • User=jira
  • +
  • Group=jira
  • +
+
    +
+
    +
+

+Preparing CATALINA_BASE

+Let's prepare our CATALINA_BASE (/opt/jira), but we first need our jira account set-up.
+
    +
  • sudo chown jira:root var/log/jira
  • +
  • sudo chmod 770 var/log/jira
  • +
  • sudo chown jira:root var/jira
  • +
  • sudo chmod 770 var/jira
  • +
  • cd opt/jira
  • +
  • sudo mkdir -p conf/Catalina/localhost logs temp webapps work
  • +
  • sudo chown jira logs temp work
  • +
  • sudo chmod 770 logs temp work
  • +
+
+

+

+

+Preparing for a reboot

+Let's now edit our rc.local script so that we set everything in place when the VM reboots.
+
    +
  • cd /rw
  • +
  • sudo vi config/rc.local
  • +
+At the end of the file add the following:
+
    +
  • rmdir /opt
  • +
  • ln -s /rw/opt /opt
  • +
  • ln -s /rw/var/jira /var/jira
  • +
  • ln -s /rw/var/log/jira /var/log/jira
  • +
  • cp /rw/config/sysconfig/jira /etc/sysconfig/
  • +
  • cp /rw/config/systemd/system/jira.service /usr/lib/systemd/system/
  • +
  • touch /var/run/jira.pid
  • +
  • chown jira:jira /var/run/jira.pid
  • +
  • /usr/bin/systemctl enable jira &
  • +
  • /usr/bin/systemctl start jira &
  • +
+

+Preparing the Confluence Tomcat instance

+

+Preparing the read-write partition

+In the read-write partition, + let's first prepare a set of folders on which we will deploy our +application and data so that they survive a reboot.In Wiki VM's Terminal:
+
    +
  • sudo mkdir -p opt/confluence
  • +
  • sudo mkdir -p var/log/confluence
  • +
  • sudo mkdir -p var/confluence
  • +
+

+Integrating with systemd

+Looking into systemd tomcat's service config +(/usr/lib/systemd/system/tomcat), it states that to run a new instance +of tomcat, we need to copy /etc/sysconfig/tomcat to /etc/sysconfig/confluence +(confluence being the name we want to give to this tomcat instance) and set +the variables we need. As the file will not be persisted in our Qubes +VM, let's prepare one that we will copy at boot time.
+
    +
+
    +
  • sudo vi config/sysconfig/confluence
  • +
  • CATALINA_BASE="/opt/confluence"
  • +
  • CATALINA_TMPDIR="/opt/confluence/temp"
  • +
  • TOMCAT_USER="confluence"
  • +
  • CATALINA_PID="/var/run/confluence.pid"
  • +
+
    +
+We also have to provide a copy of /usr/lib/systemd/system/tomcat + for our service.
+
+Note: This copy needs to have SERVICE_NAME set prior to +launching the tomcat start-up script. As systemd mandate an absolute +path for the command to be executed, we are going to need to pass it via + a shell command.
+In Wiki VM's Terminal:
+
    +
  • sudo cp config/systemd/system/jira.service config/systemd/system/confluence.service
  • +
+Let's modify the ExecStart, ExecStop, User and Group lines as follow:
+
    +
+
    +
  • sudo vi config/systemd/system/confluence.service
  • +
  • ExecStart=/bin/bash -c 'export SERVICE_NAME="confluence"; /usr/sbin/tomcat-sysd start'
  • +
  • ExecStop=/bin/bash -c 'export SERVICE_NAME="confluence"; /usr/sbin/tomcat-sysd stop'
  • +
  • User=confluence
  • +
  • Group=confluence
  • +
+
    +
+

+Preparing CATALINA_BASE

+Let's prepare our CATALINA_BASE (/opt/confluence), but we first need our confluence account set-up.
+
    +
  • sudo chown confluence:root var/log/confluence
  • +
  • sudo chmod 770 var/log/confluence
  • +
  • sudo chown confluence:root var/confluence
  • +
  • sudo chmod 770 var/confluence
  • +
  • cd opt/confluence
  • +
  • sudo mkdir -p conf/Catalina/localhost logs temp webapps work
  • +
  • sudo chown confluence logs temp work
  • +
  • sudo chmod 770 logs temp work
  • +
+

+Preparing for a reboot

+Let's now edit our rc.local script so that we set everything in place when the VM reboots.
+
    +
  • cd /rw
  • +
  • sudo vi config/rc.local
  • +
+At the end of the file add the following:
+
    +
  • ln -s /rw/var/confluence /var/confluence
  • +
  • ln -s /rw/var/log/confluence /var/log/confluence
  • +
  • cp /rw/config/sysconfig/confluence /etc/sysconfig/
  • +
  • cp /rw/config/systemd/system/confluence.service /usr/lib/systemd/system/
  • +
  • touch /var/run/confluence.pid
  • +
  • chown confluence:confluence /var/run/confluence.pid
  • +
  • /usr/bin/systemctl enable confluence &
  • +
  • /usr/bin/systemctl start confluence &
  • +
+

+Installing Jira

+We have 2 potential way to proceed. Go with the WAR distribution and configure Tomcat based on Fedora basic settings or go with the standalone distribution and modify it to use our tomcat instance. I am going to fo with the second option as the editor (Atlassian) has already done a good job at configuring it, particularly in such a simple set up as the one I want to do.
+
+Note: In the background I + have looked at the differences between the two. I have used a tool to +remove html comments called XMLStarlet + using the command "xmlstarlet ed -d '//comment()' file.xml > file-clean.xml" and a very good graphical diff program called meld. The Atlassian files are as expected better one to use as a starting point with a few exceptions like conf/web.xml (which contains more recent mime types).
+

+Downloading the standalone distribution

+Go to Atlassian Jira download page
+
    +
  • Toward the bottom of the page toggle the "All JIRA Download Options"
  • +
  • Download the Linux tar.gz file
  • +
+

+Copying the tar.gz file to Wiki VM

+This  is documented in the Qubes OS user documentation page.
+
    +
  • In Firefox menu select Tools/Downloads.
  • +
  • Right-Click on atlassian-jira-<version>.tar.gz and select Open Containing Folder.
  • +
  • Right-Click on the file and select Scripts / Copy to other AppVM.
  • +
  • input wiki as the destination domain name.
  • +
  • Allow the transfer to happen by clicking Yes
  • +
+

+Install Jira in the read-write partition

+Let's expand our Jira distribution.
+
    +
  • cd
  • +
  • tar xzvf QubesIncoming/disp<X>/atlassian-jira-<version>.tar.gz
  • +
  • cd atlassian-jira-<version>-standalone
  • +
+Let's move into place the things we want.
+
    +
  • sudo mv conf/* /rw/opt/jira/conf
  • +
  • sudo chown -R root:root /rw/opt/jira/conf
  • +
  • sudo mv atlassian-jira /rw/opt/jira
  • +
  • sudo chown -R root:root /rw/opt/jira/atlassian-jira
  • +
  • sudo mv lib /rw/opt/jira
  • +
  • sudo chown -R root:root /rw/opt/jira/lib
  • +
  • sudo mv external-source /rw/opt/jira
  • +
  • sudo chown -R root:root /rw/opt/jira/external-source
  • +
  • sudo mv licenses /rw/opt/jira
  • +
  • sudo chown -R root:root /rw/opt/jira/licenses
  • +
  • sudo mv tomcat-docs /rw/opt/jira
  • +
  • sudo chown -R root:root /rw/opt/jira/tomcat-docs
  • +
+Let's make sure all parameters are past to the JVM. You can review this which is what was in bin/setenv.sh which builds up JAVA_OPTS
+
    +
  • sudo vi /rw/config/sysconfig/jira
  • +
+Add the following at the begining of the file:
+
    +
  • #
  • +
  • #  Occasionally Atlassian Support may recommend that you set some specific JVM a rguments.  You can use this variable below to do that.
  • +
  • #
  • +
  • JVM_SUPPORT_RECOMMENDED_ARGS=""
  • +
  •  
  • +
  • #
  • +
  • # The following 2 settings control the minimum and maximum given to the JIRA Jav a virtual machine.  In larger JIRA instances, the maximum amount will need to be increased.
  • +
  • #
  • +
  • JVM_MINIMUM_MEMORY="384m"
  • +
  • JVM_MAXIMUM_MEMORY="768m"
  • +
  •  
  • +
  • #
  • +
  • # The following are the required arguments for JIRA.
  • +
  • #
  • +
  • JVM_REQUIRED_ARGS="-Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -Dorg.dom4j.factory=com.atlassian.core.xml.InterningDocumentFactory"
  • +
  •  
  • +
  • # Perm Gen size needs to be increased if encountering OutOfMemoryError: PermGen problems. Specifying PermGen size is not valid on IBM JDKs
  • +
  • JIRA_MAX_PERM_SIZE=384m
  • +
+ You should have then this...
+
    +
  • CATALINA_BASE="/opt/jira"
  • +
  • CATALINA_TMPDIR="/opt/jira/temp"
  • +
  • TOMCAT_USER="jira"
  • +
  • CATALINA_PID="/var/run/jira.pid"
  • +
+Add the following at the end:
+
    +
  • #-----------------------------------------------------------------------------------
  • +
  • #
  • +
  • # In general don't make changes below here
  • +
  • #
  • +
  • #-----------------------------------------------------------------------------------
  • +
  • JVM_EXTRA_ARGS="-XX:+PrintGCDateStamps -XX:-OmitStackTraceInFastThrow"
  • +
  •  
  • +
  • JAVA_OPTS="-XX:MaxPermSize=${JIRA_MAX_PERM_SIZE} -Xms${JVM_MINIMUM_MEMORY} -Xmx${JVM_MAXIMUM_MEMORY} ${JAVA_OPTS} ${JVM_REQUIRED_ARGS} ${DISABLE_NOTIFICATIONS} ${JVM_SUPPORT_RECOMMENDED_ARGS} ${JVM_EXTRA_ARGS}
  • +
+ OK, let's clean the dust up.
+
    +
  • cd
  • +
  • rm -rf atlassian-jira-<version>-standalone
  • +
+
    +
+

+Set the Jira Home directory

+Let's set our JIRA Home Directory.
+
    +
  • sudo vi /rw/opt/jira/atlassian-jira/WEB-INF/classes/jira-application.properties
  • +
  • jira.home = /var/jira
  • +
+

+Fix the context

+There is a small bug (or relaxed configuration as it is a standalone +distrib) in the Atlassian package as the server.xml is referring to +catalina.home instead of catalina.base.
+
    +
  • sudo vi /rw/opt/jira/conf/server.xml
  • +
  • replace the docBase value from ${catalina.home} to ${catalina.base}
  • +
+Note: While you are at it, you may want to also change the ports the server is listening on.
+

+Prepare Jira for reverse proxy aware responses

+

+Set the context path

+
    +
  • sudo vi /rw/opt/jira/conf/server.xml
  • +
+Replace the following line:
+
    +
  • <Context path="" docBase="${catalina.base}/atlassian-jira" reloadable="false" useHttpOnly="true">
  • +
+With:
+
    +
  • <Context path="/jira" docBase="${catalina.base}/atlassian-jira" reloadable="false" useHttpOnly="true">
  • +
+

+Set the URL for redirection

+
    +
  •  sudo vi /rw/opt/jira/conf/server.xml
  • +
+Replace the following line:
+
    +
  • <Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true"/>
  • +
+With:
+
    +
  •  <Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" proxyName="www.example.com" proxyPort="443" scheme="https"/>
  • +
+Which set the name of the external URL, its port and protocol so that content generated by Tomcat contains links in the form https://www.example.com/<blah>. Obviously replace www.example.com with your server name.
+

+Installing Confluence

+

+Downloading the standalone distribution

+Go to Atlassian Confluence download page
+
    +
  • Download the Standalone Linux tar.gz file
  • +
+

+Copying the tar.gz file to Wiki VM

+This  is documented in the Qubes OS user documentation page.
+
    +
  • In Firefox menu select Tools/Downloads.
  • +
  • Right-Click on atlassian-confluence-<version>.tar.gz and select Open Containing Folder.
  • +
  • Right-Click on the file and select Scripts / Copy to other AppVM.
  • +
  • input wiki as the destination domain name.
  • +
  • Allow the transfer to happen by clicking Yes
  • +
+

+Install Confluence in the read-write partition

+Let's expand our Confluence distribution.
+
    +
  • cd
  • +
  • tar xzvf QubesIncoming/disp<X>/atlassian-confluence-<version>.tar.gz
  • +
  • cd atlassian-confluence-<version>
  • +
+Let's move into place the things we want.
+
    +
  • sudo mv conf/* /rw/opt/confluence/conf
  • +
  • sudo chown -R root:root /rw/opt/confluence/conf
  • +
  • sudo mv confluence /rw/opt/confluence
  • +
  • sudo chown -R root:root /rw/opt/confluence/confluence
  • +
  • sudo mv lib /rw/opt/confluence
  • +
  • sudo chown -R root:root /rw/opt/confluence/lib
  • +
  • sudo mv licenses /rw/opt/confluence
  • +
  • sudo chown -R root:root /rw/opt/confluence/licenses
  • +
+Let's make sure all parameters are past to the JVM. You can review this +which is what was in bin/setenv.sh which builds up JAVA_OPTS
+
    +
  •  sudo vi /rw/config/sysconfig/confluence
  • +
+Add the following at the end of the file:
+
    +
  • JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS -Djava.awt.headless=true "
  • +
+And clean the dust up.
+
    +
  • cd
  • +
  • rm -rf atlassian-confluence-<version>
  • +
+

+Set the Confluence Home directory

+Let's set our Confluence Home Directory.
+
    +
  • sudo vi /rw/opt/confluence/confluence/WEB-INF/classes/confluence-init.properties
  • +
  • confluence.home = /var/confluence
  • +
+

+Prepare Confluence for reverse proxy aware responses

+

+Set the context path

+
    +
  • sudo vi /rw/opt/confluence/conf/server.xml
  • +
+Replace the following line:
+
    +
  • <Context path="" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true">
  • +
+With:
+
    +
  • <Context path="/confluence" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true">
  • +
+

+Set the URL for redirection

+
    +
  •  sudo vi /rw/opt/jira/conf/server.xml
  • +
+Replace the following line:
+
    +
  • <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8090" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" URIEncoding="UTF-8"/>
  • +
+With:
+
    +
  • <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8090" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" URIEncoding="UTF-8" proxyName="www.example.com" proxyPort="443" scheme="https"/>
  • +
+Which + set the name of the external URL, its port and protocol so that content + generated by Tomcat contains links in the form +https://www.example.com/<blah>. Obviously replace www.example.com +with your server name.
+
+

+Preparing the reverse proxy

+In order to present both applications under the same web server and to map the ports to a default port, we are going to use mod_proxy and mod_proxy_http. For more information on how to set-up a more complex set-up you may want to look at the Atlassian page. We will not use mod_proxy_connect as we will decrypt the connection on our reverse proxy and forward the traffic unencrypted to tomcat.
+
+Note: If you are planning on hosting other web applications than Jira and Confluence, you may prefer to host the reverse proxy in a dedicated VM which will forward traffic to different web application back end VMs.
+Note2: This set-up does not provide caching due to the small expected number of users and the increased attack surface.
+

+

+

+Preparing the read-write partition

+In the read-write partition, + let's first prepare a set of folders on which we will deploy our +application and data so that they survive a reboot.In Wiki VM's Terminal:
+
    +
  • cd /rw
  • +
  • sudo mkdir -p config/httpd/conf
  • +
  • sudo mkdir -p config/httpd/conf.d
  • +
  • sudo mkdir -p config/httpd/conf.modules.d
  • +
+

+Configuring httpd

+Let's prepare our httpd.conf file.
+
    +
  • sudo cp /etc/httpd/conf/httpd.conf config/httpd/conf
  • +
  • sudo vi config/httpd/conf/httpd.conf
  • +
+
+
+Comment out the following line:
+
    +
  • Listen 80
  • +
+Change the following line:
+
    +
  • ServerAdmin root@localhost
  • +
+Add the following lines:
+
+
    +
  • ServerName www.example.com
  • +
+The proxy load module file /etc/httpd/conf.modules.d/00-proxy.conf is already loading everything.Let's prepare the associated conf file:
+
    +
+
    +
  • sudo vi config/httpd/conf.d/00-proxy.conf
  • +
  • ProxyRequests Off
  • +
  • ProxyPreserveHost On
  • +
  • <Proxy *>
  • +
  •     Order deny,allow
  • +
  •     Allow from all
  • +
  • </Proxy>
  • +
  •  
  • +
  • <Location /confluence>
  • +
  •     Order allow,deny
  • +
  •     Allow from all
  • +
  •     ProxyPass http://127.0.0.1:8090/confluence
  • +
  •     ProxyPassReverse http://127.0.0.1:8090/confluence
  • +
  •     SetEnv proxy-sendchunks 1
  • +
  •     SetEnv proxy-interim-response RFC
  • +
  •     SetEnv proxy-initial-not-pooled 1
  • +
  • </Location>
  • +
  •  
  • +
  • <Location /jira>
  • +
  •     Order allow,deny
  • +
  •     Allow from all
  • +
  •     ProxyPass http://127.0.0.1:8080/jira
  • +
  •     ProxyPassReverse http://127.0.0.1:8080/jira
  • +
  •     SetEnv proxy-sendchunks 1
  • +
  •     SetEnv proxy-interim-response RFC
  • +
  •     SetEnv proxy-initial-not-pooled 1
  • +
  • </Location>
  • +
+
+
+

+Configuring openssl

+Let's start by adjusting the SSL configuration file.
+
    +
  • sudo cp /etc/httpd/conf.d/ssl.conf config/httpd/conf.d
  • +
  • sudo vi config/httpd/conf.d/ssl.conf
  • +
  • SSLProtocol TLSv1.2
  • +
  • SSLCipherSuite ECDHE-ECDSA-AES128-SHA256:DHE-RSA-AES128-SHA
  • +
  • SSLHonorCipherOrder on
  • +
+To enable TLSv1.2 in Firefox:
+
    +
  • browse to "about:config"
  • +
  • accept the risk
  • +
  • search for tls and set security.tls.version.max=3
  • +
+
+
+/!\ Under construction /!\|!| Note: Road blocked.|!|
+\!/      After this sign     \!/
+
+Let's generate our private key. I will not get it signed as I do not have a fixed IP address and do not want to trust Certificates Authorities.
+
    +
  • sudo yum install crypto-utils
  • +
  • genkey www.example.com
  • +
+
+Note: I have used a 4096bits key without certificate request or passphrase.
+Note2: There is a bug in fedora broken by upstream package for self signed certificate (as reliant at the moment on md5).
+
+
+/!\ Under construction /!\|!| Note: Road blocked.|!|
+\!/      Before this sign     \!/
+
+

+Preparing for a reboot

+Let's now edit our rc.local script so that we set everything in place when the VM reboots.
+
    +
  • sudo vi config/rc.local
  • +
+At the end of the file add the following:
+
    +
  • mv /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.origin
  • +
  • cp /rw/config/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf
  • +
  • cp /rw/config/httpd/conf.d/00-proxy.conf /etc/httpd/conf.d
  • +
  • cp /rw/config/httpd/conf.d/ssl.conf /etc/httpd/conf.d
  • +
  • /usr/bin/systemctl enable httpd &
  • +
  • /usr/bin/systemctl start httpd &
  • +
+If you want to be able to access Jira and Confluence from another browser than the wiki VM one, add the following line where 10.137.2.x is the wiki VM's IPAddress of eth0 (ifconfig | grep -i ast) and y.y.y.y/z is the subnet you want to allow in.
+
    +
  • /usr/sbin/iptables -I INPUT 5 -j ACCEPT -d 10.137.2.x -s y.y.y.y/z -p tcp --dport 443 -m state --state NEW
  • +
+You need to have www.example.com configured in your DNS. If you prefer to do that later you can add the following line to allow you to continue the configuration via the wiki VM firewall without the DNS entry set.
+
+
    +
  • echo 10.137.2.x www.example.com >> /etc/hosts
  • +
+
+Note: becareful to have two superior sign so that the line is appended to the file.
+

+Testing the httpd service

+Stop the wiki VM.
+
    +
  • sudo halt
  • +
+Start the VM by opening its Firefox browser and browse to:
+
    +
  • https://www.example.com
  • +
+You should get a warning that "This Connection is Untrusted". This is because we have a self signed certificate.
+
    +
  • Click on I Understand the Risks
  • +
  • Add Exception...
  • +
  • Confirm Security Exception...
  • +
+You should see the Fedora Apache test page.
+
+Note: If you get a "Secure Connection Failed", remember that you have to enable TLSv1.2 in Firefox as mentioned above.
+

+Troubleshooting httpd

+
+
+If you have issues. Troubleshoot meticulously. Let's first do very basic check on the server side.
+

+Apache httpd service is up

+Check the service is started:
+
    +
  • sudo systemctl status httpd
  • +
+

+Apache httpd service is listening on the right port

+Check the service is listening on the right port (443)
+
    +
  • netstat -an | grep LIST | grep -v STREAM
  • +
+

+Browser proxy settings

+Your browser will use your browser proxy settings and either go direct or via proxy.
+

+DNS resolution

+If the browser is going via a proxy, the proxy will do the dns resolution. otherwise, the first thing your browser does is a dns query to the name you entered in the browser destination bar.
+
+Make sure you can resolve this name using a command line toolsuch as nslookup or dig.
+
+If it can't check you /etc/hosts file then your /etc/resolv.conf file where your dns server is defined.
+

+TCP Connection

+The next thing your browser (or proxy) will do is establish a TCP connection on port 443.This should give you a status of active (running).
+
+Make sure you can connect over TCP to the web server by issuing telnet 10.137.2.<x> 443. you should get a promt. If you don't, you can install a tool such as tcptraceroute to help identify where routing is broken or where a firewall is in the way.
+

+SSL Handshake

+If you have gone this far you should be OK unless there is a mismatch between the Protocol and Cipher supported by the web server and your browser. You can check the protocols you browser support by going to this Hannover's university web site.
+If you manage to connect you can view which cipher suite you used by looking in the httpd logs:
+
    +
  • sudo su
  • +
  • tail /var/log/httpd/ssl_request_log
  • +
  • exit
  • +
+
+

+Testing the Jira and Confluence tomcat instances

+Browse to Jira and Confluence:
+
    +
  • https://www.example.com/jira
  • +
  • https://www.example.com/confluence
  • +
+After a little time you should see the Jira Welcome page and the Confluence Setup Wizard page.
+

+Troubleshooting Jira and Confluence tomcat instances

+

+Jira tomcat instance is up

+Check the service is started:
+
    +
  • sudo systemctl status jira 
  • +
+In case of issues check the logs:
+
+
    +
  • sudo cat /opt/jira/logs/catalina.out
  • +
+

+Jira tomcat instance is visible through the reverse proxy

+Check that your request is hitting httpd:
+
    +
  • sudo su
  • +
  • tail /var/log/httpd/ssl_request_log
  • +
  • tail /var/log/httpd/ssl_access_log
  • +
  • tail /var/log/httpd/ssh_error_log
  • +
  • exit 
  • +
+Check that your request is hitting Jira tomcat instance:
+
    +
  • sudo su
  • +
  • tail /opt/jira/logs/access_log.<date>
  • +
  • exit
  • +
+The first you should look for is a 302 response for /jira redirecting you.
+Which should therefore be followed by another 302 response for /jira/ redirecting you again.
+Which should then be followed by a 200 response for /jira/secure/SetupDatabase!default.jspa.
+
+If you are missing the 302 to /jira/ you may have an incorrect Connector set-up in /opt/jira/conf/server.xml. Verify your proxyName, proxyPort and scheme values. They should be so that whatever the server is sending to the client allows the client to connect back.
+

+ Configuring Jira and Confluence

+
+
+

+Configuring Jira

+Open the wiki VM's Firefox browser and browse to:
+
    +
  • https://www.example.com/jira
  • +
  • Select the server Language.
  • +
  • Select My Own Database as the Database Connection
  • +
  • Select PostgreSQL as the Database Type
  • +
  • Input 127.0.0.1 as the Hostname
  • +
  • Input 5432 as the Port
  • +
  • Input jira as the Database
  • +
  • Input jira as the Username
  • +
  • Input the jira's database password as Password
  • +
  • Input public as the Schema
  • +
  • Click on Test Connection
  • +
  • Click on Next
  • +
+It will take some time (a couple of minutes for me) for the database and Jira to be set-up, be patient.
+
    +
  • Input an Application Title
  • +
  • Select the Mode
  • +
  • Verify the Base URL (https://www.example.com/jira)
  • +
+Note: I recommend you get the 10 users licences. The trial licence is for several hundreds of users, I suspect there is no issue in going for the 10 users licences later, but I haven't tested this.
+
+
    +
  • Select the I have a licence option
  • +
+Open a Disposable VM Firefox Browser and go to https://my.atlassian.com/ to retrive it.
+
+
    +
  • Copy the licence from the disposable VM to the wiki VM browser.
  • +
+After some time you will be prompted to enter the details of the administrator account.
+
+

+Configuring Confluence

+Open the wiki VM's Firefox browser and browse to:
+
    +
  • https://www.example.com/confluence
  • +
  • Copy the licence from the disposable VM to the wiki VM browser.
  • +
  • Select the external database option
  • +
  • select the JDBC connector option
  • +
+Setup the Database
+
    +
  •  Verify org.postsgresql.Driver is the Driver Class Name
  • +
  • Verify jdbc:postgresql://localhost:5432/confluence is the Database URL
  • +
  • Input confluence as the User Name
  • +
  • Input the confluence's database password as the Password
  • +
  • Click Next
  • +
+
+
+
    +
+
+
+ +
+
+ +

No comments:

+
+
+
+
+
+ +

Post a Comment

+

+

+ + + + +
+

+ +
+
+ +
+ +
+
+ +Older Post + +Home +
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/references/qubes-postgresql/bowabos.blogspot.co.uk/js/cookiechoices.js b/references/qubes-postgresql/bowabos.blogspot.co.uk/js/cookiechoices.js new file mode 100644 index 0000000..ee2783b --- /dev/null +++ b/references/qubes-postgresql/bowabos.blogspot.co.uk/js/cookiechoices.js @@ -0,0 +1,174 @@ +/* + Copyright 2014 Google Inc. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/* + * For more information on this file, see http://www.cookiechoices.org/ + */ + +(function(window) { + + if (!!window.cookieChoices) { + return window.cookieChoices; + } + + var document = window.document; + // IE8 does not support textContent, so we should fallback to innerText. + var supportsTextContent = 'textContent' in document.body; + + var cookieChoices = (function() { + + var cookieName = 'displayCookieConsent'; + var cookieConsentId = 'cookieChoiceInfo'; + var divClass = 'cookie-choices-info'; + var innerDivClass = 'cookie-choices-inner'; + var textSpan = 'cookie-choices-text'; + var buttonsClass = 'cookie-choices-buttons'; + var buttonClass = 'cookie-choices-button'; + var singletonClass = 'singleton-element'; + var dismissLinkId = 'cookieChoiceDismiss'; + + function _createHeaderElement(cookieText, dismissText, linkText, linkHref) { + var cookieInnerElement = document.createElement('div'); + cookieInnerElement.className = innerDivClass; + cookieInnerElement.appendChild(_createConsentText(cookieText)); + + var buttonsElement = document.createElement('span'); + buttonsElement.className = buttonsClass; + cookieInnerElement.appendChild(buttonsElement); + + if (!!linkText && !!linkHref) { + buttonsElement.appendChild(_createInformationLink(linkText, linkHref)); + } + + buttonsElement.appendChild(_createDismissLink(dismissText)); + + var cookieConsentElement = document.createElement('div'); + cookieConsentElement.id = cookieConsentId; + cookieConsentElement.className = divClass + ' ' + singletonClass; + cookieConsentElement.appendChild(cookieInnerElement); + return cookieConsentElement; + } + + function _createStyleElement() { + var style = document.createElement('style'); + style.className = singletonClass; + style.type = 'text/css'; + _setElementText(style, + '.' + divClass + ' { ' + + 'position:fixed;width:100%;background-color:#666;margin:0;' + + 'left:0;top:0;padding:0;z-index:4000;text-align:center;' + + 'color:#fff;line-height:140%;padding:10px 0;' + + 'font-family:roboto,Arial; } ' + + '.' + divClass + ' .' + innerDivClass + ' { ' + + 'position:relative;width:initial;margin:0;left:0;top:0; } ' + + '.' + divClass + ' .' + textSpan + ' { ' + + 'display:inline-block;vertical-align:middle;font-size:16px;' + + 'margin:10px 20px;color:#ccc;max-width:800px;' + + 'text-align:left; }' + + '.' + divClass + ' .' + buttonsClass + ' { ' + + 'display:inline-block;vertical-align:middle;' + + 'white-space:nowrap;margin:0 10px; } ' + + '.' + divClass + ' .' + buttonClass + ':hover { ' + + ' color: #fff; } ' + + '.' + divClass + ' .' + buttonClass + ' { ' + + 'font-weight:bold;text-transform:UPPERCASE;' + + 'white-space:nowrap;' + + 'color:#eee;margin-left:8px;padding:0 6px; ' + + 'text-decoration:none; }'); + document.getElementsByTagName('head')[0].appendChild(style); + } + + function _setElementText(element, text) { + if (supportsTextContent) { + element.textContent = text; + } else { + element.innerText = text; + } + } + + function _createConsentText(cookieText) { + var consentText = document.createElement('span'); + _setElementText(consentText, cookieText); + consentText.className = textSpan; + return consentText; + } + + function _createDismissLink(dismissText) { + var dismissLink = document.createElement('a'); + _setElementText(dismissLink, dismissText); + dismissLink.id = dismissLinkId; + dismissLink.href = '#'; + dismissLink.className = buttonClass; + return dismissLink; + } + + function _createInformationLink(linkText, linkHref) { + var infoLink = document.createElement('a'); + _setElementText(infoLink, linkText); + infoLink.href = linkHref; + infoLink.target = '_blank'; + infoLink.className = buttonClass; + return infoLink; + } + + function _dismissLinkClick(e) { + _saveUserPreference(); + _removeCookieConsent(); + e.stopPropagation && e.stopPropagation(); + e.cancelBubble = true; + return false; + } + + function _showCookieConsent(cookieText, dismissText, linkText, linkHref) { + if (_shouldDisplayConsent()) { + _removeCookieConsent(); + _createStyleElement(); + var consentElement = + _createHeaderElement(cookieText, dismissText, linkText, linkHref); + var fragment = document.createDocumentFragment(); + fragment.appendChild(consentElement); + document.body.appendChild(fragment.cloneNode(true)); + document.getElementById(dismissLinkId).onclick = _dismissLinkClick; + } + } + + function _removeCookieConsent() { + var cookieChoiceElement = document.getElementById(cookieConsentId); + if (cookieChoiceElement != null) { + cookieChoiceElement.parentNode.removeChild(cookieChoiceElement); + } + } + + function _saveUserPreference() { + // Set the cookie expiry to one year after today. + var expiryDate = new Date(); + expiryDate.setFullYear(expiryDate.getFullYear() + 1); + document.cookie = cookieName + '=y; expires=' + expiryDate.toGMTString(); + } + + function _shouldDisplayConsent() { + // Display the header only if the cookie has not been set. + return !document.cookie.match(new RegExp(cookieName + '=([^;]+)')); + } + + var exports = {}; + exports.showCookieConsentBar = _showCookieConsent; + return exports; + })(); + + window.cookieChoices = cookieChoices; + return cookieChoices; +})(this); diff --git a/references/qubes-postgresql/bowabos.blogspot.co.uk/robots.txt b/references/qubes-postgresql/bowabos.blogspot.co.uk/robots.txt new file mode 100644 index 0000000..3ea7364 --- /dev/null +++ b/references/qubes-postgresql/bowabos.blogspot.co.uk/robots.txt @@ -0,0 +1,9 @@ +User-agent: Mediapartners-Google +Disallow: + +User-agent: * +Disallow: /search +Allow: / + +Sitemap: http://bowabos.blogspot.com/sitemap.xml + diff --git a/references/qubes-postgresql/img1.blogblog.com/img/icon18_wrench_allbkg.png b/references/qubes-postgresql/img1.blogblog.com/img/icon18_wrench_allbkg.png new file mode 100644 index 0000000..a2d45ff Binary files /dev/null and b/references/qubes-postgresql/img1.blogblog.com/img/icon18_wrench_allbkg.png differ diff --git a/references/qubes-postgresql/img2.blogblog.com/img/icon18_edit_allbkg.gif b/references/qubes-postgresql/img2.blogblog.com/img/icon18_edit_allbkg.gif new file mode 100644 index 0000000..8053629 Binary files /dev/null and b/references/qubes-postgresql/img2.blogblog.com/img/icon18_edit_allbkg.gif differ diff --git a/references/qubes-postgresql/lh6.googleusercontent.com/-2LSNWUVfIoQ/AAAAAAAAAAI/AAAAAAAAAPU/BTDctKuQJag/s80-c/photo.jpg b/references/qubes-postgresql/lh6.googleusercontent.com/-2LSNWUVfIoQ/AAAAAAAAAAI/AAAAAAAAAPU/BTDctKuQJag/s80-c/photo.jpg new file mode 100644 index 0000000..6eaec23 Binary files /dev/null and b/references/qubes-postgresql/lh6.googleusercontent.com/-2LSNWUVfIoQ/AAAAAAAAAAI/AAAAAAAAAPU/BTDctKuQJag/s80-c/photo.jpg differ diff --git a/references/qubes-postgresql/www.blogblog.com/widgets/sharing/sprite_1x.png b/references/qubes-postgresql/www.blogblog.com/widgets/sharing/sprite_1x.png new file mode 100644 index 0000000..bd195e5 Binary files /dev/null and b/references/qubes-postgresql/www.blogblog.com/widgets/sharing/sprite_1x.png differ diff --git a/references/qubes-postgresql/www.blogblog.com/widgets/sharing/sprite_2x.png b/references/qubes-postgresql/www.blogblog.com/widgets/sharing/sprite_2x.png new file mode 100644 index 0000000..00c16c0 Binary files /dev/null and b/references/qubes-postgresql/www.blogblog.com/widgets/sharing/sprite_2x.png differ diff --git a/references/qubes-postgresql/www.blogger.com/dyn-css/authorization.css?targetBlogID=5313404859328252510&zx=8e5d6211-5625-4a94-8c5a-926ad4b193e7 b/references/qubes-postgresql/www.blogger.com/dyn-css/authorization.css?targetBlogID=5313404859328252510&zx=8e5d6211-5625-4a94-8c5a-926ad4b193e7 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/references/qubes-postgresql/www.blogger.com/dyn-css/authorization.css?targetBlogID=5313404859328252510&zx=8e5d6211-5625-4a94-8c5a-926ad4b193e7 @@ -0,0 +1 @@ + diff --git a/references/qubes-postgresql/www.blogger.com/img/anon16-rounded.gif b/references/qubes-postgresql/www.blogger.com/img/anon16-rounded.gif new file mode 100644 index 0000000..67372e2 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/anon16-rounded.gif differ diff --git a/references/qubes-postgresql/www.blogger.com/img/b16-rounded.gif b/references/qubes-postgresql/www.blogger.com/img/b16-rounded.gif new file mode 100644 index 0000000..eb8e391 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/b16-rounded.gif differ diff --git a/references/qubes-postgresql/www.blogger.com/img/icon_delete13.gif b/references/qubes-postgresql/www.blogger.com/img/icon_delete13.gif new file mode 100644 index 0000000..4e919b5 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/icon_delete13.gif differ diff --git a/references/qubes-postgresql/www.blogger.com/img/mobile_share_icons4.png b/references/qubes-postgresql/www.blogger.com/img/mobile_share_icons4.png new file mode 100644 index 0000000..fc977ae Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/mobile_share_icons4.png differ diff --git a/references/qubes-postgresql/www.blogger.com/img/openid16-rounded.gif b/references/qubes-postgresql/www.blogger.com/img/openid16-rounded.gif new file mode 100644 index 0000000..de74f65 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/openid16-rounded.gif differ diff --git a/references/qubes-postgresql/www.blogger.com/img/plusone/plusonepreview.png b/references/qubes-postgresql/www.blogger.com/img/plusone/plusonepreview.png new file mode 100644 index 0000000..fd92b58 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/plusone/plusonepreview.png differ diff --git a/references/qubes-postgresql/www.blogger.com/img/share_buttons_20_3.png b/references/qubes-postgresql/www.blogger.com/img/share_buttons_20_3.png new file mode 100644 index 0000000..ff4b007 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/share_buttons_20_3.png differ diff --git a/references/qubes-postgresql/www.blogger.com/img/triangle_ltr.gif b/references/qubes-postgresql/www.blogger.com/img/triangle_ltr.gif new file mode 100644 index 0000000..499d1e3 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/triangle_ltr.gif differ diff --git a/references/qubes-postgresql/www.blogger.com/img/triangle_open.gif b/references/qubes-postgresql/www.blogger.com/img/triangle_open.gif new file mode 100644 index 0000000..1137910 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/triangle_open.gif differ diff --git a/references/qubes-postgresql/www.blogger.com/img/widgets/icon_wikipedia_search.png b/references/qubes-postgresql/www.blogger.com/img/widgets/icon_wikipedia_search.png new file mode 100644 index 0000000..a1ff792 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/widgets/icon_wikipedia_search.png differ diff --git a/references/qubes-postgresql/www.blogger.com/img/widgets/s_bottom.png b/references/qubes-postgresql/www.blogger.com/img/widgets/s_bottom.png new file mode 100644 index 0000000..16bb1bb Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/widgets/s_bottom.png differ diff --git a/references/qubes-postgresql/www.blogger.com/img/widgets/s_top.png b/references/qubes-postgresql/www.blogger.com/img/widgets/s_top.png new file mode 100644 index 0000000..1d77de4 Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/widgets/s_top.png differ diff --git a/references/qubes-postgresql/www.blogger.com/img/widgets/stats-flipper.png b/references/qubes-postgresql/www.blogger.com/img/widgets/stats-flipper.png new file mode 100644 index 0000000..aa2bf7c Binary files /dev/null and b/references/qubes-postgresql/www.blogger.com/img/widgets/stats-flipper.png differ diff --git a/references/qubes-postgresql/www.blogger.com/robots.txt b/references/qubes-postgresql/www.blogger.com/robots.txt new file mode 100644 index 0000000..2fd46b7 --- /dev/null +++ b/references/qubes-postgresql/www.blogger.com/robots.txt @@ -0,0 +1,15 @@ +# robots.txt for https://www.blogger.com + +User-agent: * +Disallow: /blog_this.pyra +Disallow: /comment.g +Disallow: /comment-iframe.g +Disallow: /create-blog.g +Disallow: /delete-backlink.g +Disallow: /delete-comment.g +Disallow: /email-post.g +Disallow: /post-edit.g +Disallow: /profile-find.g +Disallow: /rearrange +Disallow: /share-post.g +Disallow: /share-post-menu.g diff --git a/references/qubes-postgresql/www.blogger.com/static/v1/jsbin/2443413180-comment_from_post_iframe.js b/references/qubes-postgresql/www.blogger.com/static/v1/jsbin/2443413180-comment_from_post_iframe.js new file mode 100644 index 0000000..b84c408 --- /dev/null +++ b/references/qubes-postgresql/www.blogger.com/static/v1/jsbin/2443413180-comment_from_post_iframe.js @@ -0,0 +1,22 @@ +(function (){ var f="",g=" ",l='"',n="#",aa="%",p="%$1",ba="%2525",q="%s",r="&",t="(\\d*)(\\D*)",u="*",v=",",ca="-src",y=".",z="/",da="//",A=":",ea=": ",fa="=",ga="?",ha="@",ia="Assertion failed",ja="Node cannot be null or undefined.",ka="[",la="[object Array]",ma="[object Function]",na="[object Window]",oa="\\u",pa="]",B="array",qa="backgroundColor",ra="blogger-comment-from-post",sa="blogger-iframe-colorize",ta="blogspotRpcToken",ua="boolean",va="call",wa="color",xa="comment-editor",ya="file",za="fontFamily", +C="function",Aa="g",Ba="https://www.blogger.com/unvisited-link-",Ca="iframe",Da="inherit",Ea="message",D="null",Fa="number",E="object",Ga="onmessage",Ha="rgb(0, 0, 0)",Ia="rgba(0, 0, 0, 0)",Ja="serif",Ka="set-comment-editor-height",La="splice",Ma="string",Na="transparent",Oa="{",Pa="}",F,G=this,Qa=function(a){var b=typeof a;if(b==E)if(a){if(a instanceof Array)return B;if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(c==na)return E;if(c==la||typeof a.length==Fa&&"undefined"!= +typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(La))return B;if(c==ma||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(va))return C}else return D;else if(b==C&&"undefined"==typeof a.call)return E;return b},H=function(a){return typeof a==Ma},Ra=function(a,b){function c(){}c.prototype=b.prototype;a.ba=b.prototype;a.prototype=new c;a.aa=function(a,c,h){for(var k=Array(arguments.length-2),m=2;mb?1:0};var Ua=function(a,b){b.unshift(a);I.call(this,Sa.apply(null,b));b.shift()};Ra(Ua,I);var Va=function(a,b,c){if(!a){var d=Array.prototype.slice.call(arguments,2),e=ia;if(b)var e=e+(ea+b),h=d;throw new Ua(f+e,h||[]);}return a};var Wa=Array.prototype.indexOf?function(a,b,c){Va(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(H(a))return H(b)&&1==b.length?a.indexOf(b,c):-1;for(;cparseFloat(a))?String(b):a}(),gb={},hb=function(a){var b;if(!(b=gb[a])){b=0;for(var c=Ta(String(fb)).split(y),d=Ta(String(a)).split(y),e=Math.max(c.length,d.length),h=0;0==b&&h2*this.b&&this.A(),!0):!1};F.A=function(){if(this.b!=this.c.length){for(var a=0,b=0;a=d.c.length)throw pb;var e=d.c[b++];return a?e:d.g[e]};return e};var R=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var qb=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,rb=function(a,b){if(a)for(var c=a.split(r),d=0;da)throw Error("Bad port number "+a);this.C=a}else this.C=null;return this};F.getPath=function(){return this.K};F.setPath=function(a,b){this.i();this.K=b?V(a,!0):a;return this}; +F.P=function(a,b){this.i();a instanceof T?(this.j=a,this.j.I(this.f)):(b||(a=U(a,xb)),this.j=new T(a,null,this.f));return this};F.U=function(){return this.j.toString()};F.Z=function(a,b){this.i();this.j.set(a,b);return this};F.N=function(a,b){this.i();this.G=b?V(a):a;return this};F.i=function(){if(this.W)throw Error("Tried to modify a read-only Uri");};F.I=function(a){this.f=a;this.j&&this.j.I(a);return this}; +var V=function(a,b){return a?b?decodeURI(a.replace(/%25/g,ba)):decodeURIComponent(a):f},U=function(a,b,c){return H(a)?(a=encodeURI(a).replace(b,yb),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,p)),a):null},yb=function(a){a=a.charCodeAt(0);return aa+(a>>4&15).toString(16)+(a&15).toString(16)},tb=/[#\/\?@]/g,vb=/[\#\?:]/g,ub=/[\#\?]/g,xb=/[\#\?@]/g,wb=/#/g,T=function(a,b,c){this.b=this.a=null;this.h=a||null;this.f=!!c};F=T.prototype; +F.l=function(){if(!this.a&&(this.a=new Q,this.b=0,this.h)){var a=this;rb(this.h,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g,g)),c)})}};F.add=function(a,b){this.l();this.w();a=this.m(a);var c=this.a.get(a);c||this.a.set(a,c=[]);c.push(b);this.b++;return this};F.remove=function(a){this.l();a=this.m(a);return this.a.u(a)?(this.w(),this.b-=this.a.get(a).length,this.a.remove(a)):!1};F.u=function(a){this.l();a=this.m(a);return this.a.u(a)}; +F.v=function(){this.l();for(var a=this.a.o(),b=this.a.v(),c=[],d=0;d>>0),Zj=0;function ak(a,b,c){return a.call.apply(a.bind,arguments)} +function bk(a,b,c){if(!a)throw Error();if(2/g,mk=/"/g,nk=/'/g,ok=/\x00/g,ik=/[\x00&<>"']/;function pk(a,b){return ab?1:0}function qk(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})} +function rk(a){var b=z(void 0)?"undefined".replace(/([-()\[\]{}+?*.$\^|,:#c?Math.max(0,a.length+c):c;if(z(a))return z(b)&&1==b.length?a.indexOf(b,c):-1;for(;cb?null:z(a)?a.charAt(b):a[b]}function Ck(a,b){return 0<=wk(a,b)}function Dk(a){if(!y(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0}function Ek(a,b){var c=wk(a,b),d;if(d=0<=c)F(null!=a.length),Array.prototype.splice.call(a,c,1);return d}function Fk(a){return Array.prototype.concat.apply(Array.prototype,arguments)} +function Gk(a){var b=a.length;if(0=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)} +function Jk(a){if(!arguments.length)return[];for(var b=[],c=arguments[0].length,d=1;dparseFloat(a))?String(b):a}(),ll={}; +function L(a){var b;if(!(b=ll[a])){b=0;for(var c=gk(String(kl)).split(lb),d=gk(String(a)).split(lb),e=Math.max(c.length,d.length),f=0;0==b&&f=a.keyCode)a.keyCode=-1}catch(b){}};var Nl="closure_listenable_"+(1E6*Math.random()|0);function Ol(a){return!(!a||!a[Nl])}var Pl=0;function Ql(a,b,c,d,e){this.listener=a;this.a=null;this.src=b;this.type=c;this.na=!!d;this.qa=e;this.key=++Pl;this.$=this.ma=!1}function Rl(a){a.$=!0;a.listener=null;a.a=null;a.src=null;a.qa=null};function Sl(a){this.src=a;this.a={};this.b=0}function Tl(a,b,c,d,e,f){var h=b.toString();b=a.a[h];b||(b=a.a[h]=[],a.b++);var m=Ul(b,c,e,f);-1e.keyCode||void 0!=e.returnValue)){a:{var f=!1;if(0==e.keyCode)try{e.keyCode=-1;break a}catch(p){f=!0}if(f||void 0==e.returnValue)e.returnValue=!0}e=[];for(f=c.currentTarget;f;f=f.parentNode)e.push(f);for(var f=a.type,h=e.length-1;!c.a&&0<=h;h--){c.currentTarget=e[h];var m=km(e[h],f,!0,c),d=d&&m}for(h=0;!c.a&&h>>0);function am(a){F(a,cd);if(Wj(a))return a;F(a.handleEvent,mc);a[mm]||(a[mm]=function(b){return a.handleEvent(b)});return a[mm]};function R(){Kl.call(this);this.G=new Sl(this);this.ha=this;this.L=null}C(R,Kl);R.prototype[Nl]=!0;u=R.prototype;u.Ba=function(a){this.L=a};u.addEventListener=function(a,b,c,d){Q(this,a,b,c,d)};u.removeEventListener=function(a,b,c,d){hm(this,a,b,c,d)}; +function S(a,b){nm(a);var c,d=a.L;if(d){c=[];for(var e=1;d;d=d.L)c.push(d),F(1E3>++e,Zg)}var d=a.ha,e=b,f=e.type||e;if(z(e))e=new Ll(e,d);else if(e instanceof Ll)e.target=e.target||d;else{var h=e,e=new Ll(f,d);Zk(e,h)}var h=!0,m;if(c)for(var p=c.length-1;!e.a&&0<=p;p--)m=e.currentTarget=c[p],h=om(m,f,!0,e)&&h;e.a||(m=e.currentTarget=d,h=om(m,f,!0,e)&&h,e.a||(h=om(m,f,!1,e)&&h));if(c)for(p=0;!e.a&&pa.b&&(a.b++,b.next=a.a,a.a=b)};function sm(a){return function(){return a}};function tm(a){v.setTimeout(function(){throw a;},0)}var um; +function vm(){var a=v.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!I(td)&&(a=function(){var a=document.createElement(Vc);a.style.display=t;a.src=g;document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write(g);a.close();var c=Ve+Math.random(),d=b.location.protocol==mg?eb:b.location.protocol+tb+b.location.host,a=A(function(a){if((d==eb||a.origin==d)&&a.data==c)this.port1.onmessage()},this);b.addEventListener(uh, +a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&!I(Ld)&&!I(ed)){var b=new a,c={},d=c;b.port1.onmessage=function(){if(x(c.next)){c=c.next;var a=c.Ja;c.Ja=null;a()}};return function(a){d.next={Ja:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&Sh in document.createElement(yd)?function(a){var b=document.createElement(yd);b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a= +null};document.documentElement.appendChild(b)}:function(a){v.setTimeout(a,0)}};var xm=new pm(function(){return new wm},function(a){a.reset()});function ym(){var a=zm,b=null;a.a&&(b=a.a,a.a=a.a.next,a.a||(a.b=null),b.next=null);return b}function wm(){this.next=this.b=this.a=null}wm.prototype.reset=function(){this.next=this.b=this.a=null};function Am(a,b){Bm||Cm();Dm||(Bm(),Dm=!0);var c=zm,d=qm(xm);d.a=a;d.b=b;d.next=null;c.b?c.b.next=d:(F(!c.a),c.a=d);c.b=d}var Bm;function Cm(){if(v.Promise&&v.Promise.resolve){var a=v.Promise.resolve(void 0);Bm=function(){a.then(Em)}}else Bm=function(){var a=Em;!Wj(v.setImmediate)||v.Window&&v.Window.prototype&&!I(Cc)&&v.Window.prototype.setImmediate==v.setImmediate?(um||(um=vm()),um(a)):v.setImmediate(a)}}var Dm=!1,zm=new function(){this.b=this.a=null}; +function Em(){for(var a=null;a=ym();){try{a.a.call(a.b)}catch(b){tm(b)}rm(xm,a)}Dm=!1};function Fm(a){a.prototype.then=a.prototype.then;a.prototype.$goog_Thenable=!0}function Gm(a){if(!a)return!1;try{return!!a.$goog_Thenable}catch(b){return!1}};function Hm(a,b){this.a=0;this.j=void 0;this.g=this.b=this.c=null;this.i=this.h=!1;if(a!=Sj)try{var c=this;a.call(b,function(a){Im(c,2,a)},function(a){if(!(a instanceof Jm))try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(b){}Im(c,3,a)})}catch(d){Im(this,3,d)}}function Km(){this.next=this.g=this.c=this.b=this.a=null;this.i=!1}Km.prototype.reset=function(){this.g=this.c=this.b=this.a=null;this.i=!1};var Lm=new pm(function(){return new Km},function(a){a.reset()}); +function Mm(a,b,c){var d=qm(Lm);d.b=a;d.c=b;d.g=c;return d}Hm.prototype.then=function(a,b,c){null!=a&&vk(a,Vh);null!=b&&vk(b,Wh);return Nm(this,Wj(a)?a:null,Wj(b)?b:null,c)};Fm(Hm);Hm.prototype.cancel=function(a){0==this.a&&Am(function(){var b=new Jm(a);Om(this,b)},this)}; +function Om(a,b){if(0==a.a)if(a.c){var c=a.c;if(c.b){for(var d=0,e=null,f=null,h=c.b;h&&(h.i||(d++,h.a==a&&(e=h),!(e&&12*a.c&&mn(a),!0):!1}function mn(a){if(a.c!=a.a.length){for(var b=0,c=0;b=d.a.length)throw jn;var e=d.a[b++];return a?e:d.b[e]};return e};function on(a,b){return Object.prototype.hasOwnProperty.call(a,b)};function pn(a){a=String(a);if(/^\s*$/.test(a)?0:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,ic).replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,Zd).replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,g)))try{return eval($a+a+cb)}catch(b){}throw Error("Invalid JSON string: "+a);};function qn(a){if(a.F&&typeof a.F==r)return a.F();if(z(a))return a.split(g);if(Vj(a)){for(var b=[],c=a.length,d=0;dthis.c)throw Error("[goog.structs.Pool] Min can not be greater than max");this.a=new Rn;this.b=new sn;this.h=null;this.ja()}C(Tn,Kl);u=Tn.prototype;u.pa=function(){var a=dk();if(!(null!=this.h&&0>a-this.h)){for(var b;0this.c&&0=a.B()){a=this.a;for(var d=0;d>1,a[d].a>c.a)a[b]=a[d],b=d;else break;a[b]=c}u=Xn.prototype;u.F=function(){for(var a=this.a,b=[],c=a.length,d=0;d=f)c=void 0;else{if(1==f)Dk(e);else{e[0]=e.pop();for(var e=0,d=d.a,f=d.length,h=d[e];e>1;){var m=2*e+1,p=2*e+2,m=ph.a)break;d[e]=d[m];e=m}d[e]=h}c=c.b}c.apply(this,[b])}else break}}; +u.ua=function(a){$n.u.ua.call(this,a);this.ya()};u.ja=function(){$n.u.ja.call(this);this.ya()};u.A=function(){$n.u.A.call(this);v.clearTimeout(void 0);this.g.clear();this.g=null};function ao(a,b,c,d){this.l=a;this.s=!!d;$n.call(this,b,c)}C(ao,$n);ao.prototype.wa=function(){var a=new Cn,b=this.l;b&&b.forEach(function(b,d){T(a.ba,d,b)});this.s&&(a.s=!0);return a};ao.prototype.Aa=function(a){return!a.i&&!a.a};function bo(a,b,c,d,e,f){R.call(this);this.g=x(a)?a:1;this.h=x(e)?Math.max(0,e):0;this.b=new ao(b,c,d,f);this.a=new ln;this.c=new fn(this)}C(bo,R);var co=[ni,mf,Ui,$f,je,aj];function eo(a,b,c,d,e,f){if(U(a.a,b))throw Error("[goog.net.XhrManager] ID in use");c=new fo(c,A(a.l,a,b),d,e,null,f,x(void 0)?void 0:a.g,void 0,void 0);T(a.a,b,c);b=A(a.j,a,b);a.b.pa(b,null)} +bo.prototype.abort=function(a,b){var c=U(this.a,a);if(c){var d=c.sa;c.Ga=!0;b&&(d&&(this.c.ea(d,co,c.Da),gm(d,ni,function(){Un(this.b,d)},!1,this)),nn(this.a,a));d&&d.abort()}};bo.prototype.j=function(a,b){var c=U(this.a,a);c&&!c.sa?(this.c.S(b,co,c.Da),b.l=Math.max(0,this.h),b.j=c.Na(),b.s=c.Oa(),c.sa=b,S(this,new go(ni,this,a,b)),ho(this,a,b),c.Ga&&b.abort()):Un(this.b,b)}; +bo.prototype.l=function(a,b){var c=b.target;switch(b.type){case ni:ho(this,a,c);break;case mf:a:{var d=U(this.a,a);if(7==c.h||Pn(c)||d.ka>d.xa)if(S(this,new go(mf,this,a,c)),d&&(d.La=!0,d.Ka)){c=d.Ka.call(c,b);break a}c=null}return c;case Ui:S(this,new go(Ui,this,a,c));break;case aj:case $f:d=U(this.a,a);d.ka>d.xa&&S(this,new go($f,this,a,c));break;case je:S(this,new go(je,this,a,c))}return null}; +function ho(a,b,c){var d=U(a.a,b);!d||d.La||d.ka>d.xa?(d&&(a.c.ea(c,co,d.Da),nn(a.a,b)),Un(a.b,c)):(d.ka++,Hn(c,d.Mb,d.Ub,d.Fb,d.Lb))}bo.prototype.A=function(){bo.u.A.call(this);this.b.U();this.b=null;this.c.U();this.c=null;this.a.clear();this.a=null};function go(a,b,c,d){Ll.call(this,a,b);this.id=c;this.sa=d}C(go,Ll); +function fo(a,b,c,d,e,f,h,m,p){this.Mb=a;this.Ub=c||Oc;this.Fb=d;this.Lb=e||null;this.xa=x(h)?h:1;this.ka=0;this.Ga=this.La=!1;this.Da=b;this.Ka=f;this.a=m||g;this.b=!!p;this.sa=null}fo.prototype.Oa=Mj("b");fo.prototype.Na=Mj(ie);function io(a,b,c,d,e,f){this.b=a;this.i=b;this.a=d||null;this.data=e||null;if(f){if(this.c=f,f!=Uf&&f!=Rf&&f!=Sf&&f!=Tf)throw"bad display mode: "+f;}else this.c=Tf;this.g=!1}io.prototype.h=Mj("b");function jo(a){this.g=!0;this.o=a;this.b=null}function V(a,b){return document.getElementById(a.o.b+ae+b)}function W(a,b){var c=V(a,b);if(!c)throw"did not find element for id "+b;return c}jo.prototype.m=function(){return this.o.data}; +jo.prototype.c=function(){var a={};a.type=this.b.ga();a.instanceId=this.o.b;a.sectionId=this.o.i;a.actionUrl=H.K;a.quickEditUrl=H.Ea+Ya+this.b.ga()+Xa+this.o.b+Pa+this.o.i+za+H.M;return a};function ko(a,b,c,d,e){c=c||{};window.__wavt&&(c.xssi_token=window.__wavt);H.Sb(b,c,a.o.b,a.b.ga(),d,e)}function Rk(a){var b=-1;try{b=a.status}catch(c){}return b}function H(){}H.ob=function(a,b,c){H.b={};H.Ea=a;H.K=b;H.ec=c;H.g={};H.j=new bo;H.Fa=0;H.D=0;Q(H.j,ni,function(){H.D++});Q(H.j,mf,function(){H.D--})}; +H.Qb=function(){var a=H.bb();document.body.appendChild(a)};H.Ob=function(a){H.Qb();if(window.parent==window){var b=ud;a&&(b=a);a=H.ab(b);document.body.appendChild(a[0]);document.body.appendChild(a[1])}};H.qb=Ze;H.Za=Ze;H.M="editWidget";H.fb=function(){return H.K};H.Kb=function(a,b){H.L=a;H.Tb=b};H.hb=function(){return H.L};H.Nb=function(a){H.Wb=a};H.W=function(){return H.Wb};H.Jb=function(a){H.g=a}; +H.eb=function(){var a={},b;for(b in H.g){var c=H.g[b];a[c.name]=c.data}c={};for(b in H.b)c[b]=H.b[b].f.m();a.widgets=c;return a};H.X=function(a,b){var c=new jo(b),d=new window[a](c);c.b=d;H.b[b.b]=d;H.I(d);return d};H.wb=function(a,b){var c=H.X(a,b);c.f.o.g=!0;return c};H.I=function(a){var b=a.f;b.o.c!=Tf&&(b.o.c==Rf&&a.C(),a.f.g=!1)};H.c=function(a){return H.b?H.b[a]:null}; +H.w=function(a,b,c,d,e){var f=g;d&&(f=Xa+d);a=H.Ea+za+a+Pa+b+Ya+c+f;if(window.name==e)return window.location.replace(a),window.focus(),window;e=window.open(a,e,Bj);e.focus();return e};H.Va=function(a){var b=a.getAttribute(Wg),c=H.c(b);if(c){var d=c.f.a;if(null!=d&&!d.closed)return d.focus(),!1}d=nf+b;a=H.w(H.M,a.parentNode.getAttribute(Wg),a.getAttribute(zj),b,d);c&&(c.f.a=a);return!1};H.ub=function(a){H.w(H.Za,a.parentNode.getAttribute(Wg),a.getAttribute(zj),a.getAttribute(Wg),H.qb);return!1}; +H.cb=function(a,b,c){H.a(c,c.LayoutsMessages.DELETING);H.ha(Mf,{},a,b)};H.Bb=function(a,b){var c=window;a.sectionid=document.getElementById(zi).value;H.a(c,c.LayoutsMessages.SAVING);H.ha(ne,a,g,b)};H.Gb=function(a,b,c){F(null!=c,Ih);var d=H.c(b);F(null!=d,Jh+b);d.f.o.g?H.Bb(a,c):(b=d.f,c=window,H.a(c,c.LayoutsMessages.SAVING),ko(b,of,a))};H.Sb=function(a,b,c,d,e,f){H.ba(H.K,a,b,c,d,e,f)};H.ha=function(a,b,c,d){H.L&&(b.security_token=H.Tb,H.ba(H.L,a,b,c,d,void 0))}; +H.ba=function(a,b,c,d,e,f,h){function m(){w(this.a)&&window.eval(Qn(this))}b=[me+encodeURIComponent(b),xj+encodeURIComponent(d),Aj+encodeURIComponent(e),qi];for(var p in c)if(typeof c[p]==Nh)for(d=c[p],e=0;ea.length&&(a=N(jh,cj,this.a.a));var b;0a;a++)if(b="\"'".charAt(a),c.charAt(0)==b&&c.charAt(c.length-1)==b){c=c.substring(1,c.length-1);break a}return c}var Jo=/[^\d]+$/,Ko={cm:1,"in":1,mm:1,pc:1,pt:1},Lo={em:1,ex:1}; +function Mo(a){var b=Eo(a,tg),c;c=(c=b.match(Jo))&&c[0]||null;if(b&&ii==c)return parseInt(b,10);if(K){if(c in Ko)return Ho(a,b);if(a.parentNode&&1==a.parentNode.nodeType&&c in Lo)return a=a.parentNode,c=Eo(a,tg),Ho(a,b==c?Jb:b)}c=P(zd,{style:oj});a.appendChild(c);b=c.offsetHeight;xl(c);return b};function No(){}Tj(No);No.prototype.a=0;function Oo(a){R.call(this);a||(a=ek||(ek=new Gl));this.I=a;this.N=null;this.R=!1;this.a=null;this.b=void 0;this.l=this.s=this.c=null}C(Oo,R);u=Oo.prototype;u.Pb=No.Z();u.ca=Mj(ie);function Po(a){a.b||(a.b=new fn(a));return a.b}u.Ba=function(a){if(this.c&&this.c!=a)throw Error("Method not supported");Oo.u.Ba.call(this,a)};u.Pa=function(){this.a=this.I.b.createElement(Bc)}; +u.render=function(a){if(this.R)throw Error("Component already rendered");this.a||this.Pa();a?a.insertBefore(this.a,null):this.I.b.body.appendChild(this.a);this.c&&!this.c.R||this.oa()};u.oa=function(){this.R=!0;Qo(this,function(a){!a.R&&a.ca()&&a.oa()})};function Ro(a){Qo(a,function(a){a.R&&Ro(a)});a.b&&hn(a.b);a.R=!1}u.A=function(){this.R&&Ro(this);this.b&&(this.b.U(),delete this.b);Qo(this,function(a){a.U()});this.a&&xl(this.a);this.c=this.a=this.l=this.s=null;Oo.u.A.call(this)}; +function Qo(a,b){a.s&&xk(a.s,b,void 0)}u.removeChild=function(a,b){if(a){var c=z(a)?a:a.N||(a.N=Ub+(a.Pb.a++).toString(36)),d;this.l&&c?(d=this.l,d=(null!==d&&c in d?d[c]:void 0)||null):d=null;a=d;if(c&&a){d=this.l;c in d&&delete d[c];Ek(this.s,a);b&&(Ro(a),a.a&&xl(a.a));c=a;if(null==c)throw Error("Unable to set parent component");c.c=null;Oo.u.Ba.call(c,null)}}if(!a)throw Error("Child is not in parent component");return a};function So(a,b,c,d){Oo.call(this,d);this.j=c||window;this.M=a;this.D=b;this.H={};this.w=this.g=null;this.h={};this.h.GOOGLEPLUS={da:Qc,la:this.zb};this.h.EMAIL={da:Dc,la:this.xb};this.h.FACEBOOK={da:Kc,la:this.yb};this.h.TWITTER={da:Md,la:this.Ab}}C(So,Oo);u=So.prototype; +u.Pa=function(){var a=this.I,b=a.a(Bc,{style:$h,"class":Ah});this.g=a.a(Bc,{style:Zh,"class":zh});b.appendChild(this.g);var c=a.a(Bc,{"class":Bh});c.innerText=Dd;c.textContent=Dd;this.g.appendChild(c);this.w=a.a(jc,{href:eh,"class":yh});this.w.innerHTML=Ua;c.appendChild(this.w);for(var d in this.h){var c=a.a(jc,{target:ee,display:De,"class":xh+d.toLowerCase()}),e=a.a(zd),f=this.h[d];e.innerText=f.da;e.textContent=f.da;c.href=f.la.call(this);c.appendChild(e);this.g.appendChild(c);this.H[d]=c}this.a= +b};u.oa=function(){So.u.oa.call(this);for(var a in this.H){var b=this.H[a];b&&Po(this).S(b,af,this.va)}Po(this).S(this.w,af,this.va);a=this.ca();Po(this).S(a,af,this.va);this.Ha();Po(this).S(this.j,vi,this.Ha)};u.Ha=function(){var a=this.j.innerHeight,b=this.j.innerWidth,c=this.j.pageYOffset,d=this.j.pageXOffset,e=0;200d){var e=c[d];e.longDesc!=g&&(e.src=e.longDesc)}else e=c[d].id,e==g&&(e=ue+d),b[e]={Ma:c[d],key:e},a.a++;0!=a.a&&(a.l=Q(window,vi,a.h),a.j=Q(window,pi,a.h),$o(a))}function Yo(a){a.g&&window.clearTimeout(a.g);a.g=window.setTimeout(function(){a.g=null;$o(a)},100)} +function $o(a){if(!(0>a.a))if(0==a.a)im(a.l),im(a.j),a.a=-1;else{var b=!1,c;for(c in a.b){var d;a:{d=a;var e=a.b[c],f=window.document,f=f.compatMode==wc?f.documentElement:f.body,f=(new al(f.clientWidth,f.clientHeight)).height,h;h=e.Ma;F(h);1==h.nodeType?(h=Fo(h),h=new $k(h.left,h.top)):(h=h.changedTouches?h.changedTouches[0]:h,h=new $k(h.clientX,h.clientY));h=h.y;if(0<=h&&h<=f)d.i.push(e);else if(0h&&h>Math.round(-1.25*f))d.c.push(e);else{d=!1;break a}d= +!0}d&&(b=!0)}if(b){b=a.i.concat(a.c);for(c=0;c=c&&0<=e&&255>=e&&0<=d&&255>=d){c=[c,e,d];break a}}c=[]}if(c.length){e=c[0];a=c[1];c=c[2];e=Number(e);a=Number(a);c=Number(c);if(isNaN(e)||0>e||255a||255c||255< +c)throw Error('"('+e+fb+a+fb+c+'") is not a valid RGB color');e=fp(e.toString(16));a=fp(a.toString(16));c=fp(c.toString(16));b.za=ja+e+a+c;b.type=ri;return b}if(ap&&(c=ap[a.toLowerCase()]))return b.za=c,b.type=Fh,b;throw Error(a+" is not a valid color string");}var dp=/#(.)(.)(.)/,cp=/^#(?:[0-9a-f]{3}){1,2}$/i,ep=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;function fp(a){return 1==a.length?Bb+a:a};function gp(a){X.call(this,uc,a)}C(gp,X);u=gp.prototype;u.Ca=null;u.ra=null;u.C=function(){var a=this.f.m();this.Ca=a.totalItems;this.ra=a.numItemsToShow;0!=this.ra&&this.Ca>this.ra&&(W(this.f,Bi).onclick=this.Ua.bind(this),W(this.f,Ci).onclick=this.Ua.bind(this));Q(window,lh,this.$a)}; +u.Ua=function(){var a=V(this.f,Re);if(null!=a){for(var a=a.getElementsByTagName(jh),b=this.ra;bb)throw Error("Bad port number "+b);a.h=b}else a.h=null}function up(a,b,c){a.l=c?wp(b,!0):b;return a}function vp(a,b,c){b instanceof xp?(a.a=b,Dp(a.a,a.b)):(c||(b=yp(b,Ep)),a.a=new xp(b,0,a.b))}function Fp(a,b,c){var d=a.a;Gp(d);d.c=null;b=Hp(d,b);Ip(d,b)&&(d.b-=U(d.a,b).length);T(d.a,b,[c]);d.b++;return a} +function wp(a,b){return a?b?decodeURI(a.replace(/%25/g,sa)):decodeURIComponent(a):g}function yp(a,b,c){return z(a)?(a=encodeURI(a).replace(b,Jp),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,ra)),a):null}function Jp(a){a=a.charCodeAt(0);return qa+(a>>4&15).toString(16)+(a&15).toString(16)}var zp=/[#\/\?@]/g,Bp=/[\#\?:]/g,Ap=/[\#\?]/g,Ep=/[\#\?@]/g,Cp=/#/g;function xp(a,b,c){this.b=this.a=null;this.c=a||null;this.g=!!c} +function Gp(a){a.a||(a.a=new ln,a.b=0,a.c&&vn(a.c,function(b,c){var d=decodeURIComponent(b.replace(/\+/g,k));Gp(a);a.c=null;var d=Hp(a,d),e=U(a.a,d);e||T(a.a,d,e=[]);e.push(c);a.b++}))}u=xp.prototype;u.B=function(){Gp(this);return this.b};function Kp(a,b){Gp(a);b=Hp(a,b);on(a.a.b,b)&&(a.c=null,a.b-=U(a.a,b).length,nn(a.a,b))}u.clear=function(){this.a=this.c=null;this.b=0};u.O=function(){Gp(this);return 0==this.b};function Ip(a,b){Gp(a);b=Hp(a,b);return on(a.a.b,b)} +u.J=function(){Gp(this);for(var a=this.a.F(),b=this.a.J(),c=[],d=0;d=b.l&&b.cancel())}this.D?this.D.call(this.L,this):this.s=!0;this.a||Sp(this,new Tp)}};Rp.prototype.K=function(a,b){this.j=!1;Up(this,a,b)};function Up(a,b,c){a.a=!0;a.c=c;a.g=!b;Vp(a)} +function Wp(a){if(a.a){if(!a.s)throw new Xp;a.s=!1}}Rp.prototype.H=function(a){Wp(this);Yp(a);Up(this,!0,a)};function Sp(a,b){Wp(a);Yp(b);Up(a,!1,b)}function Yp(a){F(!(a instanceof Rp),lc)}function Zp(a,b,c,d){F(!a.w,rc);a.i.push([b,c,d]);a.a&&Vp(a)}Rp.prototype.then=function(a,b,c){var d,e,f=new Hm(function(a,b){d=a;e=b});Zp(this,d,function(a){a instanceof Tp?f.cancel():e(a)});return f.then(a,b,c)};Fm(Rp);function $p(a){return zk(a.i,function(a){return Wj(a[1])})} +function Vp(a){if(a.h&&a.a&&$p(a)){var b=a.h,c=aq[b];c&&(v.clearTimeout(c.N),delete aq[b]);a.h=0}a.b&&(a.b.l--,delete a.b);for(var b=a.c,d=c=!1;a.i.length&&!a.j;){var e=a.i.shift(),f=e[0],h=e[1],e=e[2];if(f=a.g?h:f)try{var m=f.call(e||a.L,b);x(m)&&(a.g=a.g&&(m==b||m instanceof Error),a.c=b=m);if(Gm(b)||typeof v.Promise===r&&b instanceof v.Promise)d=!0,a.j=!0}catch(p){b=p,a.g=!0,$p(a)||(c=!0)}}a.c=b;d&&(m=A(a.K,a,!0),d=A(a.K,a,!1),b instanceof Rp?(Zp(b,m,d),b.w=!0):b.then(m,d));c&&(b=new bq(b),aq[b.N]= +b,a.h=b.N)}function Xp(){E.call(this)}C(Xp,E);Xp.prototype.message="Deferred has already fired";Xp.prototype.name="AlreadyCalledError";function Tp(){E.call(this)}C(Tp,E);Tp.prototype.message="Deferred was canceled";Tp.prototype.name="CanceledError";function bq(a){this.N=v.setTimeout(A(this.b,this),0);this.a=a}bq.prototype.b=function(){F(aq[this.N],xc);delete aq[this.N];throw this.a;};var aq={};function cq(a,b){var c=b||{},d=c.document||document,e=document.createElement(yd),f={Ta:e,T:void 0},h=new Rp(dq,f),m=null,p=null!=c.timeout?c.timeout:5E3;0b)return LayoutsMessages.NUMBER_TOO_LARGE+k+b}}(1,5),showItemDate:null,showItemAuthor:null,securityToken:null,openLinksInNewWindow:null}; +function oq(a,b,c){this.h=a;this.b=b;this.a=c} +oq.prototype.c=function(a){wl(this.b);if(200==a.responseStatus){var b=document.createElement(kj);this.b.appendChild(b);for(var c=0;cb&&(a.height=Math.round(b/a.width*a.height),a.width=b);a.style.visibility=pj}}};B("_ImageView",Bq);function Cq(a){X.call(this,ad,a)}C(Cq,X);B("_LabelView",Cq);function Dq(a){X.call(this,Jd,a)}C(Dq,X);B("_TextListView",Dq);function Eq(a){X.call(this,bd,a)}C(Eq,X);B("_LinkListView",Eq);function Fq(a){X.call(this,vc,a)}C(Fq,X);B("_BloggerButtonView",Fq);function Gq(a){X.call(this,ld,a)}C(Gq,X);B("_NavbarView",Gq);function Hq(a){X.call(this,md,a)}C(Hq,X);Hq.prototype.C=function(){google.load(xi,Cb,{callback:this.a.bind(this)});window._uds_nbw_donotrepair=!0}; +Hq.prototype.a=function(){if(V(this.f,Ae)){var a=W(this.f,Ae),b,c=this.f.m().format;c==Pd?b=!1:c==Tc?b=!0:c==Sc&&(b=!0);c={largeResultSet:!1,horizontal:b,linkTarget:1==this.f.m().linkNewWindow?GSearch.LINK_TARGET_BLANK:GSearch.LINK_TARGET_SELF,title:k,autoExecuteList:{executeList:this.f.m().expression.split(/,/)}};b&&(c.autoExecuteList.cycleTime=GSnewsBar.CYCLE_TIME_MEDIUM,c.autoExecuteList.cycleMode=GSnewsBar.CYCLE_MODE_RANDOM);b=new GSnewsBar(a,c);window[a.id]=b}};B("_NewsBarView",Hq);function Iq(a){X.call(this,qd,a)}C(Iq,X);Iq.prototype.ga=function(){return qd};Iq.prototype.C=function(){if(0!=this.f.m().mobile){var a=V(this.f,Ai);a&&(a.onchange=function(a){a=a||window.event;a=a.target||a.srcElement;if(a=a.options[a.selectedIndex].value)window.location=a})}};var _PageListView=Iq;B("_PageListView",Iq);function Jq(a){X.call(this,Jq.a,a)}C(Jq,X);Jq.a="PlusBadge";B("_PlusBadgeView",Jq);function Kq(a){X.call(this,Kq.a,a)}C(Kq,X);Kq.a="PlusFollowers";B("_PlusFollowersView",Kq);function Lq(a){X.call(this,Lq.a,a)}C(Lq,X);Lq.a="PlusOne";B("_PlusOneView",Lq);function Mq(a){X.call(this,rd,a)}C(Mq,X);window.setInterval(function(){for(var a=document.getElementsByTagName(Xg),b,c=0;b=a[c];c++)if(0==b.name.indexOf(Yh))try{if(window.frames[b.name]&&window.frames[b.name].frames[0]){var d=Number(window.frames[b.name].frames[0].location.hash.replace(ja,g));d&&(b.style.height=d+10+ii)}}catch(e){}},500);B("_PollView",Mq);function Nq(a){X.call(this,sd,a)}C(Nq,X);B("_PopularPostsView",Nq);function Oq(a){X.call(this,vd,a);this.a=a.o}C(Oq,X);Oq.prototype.C=function(){this.a&&this.a.a&&(this.a.a.style.display=0==this.f.m().isDisplayable?t:g)};B("_ProfileView",Oq);function Pq(a){X.call(this,xd,a)}C(Pq,X);B("_RecentPostsView",Pq);function Qq(a){X.call(this,Qq.a,a)}C(Qq,X);Qq.a="Sharing";B("_SharingView",Qq);function Rq(a){X.call(this,Ed,a)}C(Rq,X);Rq.prototype.C=function(){window.location.protocol==Kg&&google.load(kg,Cb,{callback:this.a.bind(this)})}; +Rq.prototype.a=function(){if(V(this.f,Ei)){var a=W(this.f,Ei),b=this.f.m().computedFeed,c={linkTarget:this.f.m().linkNewWindow?google.feeds.LINK_TARGET_BLANK:google.feeds.LINK_TARGET_SELF,scaleImages:!0,fullControlPanel:!0,fullControlPanelSmallIcons:!0,pauseOnHover:!1,displayTime:this.f.m().speed};0==b.indexOf(Mg)&&(c.thumbnailUrlResolver=Sq);this.f.m().randomizeFeed&&(c.feedLoadCallback=Tq);new GFslideShow(b,a,c)}}; +function Sq(a){var b=google.feeds.getElementsByTagNameNS(a.xmlNode,Og,Zi);a=null;b.length&&(b=b[0],a=b.getAttribute(lj),a||(a=b.firstChild.nodeValue),a=a.replace(/^(.*)_[st]\.([a-zA-Z]+)$/,pa));return a}function Tq(a){a=a.feed.entries;for(var b=a.length-1;0d)d=kd;else{for(var d= +d.toString(),e=[],f=0,h=d.length;fVq(this.c))jm(this.b),Ym(this.b);else{this.c++;for(var b=g+this.c,c=0;cZ.g){for(h=0;h*{margin-right:1em}.post-footer-line>*:last-child{margin-right:0}.post-timestamp{margin-left:-1em}.post-footer-line>*:first-child{margin-left:0}.post .tr-caption-container{position:relative}.inline-ad{margin:2em 0;text-align:center;line-height:0}#comments .comment-author{padding-left:25px}.comment-body{margin:.5em 25px}.comment-footer{margin:.5em 25px 1.5em}.comment-body p{margin:0}#comments .avatar-comment-indent .comment-author{margin-left:-45px;padding-left:45px}.deleted-comment{font-style:italic;opacity:.5}.Profile img{margin:0 .75em .5em 0}.Profile .profile-datablock{margin:0 0 .5em}dt{font-weight:bold}table.section-columns td.first.columns-cell{border-left:none}.post-summary{padding-top:8px}#layout .header-outer,#layout .tabs-outer,#layout .main-outer,#layout .footer-outer{margin:5px 0}#layout .cap-top,#layout .cap-bottom{display:none}#layout .region-inner{padding:0 10px;margin:0}#layout .main-inner .column-center-inner,#layout .main-inner .column-left-inner,#layout .main-inner .column-right-inner{padding:0 5px}html{height:100%}body{min-height:100%;_height:100%;position:relative}.content{position:relative;word-wrap:break-word}.content-outer,.region-inner{min-height:0;margin:0 auto}.columns{zoom:1}.loading .columns{overflow:hidden}.columns-inner{_height:1%;min-height:0}.column-center-outer,.column-left-outer,.column-right-outer{position:relative;float:left;_display:inline;_overflow:hidden}.column-center-outer{width:100%}.column-left-outer{margin-left:-100%}.fauxcolumns{position:relative;_height:1%}.fauxcolumn-outer{position:absolute;top:0;bottom:0;height:expression(this.parentNode.offsetHeight+'px');overflow:hidden}.fauxcolumn-outer .fauxborder-left,.fauxcolumn-outer .fauxborder-right,.fauxcolumn-inner{height:100%}.fauxcolumn-left-outer{left:0}.fauxcolumn-right-outer{right:0}.cap-top,.cap-bottom{position:relative;height:0;background-repeat:repeat-x}.cap-top .cap-left,.cap-top .cap-right,.cap-bottom .cap-left,.cap-bottom .cap-right{height:100%;background-repeat:no-repeat}.cap-top,.cap-top .cap-left{background-position:top left}.cap-bottom,.cap-bottom .cap-left{background-position:bottom left}.cap-top .cap-left,.cap-bottom .cap-left{float:left}.cap-top .cap-right{background-position:top right;float:right}.cap-bottom .cap-right{background-position:bottom right;float:right}.fauxborder-left{background-position:top left;background-repeat:repeat-y;position:relative;_height:1%}.fauxborder-right{background-position:top right;background-repeat:repeat-y;position:absolute;right:0;height:100%;_height:expression(this.parentNode.offsetHeight+'px')}table.section-columns{border:none;table-layout:fixed;width:100%;position:relative}table.columns-2 td.columns-cell{width:50%}table.columns-3 td.columns-cell{width:33.33%}table.columns-4 td.columns-cell{width:25%}table.section-columns td.columns-cell{vertical-align:top}.body-fauxcolumns,.content-fauxcolumns{position:absolute;top:0;left:0;z-index:-1;height:100%;_height:expression(this.parentNode.offsetHeight+'px');width:100%;overflow:hidden}.body-fauxcolumns .fauxcolumn-outer{width:100%}.content-fauxcolumns .fauxcolumn-outer{position:relative;overflow:visible;height:100%;margin:0 auto}.content-fauxcolumns .fauxcolumn-left{width:100%}section,nav,article,aside,hgroup,header,footer{display:block}time,mark{display:inline}.blog-list-container ul{padding-left:0}.blog-list-container ul li{padding-left:0;list-style:none;list-style-image:none;clear:left}.blog-list-container a{text-decoration:none}.blog-list-container a:hover{text-decoration:underline}.blog-list-container .blog-content{float:left;margin:0 0 5px 5px;text-indent:0;width:85%}.blog-list-container .blog-title{font-weight:bold;line-height:16px;margin:2px 0 0 0}.blog-list-container .blog-icon{float:left;margin-top:2px;vertical-align:top;text-indent:0;width:16px}.blog-list-container .item-content{font-size:95%;line-height:1.3em}.blog-list-container .item-thumbnail{float:left;margin:2px 5px 5px 0}.blog-list-container .item-time{font-size:95%;font-style:italic;clear:left}.blog-list-title{font-weight:bold}.blog-list-container .show-option{font-size:75%;text-align:right}.contact-form-widget{height:320;margin-left:0;max-width:250px;padding:0;padding-top:0;width:100%}.contact-form-success-message{background:#f9edbe;border:0 solid #f0c36d;bottom:0;box-shadow:0 2px 4px rgba(0,0,0,.2);color:#222;font-size:11px;line-height:19px;margin-left:0;opacity:1;position:static;text-align:center}.contact-form-error-message{background:#f9edbe;border:0 solid #f0c36d;bottom:0;box-shadow:0 2px 4px rgba(0,0,0,.2);color:#666;font-size:11px;font-weight:bold;line-height:19px;margin-left:0;opacity:1;position:static;text-align:center}.contact-form-success-message-with-border{background:#f9edbe;border:1px solid #f0c36d;bottom:0;box-shadow:0 2px 4px rgba(0,0,0,.2);color:#222;font-size:11px;line-height:19px;margin-left:0;opacity:1;position:static;text-align:center}.contact-form-error-message-with-border{background:#f9edbe;border:1px solid #f0c36d;bottom:0;box-shadow:0 2px 4px rgba(0,0,0,.2);color:#666;font-size:11px;font-weight:bold;line-height:19px;margin-left:0;opacity:1;position:static;text-align:center}.contact-form-cross{height:11px;margin:0 5px;vertical-align:-8.5%;width:11px}.contact-form-email,.contact-form-name{background:#fff;background-color:#fff;border:1px solid #d9d9d9;border-top:1px solid #c0c0c0;box-sizing:border-box;color:#333;display:inline-block;font-family:Arial,sans-serif;font-size:13px;height:24px;margin:0;margin-top:5px;padding:0;vertical-align:top}.contact-form-email-message{background:#fff;background-color:#fff;border:1px solid #d9d9d9;border-top:1px solid #c0c0c0;box-sizing:border-box;color:#333;display:inline-block;font-family:Arial,sans-serif;font-size:13px;margin:0;margin-top:5px;padding:0;vertical-align:top}.contact-form-email:hover,.contact-form-name:hover,.contact-form-email-message:hover{border:1px solid #b9b9b9;border-top:1px solid #a0a0a0;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.contact-form-email:focus,.contact-form-name:focus,.contact-form-email-message:focus{border:1px solid #4d90fe;box-shadow:inset 0 1px 2px rgba(0,0,0,.3);outline:none}.contact-form-name,.contact-form-email,.contact-form-email-message{max-width:220px;width:100%}.contact-form-button{-webkit-border-radius:2px;-moz-border-radius:2px;-webkit-transition:all .218s;-moz-transition:all .218s;-o-transition:all .218s;-webkit-user-select:none;-moz-user-select:none;background-color:#f5f5f5;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-moz-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-ms-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-o-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:linear-gradient(top,#f5f5f5,#f1f1f1);border:1px solid #dcdcdc;border:1px solid rgba(0,0,0,.1);border-radius:2px;color:#444;cursor:default;display:inline-block;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#f5f5f5',EndColorStr='#f1f1f1');font-family:"Arial","Helvetica",sans-serif;font-size:11px;font-weight:bold;height:24px;line-height:24px;margin-left:0;min-width:54px;*min-width:70px;padding:0 8px;text-align:center;transition:all .218s}.contact-form-button:hover,.contact-form-button.hover{-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-transition:all 0;-o-transition:all 0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-webkit-transition:all 0;background-color:#f8f8f8;background-image:-webkit-gradient(linear,left top,left bottom,from(#f8f8f8),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-moz-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-ms-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-o-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:linear-gradient(top,#f8f8f8,#f1f1f1);border:1px solid #c6c6c6;box-shadow:0 1px 1px rgba(0,0,0,.1);color:#222;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#f8f8f8',EndColorStr='#f1f1f1');transition:all 0}.contact-form-button.focus,.contact-form-button.right.focus,.contact-form-button.mid.focus,.contact-form-button.left.focus{border:1px solid #4d90fe;outline:none;z-index:4 !important}.contact-form-button-submit:focus,.contact-form-button-submit.focus{-moz-box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);-webkit-box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.contact-form-button-submit:focus,.contact-form-button-submit.focus{border-color:#404040}.contact-form-button-submit:focus:hover,.contact-form-button-submit.focus:hover{-moz-box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,.1);-webkit-box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,.1)}.contact-form-button-submit{background-color:#666;background-image:-webkit-gradient(linear,left top,left bottom,from(#777),to(#555));background-image:-webkit-linear-gradient(top,#777,#555);background-image:-moz-linear-gradient(top,#777,#555);background-image:-ms-linear-gradient(top,#777,#555);background-image:-o-linear-gradient(top,#777,#555);background-image:linear-gradient(top,#777,#555);border:1px solid #505050;color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#777777',EndColorStr='#555555')}.contact-form-button-submit:hover{background-color:#555;background-image:-webkit-gradient(linear,left top,left bottom,from(#666),to(#444));background-image:-webkit-linear-gradient(top,#666,#444);background-image:-moz-linear-gradient(top,#666,#444);background-image:-ms-linear-gradient(top,#666,#444);background-image:-o-linear-gradient(top,#666,#444);background-image:linear-gradient(top,#666,#444);border:1px solid #404040;color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#666666',EndColorStr='#444444')}.contact-form-button-submit:active,.contact-form-button-submit:focus:active,.contact-form-button-submit.focus:active{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}.contact-form-button-submit{background-color:#4d90fe;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#4787ed));background-image:-webkit-linear-gradient(top,#4d90fe,#4787ed);background-image:-moz-linear-gradient(top,#4d90fe,#4787ed);background-image:-ms-linear-gradient(top,#4d90fe,#4787ed);background-image:-o-linear-gradient(top,#4d90fe,#4787ed);background-image:linear-gradient(top,#4d90fe,#4787ed);border-color:#3079ed;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#4d90fe',EndColorStr='#4787ed')}.contact-form-button-submit:hover{background-color:#357ae8;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#357ae8));background-image:-webkit-linear-gradient(top,#4d90fe,#357ae8);background-image:-moz-linear-gradient(top,#4d90fe,#357ae8);background-image:-ms-linear-gradient(top,#4d90fe,#357ae8);background-image:-o-linear-gradient(top,#4d90fe,#357ae8);background-image:linear-gradient(top,#4d90fe,#357ae8);border-color:#2f5bb7;filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#4d90fe',EndColorStr='#357ae8')}.contact-form-button.disabled,.contact-form-button.disabled:hover,.contact-form-button.disabled:active{background:none;border:1px solid #f3f3f3;border:1px solid rgba(0,0,0,.05);color:#b8b8b8;cursor:default;pointer-events:none}.contact-form-button-submit.disabled,.contact-form-button-submit.disabled:hover,.contact-form-button-submit.disabled:active{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";background-color:#666;border:1px solid #505050;color:#fff;filter:alpha(opacity=50);opacity:.5}.contact-form-button-submit.disabled,.contact-form-button-submit.disabled:hover,.contact-form-button-submit.disabled:active{background-color:#4d90fe;border-color:#3079ed}div.gsc-control{width:100%}.cse-status{color:#676767;font-size:11px;margin:10px;padding:4px}#uds-searchControl{position:relative}#uds-searchClearResults{position:absolute;top:15px;right:-3px;display:none;border-width:1px;border-style:solid;padding:0;height:9px;width:9px}#uds-searchControl .gsc-results{padding:1em 1em 0 1em;margin:0 0 2em;border-width:1px;border-style:solid;width:auto}#uds-searchControl .gsc-resultsHeader{display:none}#uds-searchControl .gsc-tabsArea{float:left;position:relative;top:1px;padding-right:10px}#uds-searchControl .gsc-tabHeader{float:left;line-height:1.7}#uds-searchControl .gsc-tabHeader.gsc-tabhActive{border-width:2px 1px 0 1px;border-style:solid;font-weight:bold}#uds-searchControl .gsc-tabHeader.gsc-tabhInactive{border-width:0;border-style:solid;padding-top:2px}#uds-searchControl .gsc-resultsbox-visible{clear:left}#uds-searchControl .gs-result .gs-title,#uds-searchControl .gsc-results .gsc-trailing-more-results{line-height:1.5em}#uds-searchControl .gs-relativePublishedDate,#uds-searchControl .gs-publishedDate{line-height:1.3em}#uds-searchControl .gs-result a.gs-visibleUrl,#uds-searchControl .gs-result .gs-visibleUrl{line-height:1.3em;font-size:95%}#uds-searchControl .gs-result .gs-snippet{margin:.25em 0;line-height:1.2em}#uds-searchControl .gs-no-results-result .gs-snippet,#uds-searchControl .gs-error-result .gs-snippet{border:none;background-color:transparent;font-style:italic}.Example{}.FollowByEmail .follow-by-email-inner{position:relative}.FollowByEmail .follow-by-email-inner span{display:block;position:relative;margin-right:74px}.FollowByEmail .follow-by-email-inner input{font-family:arial,sans-serif}.FollowByEmail .follow-by-email-inner::-webkit-input-placeholder,.FollowByEmail .follow-by-email-inner input:-moz-placeholder{font-size:13px;font-family:arial,sans-serif;color:#999}.FollowByEmail .follow-by-email-inner .follow-by-email-address{width:100%;height:22px;font-size:13px;border:1px inset}.FollowByEmail .follow-by-email-inner .follow-by-email-submit{width:60px;margin:0;margin-left:8px;border:0;border-radius:2px;-moz-border-radius:2px;background:#000 ;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:13px;height:26px;z-index:0}.FollowByEmail .widget-item-control{margin-top:5px}a.follower-link{cursor:pointer}a.next-page-link{cursor:pointer}.follower{width:32px;height:32px;float:left;margin:2px}.follower img{width:32px;clip:rect(0,32px,32px,0);position:absolute}div.clear{clear:both}.label-size-1{font-size:80%;filter:alpha(80);opacity:.8}.label-size-2{font-size:90%;filter:alpha(90);opacity:.9}.label-size-3{font-size:100%}.label-size-4{font-size:120%}.label-size-5{font-size:160%}.cloud-label-widget-content{text-align:justify}.label-count{white-space:nowrap}.label-size{line-height:1.2}.quickedit{cursor:pointer}.Navbar iframe{display:block}#navbar-iframe{display:block;height:30px}.newsBar-status{color:#676767;font-size:11px;margin:10px;padding:4px}img.gsc-branding-img-noclear{display:inline}.crosscol .PageList UL,.footer .PageList UL{list-style:none;margin:0;padding:0}.crosscol .PageList LI,.footer .PageList LI{list-style:none;float:left;padding-right:.75em;margin:.75em;background:none}.crosscol .PageList H2{display:none}.PageList LI A{font-weight:normal}.PageList LI.selected A{font-weight:bold;text-decoration:none}.PlusBadge{}.PlusFollowers{}.PlusOne{}.PopularPosts .item-thumbnail{float:left;margin:0 5px 5px 0}.PopularPosts .widget-content ul li{padding:.7em 0}.PopularPosts img{padding-right:.4em}.PopularPosts .item-title{padding-bottom:.2em}.default-avatar{display:none}.profile-img{float:left;margin:0 5px 5px}.profile-data{margin:0}.profile-datablock{margin:.5em 0}.profile-name-link{background:no-repeat left top;display:inline-block;min-height:20px;padding-left:20px}.profile-textblock{margin:.5em 0}.widget.Sharing .sharing-button{display:none}.widget.Sharing .sharing-buttons li{padding:0}.widget.Sharing .sharing-buttons li span{display:none}.post-share-buttons{position:relative}.post-share-buttons .share-buttons{position:absolute;top:-11px;margin:0;width:240px;padding:22px;z-index:101}.post-share-buttons .share-buttons.hidden{display:none}.post-share-buttons .sharing-button{cursor:pointer}.post-share-buttons .share-buttons li{padding:0;margin-bottom:22px;height:24px}.post-share-buttons .share-buttons li:last-child{margin-bottom:0}.post-share-buttons .share-buttons li a{vertical-align:middle;margin-bottom:2px}.dark-icons .sharing-facebook,.share-buttons.dark-icons .sharing-facebook{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -120px;background-size:24px 288px;width:24px;height:24px}.light-icons .sharing-facebook,.share-buttons.light-icons .sharing-facebook{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -168px;background-size:24px 288px;width:24px;height:24px}.dark-icons .sharing-googlePlus,.share-buttons.dark-icons .sharing-googlePlus{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -72px;background-size:24px 288px;width:24px;height:24px}.light-icons .sharing-googlePlus,.share-buttons.light-icons .sharing-googlePlus{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -192px;background-size:24px 288px;width:24px;height:24px}.dark-icons .sharing-link,.share-buttons.dark-icons .sharing-link{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -96px;background-size:24px 288px;width:24px;height:24px}.light-icons .sharing-link,.share-buttons.light-icons .sharing-link{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -144px;background-size:24px 288px;width:24px;height:24px}.dark-icons .sharing-pinterest,.share-buttons.dark-icons .sharing-pinterest{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -24px;background-size:24px 288px;width:24px;height:24px}.light-icons .sharing-pinterest,.share-buttons.light-icons .sharing-pinterest{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -264px;background-size:24px 288px;width:24px;height:24px}.dark-icons .sharing_share_icon,.share-buttons.dark-icons .sharing_share_icon{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -240px;background-size:24px 288px;width:24px;height:24px}.light-icons .sharing_share_icon,.share-buttons.light-icons .sharing_share_icon{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -48px;background-size:24px 288px;width:24px;height:24px}.dark-icons .sharing-twitter,.share-buttons.dark-icons .sharing-twitter{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 0;background-size:24px 288px;width:24px;height:24px}.light-icons .sharing-twitter,.share-buttons.light-icons .sharing-twitter{background:no-repeat url(../../../../www.blogblog.com/widgets/sharing/sprite_1x.png) 0 -216px;background-size:24px 288px;width:24px;height:24px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-moz-min-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:MIN_RESOLUTION_RETINA_DPI),only screen and (min-resolution:MIN_RESOLUTION_RETINA_DPPX){.dark-icons .sharing-facebook,.share-buttons.dark-icons .sharing-facebook{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -72px}.light-icons .sharing-facebook,.share-buttons.light-icons .sharing-facebook{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -192px}.dark-icons .sharing-googlePlus,.share-buttons.dark-icons .sharing-googlePlus{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -120px}.light-icons .sharing-googlePlus,.share-buttons.light-icons .sharing-googlePlus{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -216px}.dark-icons .sharing-link,.share-buttons.dark-icons .sharing-link{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -96px}.light-icons .sharing-link,.share-buttons.light-icons .sharing-link{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -240px}.dark-icons .sharing-pinterest,.share-buttons.dark-icons .sharing-pinterest{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -168px}.light-icons .sharing-pinterest,.share-buttons.light-icons .sharing-pinterest{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -24px}.dark-icons .sharing_share_icon,.share-buttons.dark-icons .sharing_share_icon{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -264px}.light-icons .sharing_share_icon,.share-buttons.light-icons .sharing_share_icon{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 0}.dark-icons .sharing-twitter,.share-buttons.dark-icons .sharing-twitter{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -144px}.light-icons .sharing-twitter,.share-buttons.light-icons .sharing-twitter{background-image:url(../../../../www.blogblog.com/widgets/sharing/sprite_2x.png);background-position:0 -48px}}.slideshow-status{color:#676767;font-size:11px;margin:10px;padding:4px}.slideshow-wrapper{display:inline-block;position:relative;width:100%}.slideshow-wrapper:after{content:'';display:block;margin-top:100%}.slideshow-spacer{margin:auto}.slideshow-container{bottom:0;left:0;position:absolute;right:0;top:0}img.gsc-branding-img-noclear{display:inline}.slideshow-container img{display:inline}.Stats .counter-wrapper{display:inline-block;font-size:24px;font-weight:bold;height:30px;line-height:30px;vertical-align:top;direction:ltr}.Stats img{margin-right:10px;vertical-align:top}.Stats .graph-counter-wrapper{color:#fff}.Stats .digit{background:url("../../../img/widgets/stats-flipper.png") no-repeat left !important;border:1px solid #fff;display:inline-block;height:28px;line-height:28px;margin-left:-1px;position:relative;text-align:center;width:22px}.Stats .blind-plate{border-bottom:1px solid #fff;border-top:1px solid #000;filter:alpha(opacity=65);height:0;left:0;opacity:.65;position:absolute;top:13px;width:22px}.Stats .stage-0{background-position:0 0 !important}.Stats .stage-1{background-position:-22px 0 !important}.Stats .stage-2{background-position:-44px 0 !important}.Stats .stage-3{background-position:-66px 0 !important}.widget.Subscribe{position:static}.widget.Subscribe .widget-content{zoom:1}.subscribe-feed-title{float:left}.subscribe{cursor:pointer;color:#999}.subscribe a{color:#999}.subscribe-wrapper{margin:.5em;padding:0;position:relative;zoom:1}div.subscribe{cursor:pointer;margin:0;padding:0;text-align:left;width:144px}div.subscribe div.top{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='https://www.blogger.com/img/widgets/s_top.png',sizingMethod='crop');font-size:1em;padding:4px 0 1px;width:144px}html>body div.subscribe div.top{background:url(../../../img/widgets/s_top.png) top left no-repeat}span.inner{margin:0;padding:0}div.subscribe div.top span.inner{margin:0 5px}.feed-icon{vertical-align:baseline;display:inline}div.subscribe div.bottom{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='https://www.blogger.com/img/widgets/s_bottom.png',sizingMethod='crop');font-size:3px;height:3px;line-height:0}.subscribe-wrapper .expanded{position:absolute;top:0;z-index:20}html>body div.subscribe div.bottom{background:url(../../../img/widgets/s_bottom.png) bottom left no-repeat;margin-bottom:0;padding-bottom:0;width:144px}.feed-reader-links{list-style:none;margin:10px 20px;padding:0;position:relative}.subscribe-dropdown-arrow{float:right;margin-right:6px;margin-top:4px}.feed-reader-links{list-style:none;margin:0;padding:0}a.feed-reader-link{display:block;font-weight:normal;margin:.5em;text-decoration:none;z-index:1000}.feed-reader-link img{border:0;display:inline}.Translate a.goog-te-menu-value{text-decoration:none}.Translate .goog-te-menu-value span{color:#000}.Translate .goog-te-gadget a:link.goog-logo-link{font-size:12px;font-weight:bold;color:#444;text-decoration:none}.Translate .goog-te-combo{background-color:#f5f5f5;color:#444;border:1px solid #dcdcdc;padding:6px;font-family:Arial,Helvetica,sans-serif}div.floatingPlayer_gsvb div.playerInnerBox_gsvb .player_gsvb{width:320px;height:260px}.videoBar-status{color:#676767;font-size:11px;margin:10px;padding:4px}.videoBar-container{margin:auto;text-transform:none;font-family:Arial,sans-serif;letter-spacing:normal;word-spacing:normal;clear:both}.wikipedia-search-main-container{max-width:350px}.wikipedia-search-wiki-link{vertical-align:middle;width:8%}.wikipedia-search-input{border:1px solid #d9d9d9;border-top:1px solid #c0c0c0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;height:28px;padding-left:4px;vertical-align:top;width:60%}.wikipedia-search-input:hover{border:1px solid #b9b9b9;border-top:1px solid #a0a0a0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-ms-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.wikipedia-search-input:focus{border:1px solid #4d90fe;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);-ms-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);box-shadow:inset 0 1px 2px rgba(0,0,0,.3);outline:none}.wikipedia-search-form{margin:0;overflow:hidden;padding-bottom:0;padding-left:6px}.wikipedia-search-results-header{border-bottom:1px solid #ebebeb;display:none;font-weight:bold;height:19px;padding-top:3px}.wikipedia-search-button{background-color:#4d90fe;background-image:url('../../../img/widgets/icon_wikipedia_search.png');background-position:center;background-repeat:no-repeat;border:1px solid #3079ed;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;color:transparent;font-size:11px;font-weight:bold;height:28px;text-align:center;width:38px}.wikipedia-search-button:hover{background-color:#357ae8;border:1px solid #2f5bb7;color:transparent}.wikipedia-search-button:focus{-webkit-box-shadow:inset 0 0 0 1px #fff;-moz-box-shadow:inset 0 0 0 1px #fff;-ms-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}.wikipedia-search-results{color:#dd4b39;padding-top:2px}.wikipedia-search-result-link a:link,.wikipedia-search-more a:visited,.wikipedia-search-result-link a:visited{text-decoration:none}.wikipedia-search-more a:hover,.wikipedia-search-result-link a:hover,.wikipedia-search-more a:active,.wikipedia-search-result-link a:active{text-decoration:underline}.wikipedia-search-more a:link{text-decoration:none}.wikipedia-search-main-container{padding-top:5px}.wikipedia-searchtable{position:relative;right:6px}.wikipedia-search-bar{white-space:nowrap}.wikipedia-icon{padding-bottom:5px}.wikipedia-input-box{padding:0 2px}#ArchiveList .toggle{cursor:pointer;font-family:Arial,sans-serif}#ArchiveList .toggle-open{_font-size:1.7em;line-height:.6em}#ArchiveList{text-align:left}#ArchiveList a.post-count-link,#ArchiveList a.post-count-link:link,#ArchiveList a.post-count-link:visited{text-decoration:none}#ArchiveList a.toggle,#ArchiveList a.toggle:link,#ArchiveList a.toggle:visited,#ArchiveList a.toggle:hover{color:inherit;text-decoration:none}.BlogArchive #ArchiveList ul li{background:none;list-style:none;list-style-image:none;list-style-position:outside;border-width:0;padding-left:15px;text-indent:-15px;margin:.25em 0;background-image:none}.BlogArchive #ArchiveList ul ul li{padding-left:1.2em}.BlogArchive #ArchiveList ul{margin:0;padding:0;list-style:none;list-style-image:none;border-width:0}.BlogArchive #ArchiveList ul.posts li{padding-left:1.3em}#ArchiveList .collapsed ul{display:none}.post-footer abbr{border:none}.author-profile{margin:5px 5px 0 0;overflow:hidden}.author-profile img{border:1px solid #efefef;float:left;margin-right:5px}#blog-pager-newer-link{float:left}#blog-pager-older-link{float:right}#blog-pager{margin:1em 0;text-align:center;overflow:hidden}.backlink-toggle-zippy{padding-right:11px;margin-right:.1em;cursor:pointer;cursor:hand;background:url(../../../img/triangle_ltr.gif) no-repeat left center}.expanded-backlink .backlink-toggle-zippy{background-image:url("../../../img/triangle_open.gif")}.collapsed-backlink .collapseable{display:none}.status-msg-wrap{font-size:110%;width:90%;margin:10px auto;position:relative}.status-msg-border{border:1px solid #000;filter:alpha(opacity=40);-moz-opacity:.4;opacity:.4;width:100%;position:relative}.status-msg-bg{background-color:#ccc;opacity:.8;filter:alpha(opacity=30);-moz-opacity:.8;width:100%;position:relative;z-index:1}.status-msg-body{text-align:center;padding:.3em 0;width:100%;position:absolute;z-index:4}.status-msg-hidden{visibility:hidden;padding:.3em 0}.status-msg-wrap a{padding-left:.4em;text-decoration:underline}.reactions-label{margin:3px 0 0 0}.reactions-label-cell{line-height:2.3em}.reactions-iframe{background:transparent;height:2.3em;width:100%;border:0}#comment-actions{background:transparent;border:0;padding:0;position:absolute;height:25px}#comments .blogger-comment-icon,.blogger-comment-icon{line-height:16px;background:url(../../../img/b16-rounded.gif) left no-repeat;padding-left:20px}#comments .openid-comment-icon,.openid-comment-icon{line-height:16px;background:url(../../../img/openid16-rounded.gif) left no-repeat;padding-left:20px}#comments .anon-comment-icon,.anon-comment-icon{line-height:16px;background:url(../../../img/anon16-rounded.gif) left no-repeat;padding-left:20px}.comment-form{clear:both;_width:410px}.comment-link{white-space:nowrap}.paging-control-container{float:right;margin:0 6px 0 0;font-size:80%}.unneeded-paging-control{visibility:hidden}#comments-block .avatar-image-container img{-ms-interpolation-mode:bicubic;border:1px solid #ccc;float:right}#comments-block .avatar-image-container.avatar-stock img{border-width:0;padding:1px}#comments-block .avatar-image-container{height:37px;left:-45px;position:absolute;width:37px}#comments-block.avatar-comment-indent{margin-left:45px;position:relative}#comments-block.avatar-comment-indent dd{margin-left:0}iframe.avatar-hovercard-iframe{border:0 none;padding:0;width:25em;height:9.4em;margin:.5em}.comments{clear:both;margin-top:10px;margin-bottom:0}.comments .comments-content{margin-bottom:16px}.comments .comment .comment-actions a{padding-right:5px;padding-top:5px}.comments .comment .comment-actions a:hover{text-decoration:underline}.comments .comments-content .comment-thread ol{list-style-type:none;padding:0;text-align:left}.comments .comments-content .inline-thread{padding:.5em 1em}.comments .comments-content .comment-thread{margin:8px 0}.comments .comments-content .comment-thread:empty{display:none}.comments .comments-content .comment-replies{margin-left:36px;margin-top:1em}.comments .comments-content .comment{margin-bottom:16px;padding-bottom:8px}.comments .comments-content .comment:first-child{padding-top:16px}.comments .comments-content .comment:last-child{border-bottom:0;padding-bottom:0}.comments .comments-content .comment-body{position:relative}.comments .comments-content .user{font-style:normal;font-weight:bold}.comments .comments-content .icon.blog-author{display:inline-block;height:18px;margin:0 0 -4px 6px;width:18px}.comments .comments-content .datetime{margin-left:6px}.comments .comments-content .comment-header,.comments .comments-content .comment-content{margin:0 0 8px}.comments .comments-content .comment-content{text-align:justify}.comments .comments-content .owner-actions{position:absolute;right:0;top:0}.comments .comments-replybox{border:none;height:250px;width:100%}.comments .comment-replybox-single{margin-left:48px;margin-top:5px}.comments .comment-replybox-thread{margin-top:5px}.comments .comments-content .loadmore a{display:block;padding:10px 16px;text-align:center}.comments .thread-toggle{cursor:pointer;display:inline-block}.comments .continue{cursor:pointer}.comments .continue a{display:block;font-weight:bold;padding:.5em}.comments .comments-content .loadmore{cursor:pointer;margin-top:3em;max-height:3em}.comments .comments-content .loadmore.loaded{max-height:0;opacity:0;overflow:hidden}.comments .thread-chrome.thread-collapsed{display:none}.comments .thread-toggle{display:inline-block}.comments .thread-toggle .thread-arrow{display:inline-block;height:6px;margin:.3em;overflow:visible;padding-right:4px;width:7px}.comments .thread-expanded .thread-arrow{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAG0lEQVR42mNgwAfKy8v/48I4FeA0AacVDFQBAP9wJkE/KhUMAAAAAElFTkSuQmCC") no-repeat scroll 0 0 transparent}.comments .thread-collapsed .thread-arrow{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAJUlEQVR42mNgAILy8vL/DLgASBKnApgkVgXIkhgKiNKJ005s4gDLbCZBiSxfygAAAABJRU5ErkJggg==") no-repeat scroll 0 0 transparent}.comments .avatar-image-container{float:left;max-height:36px;overflow:hidden;width:36px}.comments .avatar-image-container img{max-width:36px}.comments .comment-block{margin-left:48px;position:relative}@media screen and (max-device-width:480px){.comments .comments-content .comment-replies{margin-left:0}}table.tr-caption-container{padding:4px;margin-bottom:.5em}td.tr-caption{font-size:80%}.icon-action{border-style:none !important;margin:0 0 0 .5em !important;vertical-align:middle}.comment-action-icon{width:13px;height:13px;margin-top:3px}.delete-comment-icon{background:url("../../../img/icon_delete13.gif") no-repeat left;padding:7px}#comment-popup{position:absolute;visibility:hidden;width:100px;height:20px}@media all{.BLOG_mobile_video_class{display:none}}@media handheld{.BLOG_mobile_video_class{display:inline}.BLOG_video_class{display:none}}.post-share-buttons{display:inline-block;margin-top:.5em;vertical-align:middle}.share-button{width:20px;height:20px;background:url(../../../img/share_buttons_20_3.png) no-repeat left !important;overflow:hidden;margin-left:-1px;position:relative}.dummy-container,.google-plus-share-container{vertical-align:top;padding-left:.3em}a:hover.share-button{text-decoration:none;z-index:1}.share-button-link-text{display:block;text-indent:-9999px}.sb-email{background-position:0 0 !important}a:hover.sb-email{background-position:0 -20px !important}a:active.sb-email{background-position:0 -40px !important}.sb-blog{background-position:-20px 0 !important}a:hover.sb-blog{background-position:-20px -20px !important}a:active.sb-blog{background-position:-20px -40px !important}.sb-twitter{background-position:-40px 0 !important}a:hover.sb-twitter{background-position:-40px -20px !important}a:active.sb-twitter{background-position:-40px -40px !important}.sb-facebook{background-position:-60px 0 !important}a:hover.sb-facebook{background-position:-60px -20px !important}a:active.sb-facebook{background-position:-60px -40px !important}.sb-buzz{display:none !important}.sb-pinterest{background-position:-100px 0 !important}a:hover.sb-pinterest{background-position:-100px -20px !important}a:active.sb-pinterest{background-position:-100px -40px !important}.sb-google{background:url(../../../img/plusone/plusonepreview.png) no-repeat;height:20px;vertical-align:top;width:82px}.goog-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .goog-inline-block{display:inline}*:first-child+html .goog-inline-block{display:inline}.goog-custom-button{margin:2px;border:0;padding:0;font-family:Arial,sans-serif;color:#000;text-decoration:none;list-style:none;vertical-align:middle;cursor:default;outline:none}.goog-custom-button-outer-box,.goog-custom-button-inner-box{border-style:solid;border-color:transparent;vertical-align:top}.goog-custom-button-checked .goog-custom-button-outer-box,.goog-custom-button-checked .goog-custom-button-inner-box{border-color:#ccc}.goog-custom-button-outer-box{margin:0;border-width:1px 0;padding:0}.goog-custom-button-inner-box{-moz-box-orient:vertical;margin:0 -1px;border-width:0 1px;padding:3px 4px;white-space:nowrap}* html .goog-custom-button-inner-box{left:-1px}* html .goog-custom-button-rtl .goog-custom-button-outer-box{left:-1px}* html .goog-custom-button-rtl .goog-custom-button-inner-box{right:auto}*:first-child+html .goog-custom-button-inner-box{left:-1px}*:first-child+html .goog-custom-button-rtl .goog-custom-button-inner-box{left:1px}::root .goog-custom-button,::root .goog-custom-button-outer-box{line-height:0}::root .goog-custom-button-inner-box{line-height:normal}.goog-custom-button-active,.goog-custom-button-checked{background-color:#faf6bc;background-position:bottom left}.blog-mobile-link{padding:15px}#mobile-share-button{height:18px;padding:1px 10px;text-align:center;vertical-align:top;margin:0}#mobile-share-button a{display:block;height:100%;line-height:18px;width:100%}.mobile-share-panel-outer{background:#444}.mobile-share-panel-inner{background:#fff;border-bottom-left-radius:2px 2px;border-bottom-right-radius:2px 2px;border-radius:3px;-webkit-border-radius:3px;font-family:Arial;font-size:18px;color:#666}.mobile .mobile-share-panel-inner a{display:block;color:#666}.mobile-share-panel-title{background:#f5f5f5;border-bottom:1px solid #eee;border-top-left-radius:2px 2px;border-top-right-radius:2px 2px;height:25px;line-height:25px;padding:10px 10px 10px 20px}.mobile a.mobile-share-panel-button{background:#fff url(../../../img/mobile_share_icons4.png) no-repeat left !important;border-bottom:1px solid #eee;height:50px;line-height:30px;padding:10px 0 10px 65px;width:100%;-webkit-box-sizing:border-box}.mobile-share-panel-button-close{font-size:26px;float:right;height:25px;line-height:25px;text-align:center;width:25px}.mobile a.mobile-share-panel-button-email{background-position:10px 0 !important}.mobile a.mobile-share-panel-button-facebook{background-position:10px -50px !important}.mobile a.mobile-share-panel-button-twitter{background-position:10px -100px !important}.mobile a.mobile-share-panel-button-googleplus{background:#fff url(../../../../www.gstatic.com/images/icons/gplus-32.png) no-repeat left !important;background-position:19px 9px !important}.mobile a.mobile-share-panel-button-buzz{background-position:10px -150px !important;border-bottom-left-radius:2px 2px;border-bottom-right-radius:2px 2px} diff --git a/references/qubes-postgresql/www.google.com/images/icons/ui/gprofile_button-16.png b/references/qubes-postgresql/www.google.com/images/icons/ui/gprofile_button-16.png new file mode 100644 index 0000000..a1b4445 Binary files /dev/null and b/references/qubes-postgresql/www.google.com/images/icons/ui/gprofile_button-16.png differ diff --git a/references/qubes-postgresql/www.google.com/robots.txt b/references/qubes-postgresql/www.google.com/robots.txt new file mode 100644 index 0000000..2d45983 --- /dev/null +++ b/references/qubes-postgresql/www.google.com/robots.txt @@ -0,0 +1,319 @@ +User-agent: * +Disallow: /search +Allow: /search/about +Disallow: /sdch +Disallow: /groups +Disallow: /catalogs +Allow: /catalogs/about +Allow: /catalogs/p? +Disallow: /catalogues +Allow: /newsalerts +Disallow: /news +Allow: /news/directory +Disallow: /nwshp +Disallow: /setnewsprefs? +Disallow: /index.html? +Disallow: /? +Allow: /?hl= +Disallow: /?hl=*& +Allow: /?hl=*&gws_rd=ssl$ +Disallow: /?hl=*&*&gws_rd=ssl +Allow: /?gws_rd=ssl$ +Allow: /?pt1=true$ +Disallow: /addurl/image? +Allow: /mail/help/ +Disallow: /mail/ +Disallow: /pagead/ +Disallow: /relpage/ +Disallow: /relcontent +Disallow: /imgres +Disallow: /imglanding +Disallow: /sbd +Disallow: /keyword/ +Disallow: /u/ +Disallow: /univ/ +Disallow: /cobrand +Disallow: /custom +Disallow: /advanced_group_search +Disallow: /googlesite +Disallow: /preferences +Disallow: /setprefs +Disallow: /swr +Disallow: /url +Disallow: /default +Disallow: /m? +Disallow: /m/ +Allow: /m/finance +Disallow: /wml? +Disallow: /wml/? +Disallow: /wml/search? +Disallow: /xhtml? +Disallow: /xhtml/? +Disallow: /xhtml/search? +Disallow: /xml? +Disallow: /imode? +Disallow: /imode/? +Disallow: /imode/search? +Disallow: /jsky? +Disallow: /jsky/? +Disallow: /jsky/search? +Disallow: /pda? +Disallow: /pda/? +Disallow: /pda/search? +Disallow: /sprint_xhtml +Disallow: /sprint_wml +Disallow: /pqa +Disallow: /palm +Disallow: /gwt/ +Disallow: /purchases +Disallow: /bsd? +Disallow: /linux? +Disallow: /mac? +Disallow: /microsoft? +Disallow: /unclesam? +Disallow: /answers/search?q= +Disallow: /local? +Disallow: /local_url +Disallow: /shihui? +Disallow: /shihui/ +Disallow: /froogle? +Disallow: /products? +Disallow: /froogle_ +Disallow: /product_ +Disallow: /products_ +Disallow: /products; +Disallow: /print +Disallow: /books/ +Disallow: /bkshp?*q=* +Disallow: /books?*q=* +Disallow: /books?*output=* +Disallow: /books?*pg=* +Disallow: /books?*jtp=* +Disallow: /books?*jscmd=* +Disallow: /books?*buy=* +Disallow: /books?*zoom=* +Allow: /books?*q=related:* +Allow: /books?*q=editions:* +Allow: /books?*q=subject:* +Allow: /books/about +Allow: /booksrightsholders +Allow: /books?*zoom=1* +Allow: /books?*zoom=5* +Disallow: /ebooks/ +Disallow: /ebooks?*q=* +Disallow: /ebooks?*output=* +Disallow: /ebooks?*pg=* +Disallow: /ebooks?*jscmd=* +Disallow: /ebooks?*buy=* +Disallow: /ebooks?*zoom=* +Allow: /ebooks?*q=related:* +Allow: /ebooks?*q=editions:* +Allow: /ebooks?*q=subject:* +Allow: /ebooks?*zoom=1* +Allow: /ebooks?*zoom=5* +Disallow: /patents? +Disallow: /patents/download/ +Disallow: /patents/pdf/ +Disallow: /patents/related/ +Disallow: /scholar +Disallow: /citations? +Allow: /citations?user= +Disallow: /citations?*cstart= +Allow: /citations?view_op=new_profile +Allow: /citations?view_op=top_venues +Disallow: /complete +Disallow: /s? +Disallow: /sponsoredlinks +Disallow: /videosearch? +Disallow: /videopreview? +Disallow: /videoprograminfo? +Allow: /maps?*output=classic* +Allow: /maps?*file= +Allow: /maps/api/js? +Allow: /maps/d/ +Disallow: /maps? +Disallow: /mapstt? +Disallow: /mapslt? +Disallow: /maps/stk/ +Disallow: /maps/br? +Disallow: /mapabcpoi? +Disallow: /maphp? +Disallow: /mapprint? +Disallow: /maps/api/js/ +Disallow: /maps/api/staticmap? +Disallow: /maps/api/streetview +Disallow: /mld? +Disallow: /staticmap? +Disallow: /places/ +Allow: /places/$ +Disallow: /maps/preview +Disallow: /maps/place +Disallow: /help/maps/streetview/partners/welcome/ +Disallow: /help/maps/indoormaps/partners/ +Disallow: /lochp? +Disallow: /center +Disallow: /ie? +Disallow: /sms/demo? +Disallow: /katrina? +Disallow: /blogsearch? +Disallow: /blogsearch/ +Disallow: /blogsearch_feeds +Disallow: /advanced_blog_search +Disallow: /uds/ +Disallow: /chart? +Disallow: /transit? +Disallow: /mbd? +Disallow: /extern_js/ +Disallow: /xjs/ +Disallow: /calendar/feeds/ +Disallow: /calendar/ical/ +Disallow: /cl2/feeds/ +Disallow: /cl2/ical/ +Disallow: /coop/directory +Disallow: /coop/manage +Disallow: /trends? +Disallow: /trends/music? +Disallow: /trends/hottrends? +Disallow: /trends/viz? +Disallow: /trends/embed.js? +Disallow: /trends/fetchComponent? +Disallow: /notebook/search? +Disallow: /musica +Disallow: /musicad +Disallow: /musicas +Disallow: /musicl +Disallow: /musics +Disallow: /musicsearch +Disallow: /musicsp +Disallow: /musiclp +Disallow: /browsersync +Disallow: /call +Disallow: /archivesearch? +Disallow: /archivesearch/url +Disallow: /archivesearch/advanced_search +Disallow: /base/reportbadoffer +Disallow: /urchin_test/ +Disallow: /movies? +Disallow: /codesearch? +Disallow: /codesearch/feeds/search? +Disallow: /wapsearch? +Disallow: /safebrowsing +Allow: /safebrowsing/diagnostic +Allow: /safebrowsing/report_badware/ +Allow: /safebrowsing/report_error/ +Allow: /safebrowsing/report_phish/ +Disallow: /reviews/search? +Disallow: /orkut/albums +Allow: /jsapi +Disallow: /views? +Disallow: /c/ +Disallow: /cbk +Allow: /cbk?output=tile&cb_client=maps_sv +Disallow: /kh +Disallow: /vt +Disallow: /maps/vt +Disallow: /recharge/dashboard/car +Disallow: /recharge/dashboard/static/ +Disallow: /translate_a/ +Disallow: /translate_c +Disallow: /translate_f +Disallow: /translate_static/ +Disallow: /translate_suggestion +Disallow: /profiles/me +Allow: /profiles +Disallow: /s2/profiles/me +Allow: /s2/profiles +Allow: /s2/oz +Allow: /s2/photos +Allow: /s2/search/social +Allow: /s2/static +Disallow: /s2 +Disallow: /transconsole/portal/ +Disallow: /gcc/ +Disallow: /aclk +Disallow: /cse? +Disallow: /cse/home +Disallow: /cse/panel +Disallow: /cse/manage +Disallow: /tbproxy/ +Disallow: /imesync/ +Disallow: /shenghuo/search? +Disallow: /support/forum/search? +Disallow: /reviews/polls/ +Disallow: /hosted/images/ +Disallow: /ppob/? +Disallow: /ppob? +Disallow: /adwordsresellers +Disallow: /accounts/ClientLogin +Disallow: /accounts/ClientAuth +Disallow: /accounts/o8 +Allow: /accounts/o8/id +Disallow: /topicsearch?q= +Disallow: /xfx7/ +Disallow: /squared/api +Disallow: /squared/search +Disallow: /squared/table +Disallow: /toolkit/ +Allow: /toolkit/*.html +Disallow: /globalmarketfinder/ +Allow: /globalmarketfinder/*.html +Disallow: /qnasearch? +Disallow: /app/updates +Disallow: /sidewiki/entry/ +Disallow: /quality_form? +Disallow: /labs/popgadget/search +Disallow: /buzz/post +Disallow: /compressiontest/ +Disallow: /analytics/reporting/ +Disallow: /analytics/admin/ +Disallow: /analytics/web/ +Disallow: /analytics/feeds/ +Disallow: /analytics/settings/ +Allow: /alerts/manage +Allow: /alerts/remove +Disallow: /alerts/ +Allow: /alerts/$ +Disallow: /ads/search? +Disallow: /ads/plan/action_plan? +Disallow: /ads/plan/api/ +Disallow: /ads/hotels/partners +Disallow: /phone/compare/? +Disallow: /travel/clk +Disallow: /hotelfinder/rpc +Disallow: /hotels/rpc +Disallow: /flights/rpc +Disallow: /commercesearch/services/ +Disallow: /evaluation/ +Disallow: /chrome/browser/mobile/tour +Disallow: /compare/*/apply* +Disallow: /forms/perks/ +Disallow: /baraza/*/search +Disallow: /baraza/*/report +Disallow: /shopping/suppliers/search +Disallow: /ct/ +Disallow: /edu/cs4hs/ +Disallow: /trustedstores/s/ +Disallow: /trustedstores/tm2 +Disallow: /trustedstores/verify +Disallow: /adwords/proposal +Disallow: /shopping/product/ +Disallow: /shopping/seller +Disallow: /shopping/reviewer +Disallow: /about/careers/apply/ +Disallow: /about/careers/applications/ +Disallow: /landing/signout.html +Disallow: /webmasters/sitemaps/ping? +Disallow: /ping? +Allow: /gb/images +Allow: /gb/js +Disallow: /gallery/ +Allow: /chromecast/setup$ +Allow: /chromecast/setup/$ +Disallow: /landing/now/ontap/ +Sitemap: http://www.gstatic.com/culturalinstitute/sitemaps/www_google_com_culturalinstitute/sitemap-index.xml +Sitemap: http://www.gstatic.com/dictionary/static/sitemaps/sitemap_index.xml +Sitemap: http://www.gstatic.com/earth/gallery/sitemaps/sitemap.xml +Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml +Sitemap: http://www.gstatic.com/trends/websites/sitemaps/sitemapindex.xml +Sitemap: https://www.google.com/sitemap.xml + diff --git a/references/qubes-postgresql/www.gstatic.com/images/icons/gplus-32.png b/references/qubes-postgresql/www.gstatic.com/images/icons/gplus-32.png new file mode 100644 index 0000000..64d91d9 Binary files /dev/null and b/references/qubes-postgresql/www.gstatic.com/images/icons/gplus-32.png differ diff --git a/references/qubes-postgresql/www.gstatic.com/robots.txt b/references/qubes-postgresql/www.gstatic.com/robots.txt new file mode 100644 index 0000000..de33976 --- /dev/null +++ b/references/qubes-postgresql/www.gstatic.com/robots.txt @@ -0,0 +1,46 @@ +User-agent: * +Allow: /_/compare-banking/ +Allow: /_/compare-insurance/ +Allow: /_/play/ +Allow: /ads/learn/ +Allow: /ads/local/ +Allow: /ads/research/ +Allow: /ads/ubaq/ +Allow: /android/market/ +Allow: /android/market_images/ +Allow: /compare/ +Allow: /chrome/crlset/ +Allow: /cloud-launcher/sitemap/ +Allow: /commercesearch/images/ +Allow: /communities/sitemap/ +Allow: /culturalinstitute/sitemaps/ +Allow: /dictionary/static/sitemaps/ +Allow: /droidguard/ +Allow: /earth/gallery/sitemaps/ +Allow: /enterprise-partner-search/sitemaps/ +Allow: /external_hosted/ +Allow: /frommers/ +Allow: /gb/images/ +Allow: /glass/images/commerce/ +Allow: /GoogleInternetAuthority/ +Allow: /images +Allow: /inproduct_help/chatsupport/ +Allow: /mapspro/ +Allow: /moderator/static/ux/ +Allow: /play/store/web/ +Allow: /s2/oz/ +Allow: /s2/sitemaps/ +Allow: /sites/ +Allow: /sitemaps/ +Allow: /social/photosui/sitemap/ +Allow: /support/content/ +Allow: /trends/websites/sitemaps/ +Allow: /trustedstores/images/ +Allow: /trustedstores/js/ +Allow: /tv/thumb/ +Allow: /ui/ +Allow: /icons/ +Allow: *.js +Allow: *.css + +Disallow: /