").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window);
/*!
* jQuery Form Plugin
* version: 3.51.0-2014.06.20
* Requires jQuery v1.5 or later
* Copyright (c) 2014 M. Alsup
* Examples and documentation at: http://malsup.com/jquery/form/
* Project repository: https://github.com/malsup/form
* Dual licensed under the MIT and GPL licenses.
* https://github.com/malsup/form#copyright-and-license
*/
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i').val(m.extraData[d].value).appendTo(w)[0]:e('').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("pre")[0],h=M.getElementsByTagName("body")[0];p?x.responseText=p.textContent?p.textContent:p.innerText:h&&(x.responseText=h.textContent?h.textContent:h.innerText)}}else"xml"==c&&!x.responseXML&&x.responseText&&(x.responseXML=X(x.responseText));try{E=_(x,c,m)}catch(y){i="parsererror",x.error=r=y||i}}catch(y){a("error caught: ",y),i="error",x.error=r=y||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(m.success&&m.success.call(m.context,E,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,m])):i&&(void 0===r&&(r=x.statusText),m.error&&m.error.call(m.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,m,r])),d&&e.event.trigger("ajaxComplete",[x,m]),d&&!--e.active&&e.event.trigger("ajaxStop"),m.complete&&m.complete.call(m.context,x,i),F=!0,m.timeout&&clearTimeout(j),setTimeout(function(){m.iframeTarget?v.attr("src",m.iframeSrc):v.remove(),x.responseXML=null},100)}}}var c,l,m,d,p,v,g,x,y,b,T,j,w=f[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(l=0;l'),v.css({position:"absolute",top:"-1000px",left:"-1000px"})),g=v[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{g.contentWindow.document.execCommand&&g.contentWindow.document.execCommand("Stop")}catch(n){}v.attr("src",m.iframeSrc),x.error=r,m.error&&m.error.call(m.context,x,r,t),d&&e.event.trigger("ajaxError",[x,m,r]),m.complete&&m.complete.call(m.context,x,r)}},d=m.global,d&&0===e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,m]),m.beforeSend&&m.beforeSend.call(m.context,x,m)===!1)return m.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;y=w.clk,y&&(b=y.name,b&&!y.disabled&&(m.extraData=m.extraData||{},m.extraData[b]=y.value,"image"==y.type&&(m.extraData[b+".x"]=w.clk_x,m.extraData[b+".y"]=w.clk_y)));var D=1,k=2,A=e("meta[name=csrf-token]").attr("content"),L=e("meta[name=csrf-param]").attr("content");L&&A&&(m.extraData=m.extraData||{},m.extraData[L]=A),m.forceSync?o():setTimeout(o,10);var E,M,F,O=50,X=e.parseXML||function(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.nodeName?t:null},C=e.parseJSON||function(e){return window.eval("("+e+")")},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i="xml"===r||!r&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&("json"===r||!r&&n.indexOf("json")>=0?o=C(o):("script"===r||!r&&n.indexOf("javascript")>=0)&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f=this;"function"==typeof t?t={success:t}:void 0===t&&(t={}),u=t.type||this.attr2("method"),c=t.url||this.attr2("action"),l="string"==typeof c?e.trim(c):"",l=l||window.location.href||"",l&&(l=(l.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&t.beforeSerialize(this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d=t.traditional;void 0===d&&(d=e.ajaxSettings.traditional);var p,h=[],v=this.formToArray(t.semantic,h);if(t.data&&(t.extraData=t.data,p=e.param(t.data,d)),t.beforeSubmit&&t.beforeSubmit(v,this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[v,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var g=e.param(v,d);p&&(g=g?g+"&"+p:p),"GET"==t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+g,t.data=null):t.data=g;var x=[];if(t.resetForm&&x.push(function(){f.resetForm()}),t.clearForm&&x.push(function(){f.clearForm(t.includeHidden)}),!t.dataType&&t.target){var y=t.success||function(){};x.push(function(r){var a=t.replaceTarget?"replaceWith":"html";e(t.target)[a](r).each(y,arguments)})}else t.success&&x.push(t.success);if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=x.length;o>i;i++)x[i].apply(n,[e,r,a||f,f])},t.error){var b=t.error;t.error=function(e,r,a){var n=t.context||this;b.apply(n,[e,r,a,f])}}if(t.complete){var T=t.complete;t.complete=function(e,r){var a=t.context||this;T.apply(a,[e,r,f])}}var j=e("input[type=file]:enabled",this).filter(function(){return""!==e(this).val()}),w=j.length>0,S="multipart/form-data",D=f.attr("enctype")==S||f.attr("encoding")==S,k=n.fileapi&&n.formdata;a("fileAPI :"+k);var A,L=(w||D)&&!k;t.iframe!==!1&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){A=s(v)}):A=s(v):A=(w||D)&&k?o(v):e.ajax(t),f.removeData("jqxhr").data("jqxhr",A);for(var E=0;Ec;c++)if(d=u[c],f=d.name,f&&!d.disabled)if(t&&o.clk&&"image"==d.type)o.clk==d&&(a.push({name:f,value:e(d).val(),type:d.type}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}));else if(m=e.fieldValue(d,!0),m&&m.constructor==Array)for(r&&r.push(d),l=0,h=m.length;h>l;l++)a.push({name:f,value:m[l]});else if(n.fileapi&&"file"==d.type){r&&r.push(d);var v=d.files;if(v.length)for(l=0;li;i++)r.push({name:a,value:n[i]});else null!==n&&"undefined"!=typeof n&&r.push({name:this.name,value:n})}}),e.param(r)},e.fn.fieldValue=function(t){for(var r=[],a=0,n=this.length;n>a;a++){var i=this[a],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(r,o):r.push(o))}return r},e.fieldValue=function(t,r){var a=t.name,n=t.type,i=t.tagName.toLowerCase();if(void 0===r&&(r=!0),r&&(!a||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&-1==t.selectedIndex))return null;if("select"==i){var o=t.selectedIndex;if(0>o)return null;for(var s=[],u=t.options,c="select-one"==n,l=c?o+1:u.length,f=c?o:0;l>f;f++){var m=u[f];if(m.selected){var d=m.value;if(d||(d=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value),c)return d;s.push(d)}}return s}return e(t).val()},e.fn.clearForm=function(t){return this.each(function(){e("input,select,textarea",this).clearFields(t)})},e.fn.clearFields=e.fn.clearInputs=function(t){var r=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var a=this.type,n=this.tagName.toLowerCase();r.test(a)||"textarea"==n?this.value="":"checkbox"==a||"radio"==a?this.checked=!1:"select"==n?this.selectedIndex=-1:"file"==a?/MSIE/.test(navigator.userAgent)?e(this).replaceWith(e(this).clone(!0)):e(this).val(""):t&&(t===!0&&/hidden/.test(a)||"string"==typeof t&&e(this).is(t))&&(this.value="")})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0===t&&(t=!0),this.each(function(){var r=this.type;if("checkbox"==r||"radio"==r)this.checked=t;else if("option"==this.tagName.toLowerCase()){var a=e(this).parent("select");t&&a[0]&&"select-one"==a[0].type&&a.find("option").selected(!1),this.selected=t}})},e.fn.ajaxSubmit.debug=!1});
/*! jQuery Validation Plugin - v1.12.0 - 4/1/2014
* http://jqueryvalidation.org/
* Copyright (c) 2014 Jörn Zaefferer; Licensed MIT */
!function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.validateDelegate(":submit","click",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(b.target).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(b.target).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.submit(function(b){function d(){var d;return c.settings.submitHandler?(c.submitButton&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c;return a(this[0]).is("form")?b=this.validate().form():(b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b})),b},removeAttrs:function(b){var c={},d=this;return a.each(b.split(/\s/),function(a,b){c[b]=d.attr(b),d.removeAttr(b)}),c},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(a)).hide())},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(a,b){(9!==b.which||""!==this.elementValue(a))&&(a.name in this.submitted||a===this.lastElement)&&this.element(a)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this[0].form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!this.is(e.ignore)&&e[d].call(c,this[0],b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",b).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",b),this.settings.invalidHandler&&a(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData("previousValue").removeAttr("aria-invalid")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=d.attr("type");return"radio"===e||"checkbox"===e?a("input[name='"+d.attr("name")+"']:checked").val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c[0].toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+"")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d=this.errorsFor(b);d.length?(d.removeClass(this.settings.validClass).addClass(this.settings.errorClass),d.html(c)):(d=a("<"+this.settings.errorElement+">").attr("for",this.idOrName(b)).addClass(this.settings.errorClass).html(c||""),this.settings.wrapper&&(d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b))),!c&&this.settings.success&&(d.text(""),"string"==typeof this.settings.success?d.addClass(this.settings.success):this.settings.success(d,b)),this.toShow=this.toShow.add(d)},errorsFor:function(b){var c=this.idOrName(b);return this.errors().filter(function(){return a(this).attr("for")===c})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(a){return this.checkable(a)&&(a=this.findByName(a.name).not(this.settings.ignore)[0]),a},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),/min|max/.test(c)&&(null===g||/number|range|text/.test(g))&&(d=Number(d)),d||0===d?e[c]=d:g===c&&"range"!==g&&(e[c]=!0);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b);for(c in a.validator.methods)d=f.data("rule"+c[0].toUpperCase()+c.substring(1).toLowerCase()),void 0!==d&&(e[c]=d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(b.min&&b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),b.minlength&&b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:a.trim(b).length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(a.trim(b),c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{url:d,mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}}),a.format=function(){throw"$.format has been deprecated. Please use $.validator.format instead."}}(jQuery),function(a){var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}(jQuery),function(a){a.extend(a.fn,{validateDelegate:function(b,c,d){return this.bind(c,function(c){var e=a(c.target);return e.is(b)?d.apply(e,arguments):void 0})}})}(jQuery);
// ADDITIONAL JQUERY VALIDATE METHODS
(function($) {
// Validate a multifield birthday
$.validator.addMethod("mc_birthday", function(date, element, grouping_class) {
var isValid = false;
var $fields = $('input:not(:hidden)' , $(element).closest(grouping_class));
if ($fields.filter(':filled').length == 0 && this.optional(element)) {
isValid = true; // None have been filled out, so no error
} else {
var dateArray = new Array();
dateArray['month'] = $fields.filter("input[name*='[month]']").val();
dateArray['day'] = $fields.filter("input[name*='[day]']").val();
// correct month value
dateArray['month'] = dateArray['month'] - 1;
var testDate = new Date(1970, dateArray['month'], dateArray['day']);
if (testDate.getDate()!=dateArray['day'] || testDate.getMonth()!=dateArray['month']) {
isValid = false;
} else {
isValid = true;
}
}
return isValid;
}, "Please enter a valid month and day.");
// Validate a multifield date
$.validator.addMethod("mc_date", function(date, element, grouping_class) {
var isValid = false;
var $fields = $('input:not(:hidden)' , $(element).closest(grouping_class));
if ($fields.filter(':filled').length == 0 && this.optional(element)) {
isValid = true; // None have been filled out, so no error
} else {
var dateArray = new Array();
dateArray['month'] = $fields.filter("input[name*='[month]']").val();
dateArray['day'] = $fields.filter("input[name*='[day]']").val();
dateArray['year'] = $fields.filter("input[name*='[year]']").val();
// correct month value
dateArray['month'] = dateArray['month'] - 1;
// correct year value
if (dateArray['year'].length < 4) {
dateArray['year'] = (parseInt(dateArray['year']) < 50) ? 2000 + parseInt(dateArray['year']) : 1900 + parseInt(dateArray['year']);
}
var testDate = new Date(dateArray['year'], dateArray['month'], dateArray['day']);
if (testDate.getDate()!=dateArray['day'] || testDate.getMonth()!=dateArray['month'] || testDate.getFullYear()!=dateArray['year']) {
isValid = false;
} else {
isValid = true;
}
}
return isValid;
}, "Please enter a valid date");
// Validate a multifield phone number
$.validator.addMethod("mc_phone", function(phone_number, element, grouping_class) {
var isValid = false;
var $fields = $('input:filled:not(:hidden)' , $(element).closest(grouping_class));
if ($fields.length == 0 && this.optional(element)) {
isValid = true; // None have been filled out, so no error
} else {
phone_number = $fields.eq(0).val() + $fields.eq(1).val() + $fields.eq(2).val();
isValid = phone_number.length == 10 && phone_number.match(/[0-9]{9}/);
}
return isValid;
}, "Please specify a valid phone number");
$.validator.addMethod("skip_or_complete_group", function(value, element, grouping_class) {
var $fields = $('input:not(:hidden)' , $(element).closest(grouping_class)),
$fieldsFirst = $fields.eq(0),
validator = $fieldsFirst.data("valid_skip") ? $fieldsFirst.data("valid_skip") : $.extend({}, this),
numberFilled = $fields.filter(function() {
return validator.elementValue(this);
}).length,
isValid = numberFilled === 0 || numberFilled === $fields.length;
// Store the cloned validator for future validation
$fieldsFirst.data("valid_skip", validator);
// If element isn't being validated, run each field's validation rules
if (!$(element).data("being_validated")) {
$fields.data("being_validated", true);
$fields.each(function() {
validator.element(this);
});
$fields.data("being_validated", false);
}
return isValid;
}, $.validator.format("Please supply missing fields."));
$.validator.addMethod("skip_or_fill_minimum", function(value, element, options) {
var $fields = $(options[1], element.form),
$fieldsFirst = $fields.eq(0),
validator = $fieldsFirst.data("valid_skip") ? $fieldsFirst.data("valid_skip") : $.extend({}, this),
numberFilled = $fields.filter(function() {
return validator.elementValue(this);
}).length,
isValid = numberFilled === 0 || numberFilled >= options[0];
console.log($fields.eq(0));
// Store the cloned validator for future validation
$fieldsFirst.data("valid_skip", validator);
// If element isn't being validated, run each skip_or_fill_minimum field's validation rules
if (!$(element).data("being_validated")) {
$fields.data("being_validated", true);
$fields.each(function() {
validator.element(this);
});
$fields.data("being_validated", false);
}
return isValid;
}, $.validator.format("Please either skip these fields or fill at least {0} of them."));
$.validator.addMethod("zipcodeUS", function(value, element) {
return this.optional(element) || /^\d{5}-\d{4}$|^\d{5}$/.test(value);
}, "The specified US ZIP Code is invalid");
$.validator.addMethod("mc_gdpr", function (value, element, grouping_class) {
//if gdpr is required the user must pick at least one option.
var $fields = $("input:not(:hidden)", $(element).closest(grouping_class));
return $fields.filter(":checked").length !== 0;
}, "Please choose an option.");
}(jQuery));
// MC
(function($) {
var err_style = '';
try {
err_style = mc_custom_error_style;
} catch(e){
err_style = '#mc_embed_signup input.mce_inline_error { border-color:#6B0505; } #mc_embed_signup div.mce_inline_error { margin: 0 0 1em 0; padding: 5px 10px; background-color:#6B0505; font-weight: bold; z-index: 1; color:#fff; }';
}
var head = document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet) {
style.styleSheet.cssText = err_style;
} else {
style.appendChild(document.createTextNode(err_style));
}
head.appendChild(style);
// Expose extra mc form methods in global var
window.mc = {
openPopup: function() {
$('#mc_embed_signup a.mc_embed_close').show();
setTimeout( function(){ $('#mc_embed_signup').fadeIn(); } , mc.delayPopup);
},
closePopup: function() {
$('#mc_embed_signup').hide();
var now = new Date();
var expires_date = new Date( now.getTime() + 31536000000 );
document.cookie = 'MCPopupClosed=yes;expires=' + expires_date.toGMTString()+';path=/';
},
/**
* Figure out if we should show the popup (if they've closed it before, don't show it.)
*/
evalPopup: function() {
$('#mc_embed_signup').hide();
cks = document.cookie.split(';');
for(i=0; i 1) {
var mergeName = inputs.first().attr("name");
var fieldNames = $.map(inputs, function(f) { return f.name; });
groups[mergeName.substring(0, mergeName.indexOf("["))] = fieldNames.join(" ");
}
});
return groups;
},
/**
* Check if a field is part of a multipart field
* (e.g., A date merge field is composed of individual inputs for month, day and year)
* Used in jQuery validation onkeyup method to ensure that we don't evaluate a field
* if a user hasn't reached the last input in a multipart field yet.
*/
isMultiPartField: function(element) {
return ($('input:not(:hidden)' , $(element).closest(".mc-field-group")).length > 1);
},
/**
* Checks if the element is the last input in its fieldgroup.
* If the field is not the last in a set of inputs we don't want to validate it on certain events (onfocusout, onblur)
* because the user might not be finished yet.
*/
isTooEarly: function(element) {
var fields = $('input:not(:hidden)' , $(element).closest(".mc-field-group"));
return ($(fields).eq(-1).attr('id') != $(element).attr('id'));
},
/**
* Handle the error/success message after successful form submission.
* Success messages are appended to #mce-success-response
* Error messages are displayed with the invalid input when possible, or appended to #mce-error-response
*/
mce_success_cb: function(resp){
$('#mce-success-response').hide();
$('#mce-error-response').hide();
// On successful form submission, display a success message and reset the form
if (resp.result == "success"){
$('#mce-'+resp.result+'-response').show();
$('#mce-'+resp.result+'-response').html(resp.msg);
$('#mc-embedded-subscribe-form').each(function(){
this.reset();
});
// If the form has errors, display them, inline if possible, or appended to #mce-error-response
} else {
if (resp.msg === "captcha") {
var url = $("form#mc-embedded-subscribe-form").attr("action");
var parameters = $.param(resp.params);
url = url.split("?")[0];
url += "?";
url += parameters;
window.open(url);
};
// Example errors - Note: You only get one back at a time even if you submit several that are bad.
// Error structure - number indicates the index of the merge field that was invalid, then details
// Object {result: "error", msg: "6 - Please enter the date"}
// Object {result: "error", msg: "4 - Please enter a value"}
// Object {result: "error", msg: "9 - Please enter a complete address"}
// Try to parse the error into a field index and a message.
// On failure, just put the dump thing into in the msg variable.
var index = -1;
var msg;
try {
var parts = resp.msg.split(' - ',2);
if (parts[1]==undefined){
msg = resp.msg;
} else {
i = parseInt(parts[0]);
if (i.toString() == parts[0]){
index = parts[0];
msg = parts[1];
} else {
index = -1;
msg = resp.msg;
}
}
} catch(e){
index = -1;
msg = resp.msg;
}
try {
// If index is -1 if means we don't have data on specifically which field was invalid.
// Just lump the error message into the generic response div.
if (index == -1){
$('#mce-'+resp.result+'-response').show();
$('#mce-'+resp.result+'-response').html(msg);
} else {
var fieldName = $("input[name*='"+fnames[index]+"']").attr('name'); // Make sure this exists (they haven't deleted the fnames array lookup)
var data = {};
data[fieldName] = msg;
mc.mce_validator.showErrors(data);
}
} catch(e){
$('#mce-'+resp.result+'-response').show();
$('#mce-'+resp.result+'-response').html(msg);
}
}
}
}
window.mc.mce_validator = $("#mc-embedded-subscribe-form").validate({
// Set error HTML:
errorClass: "mce_inline_error",
errorElement: "div",
// Validate fields on keyup, focusout and blur.
onkeyup: false,
onfocusout: function(element) {
if (!mc.isTooEarly(element)) {
$(element).valid();
}
},
onblur: function(element) {
if (!mc.isTooEarly(element)) {
$(element).valid();
}
},
// Grouping fields makes jQuery Validation display one error for all the fields in the group
// It doesn't have anything to do with how the fields are validated (together or separately),
// it's strictly for visual display of errors
groups: mc.getGroups(),
// Place a field's inline error HTML just before the div.mc-field-group closing tag
errorPlacement: function(error, element) {
element.closest('.mc-field-group').append(error);
},
// Submit the form via ajax (see: jQuery Form plugin)
submitHandler: function(form) {
$(form).ajaxSubmit(mc.ajaxOptions);
}
});
window.mc.ajaxOptions = {
url: mc.getAjaxSubmitUrl(),
type: 'GET',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: mc.mce_success_cb
};
// Custom validation methods for fields with certain css classes
$.validator.addClassRules("birthday", { digits: true, mc_birthday: ".datefield" });
$.validator.addClassRules("datepart", { digits: true, mc_date: ".datefield" });
$.validator.addClassRules("phonepart", { digits: true, mc_phone: ".phonefield" });
$.validator.addClassRules("gdpr", { mc_gdpr: ".gdprRequired" });
// Evil Popup
$('#mc_embed_signup a.mc_embed_close').click(function(){
mc.closePopup();
});
$(document).keydown(function(e){
keycode = (e == null) ? event.keyCode : e.which;
if (keycode == 27 && typeof mc.showPopup != 'undefined') mc.closePopup();
});
}(jQuery));
Writer Steven Johnson, for example — author of books like “Where Good Ideas Come From” — has argued that these buzzy gathering places “fertilized countless Enlightenment-era innovations; everything from the science of electricity to the insurance industry to democracy itself.” New ideas, he maintained, arise out of “the collisions that happen when different fields of expertise converge in some shared physical or intellectual space.” Leaders and managers seized on this notion. Get people to “collide” with one another, the thinking went, and magic will happen. How better to promote collisions than to remove the physical barriers that would keep them from happening? (The fact that open-plan spaces are cheaper than enclosed offices also helps explain the trend.) Before the pandemic, roughly three-fourths of American office workers labored in open-plan configurations.
But the coffee shop was always a terrible model for a place in which complex, cognitively demanding work is to be carried out. That’s because the conditions created by the open-plan workspace are in direct conflict with the unalterable realities of human biology. The brain evolved to continually monitor its immediate environment — to be, in effect, distractible, lest nearby sounds or movements signal a danger to be avoided or an opportunity to be seized. And organizational environments are full of the kind of stimuli that distract us the most: We are attuned to human movement and activity, to the sound of people’s speech, and to the nuances of social interactions.
In addition, the coffee shop is by design a generic space, intended for temporary use. A customer occupies a table for a few minutes or hours and then turns it over for the next customer to use. This feature, too, is far from ideal when applied to a workplace to which employees return day after day. Research has demonstrated that a sense of ownership and control over one’s personal space, along with the display of photos and other cues of identity and affiliation meaningful to their owner, help people work more efficiently and productively.
History gave us the model of the coffeehouse, but it has other models to offer. The disruption introduced by the COVID-19 pandemic has provided an opportunity to examine whether an alternative might better fit our needs.
For example: the ancient monastery. In the popular imagination, monks are solitary, hermit-like creatures — but historically they have lived within a communal setting that balanced time spent alone in study and contemplation with time spent with others in robust social interaction. Richard Irvine, an anthropologist at the University of Cambridge, explored this equilibrium in an ethnographic study he conducted at Downside Abbey, a Benedictine monastery in Somerset, England, where the way of life has remained little changed for centuries.
In describing the abbey’s architecture, Irvine observes that the buildings reflect their inhabitants’ daily cycles of intense engagement and hushed withdrawal, accommodating communal spaces like the library, the refectory, the workshop, and the courtyard, as well as the monks’ solitary cells. “While the monastery is the site of frequent interpersonal encounter, the importance of solitude is also structured into the timetable through the commitment to twice-daily private prayer, as well as the summum silentium (complete silence, sometimes referred to as ‘the great silence’) at the end of the day,” Irvine explains. This silence “restricts interaction and gives the monk opportunity to be alone.” (He notes that members of the community have available to them another way of limiting interaction: They can pull up the hood of their vestment, making them “less inclined to distraction from other people.”)
The monks of Downside Abbey could be said to be practicing what present-day organizational scientists call “intermittent collaboration.” Research has demonstrated that complex problem-solving tends to proceed in two stages, the first of which entails gathering the facts we need to clarify the nature of the problem and begin constructing a solution. In this stage, communication and collaboration are essential. But there is a second phase, equally vital: the process of generating and developing solutions and figuring out which of these solutions is best. During this phase, studies find, excessive collaboration is actually detrimental.
The reason can be found in our nature as a group-dwelling species. We are exquisitely sensitive to social pressure, easily drawn into consensus and conformity. When we’re constantly in touch with others, we all end up gravitating toward the same pretty-good-but-not-great answers. Research finds that people who keep lines of communication perpetually open consistently generate middling solutions — nothing terrible, but nothing exceptional either. Meanwhile, people who isolate themselves during the solution-generation phase tend to come up with a few truly extraordinary solutions — along with a lot of losers. The best of all worlds is enjoyed by those who engage in cycles of sociable interaction and quiet focus: a process that could be facilitated by the physical spaces in which we work.
Another promising model drawn from history can be viewed today at New York’s Metropolitan Museum of Art. This is a tiny gem of a room, re-creating a space in 15th-century Perugia: the studiolo of Federico da Montefeltro, Duke of Urbino. Federico, whose title called on him to be variously a royal, a politician, and a warrior, lived in the town of Gubbio in what is now central Italy. The walls of the study allowed the duke, a lover of literature, architecture, and mathematics, to retreat into quiet study and contemplation, away from the company of the townspeople he ruled.
And because his studiolo was constructed in Renaissance Italy, these were no ordinary walls. Craftsmen from Siena, Florence, and Naples created elaborate trompe l’oeil murals made entirely of inlaid wood — a technique called intarsia. In slivers of rosewood, oak, and beech, these designs depict in precise detail (and in linear perspective, a then newly invented technique) simulated cabinets full of precious objects — each one a symbol of what the duke most admired and to which he most aspired. A lute and a harp showed he was a man of culture; a mace and a pair of spurs represented his skill in battle; a bound volume of Virgil’s “Aeneid” was a sign of his erudition. Incorporated into every corner of the space were mottos and motifs that represented the duke’s personal, familial, and regional identity.
Such self-referential images and messages are not mere decorations — whether they’re built into the paneling of a duke’s splendidly outfitted retreat or tacked to the walls of an office worker’s cubicle. Research shows that in the presence of cues of identity and cues of affiliation, people perform better: They’re more motivated and more productive. Such displays may sometimes be aimed at informing other people of who we are (or who we’d like to be), but often they are intended for a more intimate audience: ourselves.
For a study published in the Academy of Management Journal, researchers examined the workspaces of people holding a variety of jobs — from engineer to event planner, from creative director to real estate agent. The investigators found that about one-third of the personal tokens these professionals had incorporated into their workspaces were positioned so as to be visible only to them. Of the objects whose stated purpose for their owners was “reminding them of their goals and values,” 70 percent were placed out of the sight of others.
Why would we need such reminders? While our sense of self may feel stable and solid, it is in fact quite fluid, dependent on external structure for its shape. The material things we arrange around us help us maintain that sturdy self-conception. As the psychologist Mihaly Csikszentmihalyi has written, we keep certain objects in view because “they tell us things about ourselves that we need to hear in order to keep our selves from falling apart.”
Moreover, we need to have close at hand those prompts that highlight particular facets of our identity. Each of us has not one identity but many — worker, student, spouse, parent, friend — and different environmental cues evoke different identities. Daphna Oyserman, a psychologist at the University of Southern California, notes that signals from the environment function to bring one of these many personas to the fore, with real effects on our thought and behavior. “Which identity is salient in the moment influences both what one pays attention to and what one chooses to do,” she writes.
Physical spaces powerfully shape the way we think and behave. History offers us a profusion of models on which to base our workplaces, and we should choose carefully the ones we adopt.
Annie Murphy Paul is the author of “The Extended Mind: The Power of Thinking Outside the Brain,” from which this essay is adapted.
Aliens are our circus in bread & circus. Don’t think about the stolen 2020 election, uniparty control of the media, corporate capture of our regulatory agencies and politicians, impending inflation, southern border disaster, persistant BLM riots etc. etc. Instead, think of aliens.
The laws of Physics: Travel from another star in any reasonable time requires near-light speed travel. A ship propelled by onboard conventional rocket fuel would require more fuel than there is mass in the visible universe to accelerate to near light speed and slow down at the end of the voyage, so clearly some more advanced fuel would be required. But even using nuclear fusion one would use more than 2,000 times the mass of the ship in fuel for each acceleration and deceleration to and from near-light speed. Basic physics constraints imply that any on-board propulsion technology that could power a conventional ship-sized spacecraft to travel from one solar system to another at near light speed and decelerate it within our solar system would require using energy that is comparable to the entire amount of power used by all of humanity at the current time. Hard to imagine any civilization devoting such extensive resources to visit us only to hang around secretly spying on aircraft carriers, or abducting humans to perform kinky experiments.
It only hurts when you stop: Some reports claim UAPs travel extremely fast and stop or turn instantly. No matter what the propulsion system, g-forces experienced in such a maneuver would be enough to crush steel, not to mention the unfortunate aliens inside. That is, unless one had “inertial dampers” like they have in Star Trek, which, alas, are science fiction technobabble.
The Lunar Module was ugly for a reason: Moving in space and traveling in our atmosphere are two different things. There is no reason to have fancy aerodynamics in space because there isn’t any atmosphere to have dynamics in. Whatever craft you travel in through the galaxy will not be the same type of craft you would want to design to perform aerial acrobatics in on Earth.
Why here?: Most Stars in the galaxy are older than our sun so it is reasonable to suspect that an advanced civilization, if such civilizations survive periods like the one we are now living in, would have been able to observe the Earth since its formation. But over the past 4.5 billion years, we have only been sending out signals of technological intelligence for a century or so, meaning that observing Earth at any random time since it formed, one would only have a one in 50 million chance of detecting life here. Moreover, since our radio and TV signals have only been traveling at light speed for 100 years, any civilization that detected such signals would have to be: (a) close by, and (b) ready to immediately launch a massive, complex, and expensive light speed mission to Earth in order to have made it here by now. And that is if they were lucky enough to detect our signals in the first place. There are an infinite number of frequencies to search, and as anyone who has cable TV knows, where there are only perhaps 400 channels to scan, one generally has a hard time finding what one is looking for before the program one is seeking is over.
Why travel in the first place: In this pandemic era, many of us have learned that it is a lot easier to have a ZOOM meeting than to try to embark on air travel across international lines. This is particularly true for space travel. It is far, far easier to both search for extraterrestrial intelligences by listening for signals, or to attempt to communicate with other galactic species by cleverly sending signals, than it is to try and bridge the gap with spacecraft. If we are ever to learn about intelligent aliens, it won’t be by meeting them in the air, but by listening or watching the heavens. Even that is a longshot, but at least is possible. That truth goes for aliens as well as for us.
I think I’ve had discussions w/enough Boomer-tier Trump supporters who believe the 2020 election was fraudulent to extract a general theory about their perspective. It is also the perspective of most of the people at the Capitol on 1/6, and probably even Trump himself. 1/x
Most believe some or all of the theories involving midnight ballots, voting machines, etc, but what you find when you talk to them is that, while they’ll defend those positions w/info they got from Hannity or Breitbart or whatever, they’re not particularly attached to them. 2/x
Here are the facts - actual, confirmed facts - that shape their perspective: 1) The FBI/etc spied on the 2016 Trump campaign using evidence manufactured by the Clinton campaign. We now know that all involved knew it was fake from Day 1 (see: Brennan’s July 2016 memo, etc). 3/x
These are Tea Party people. The types who give their kids a pocket Constitution for their birthday and have Founding Fathers memes in their bios. The intel community spying on a presidential campaign using fake evidence (incl forged documents) is a big deal to them. 4/x
Everyone involved lied about their involvement as long as they could. We only learned the DNC paid for the manufactured evidence because of a court order. Comey denied on TV knowing the DNC paid for it, when we have emails from a year earlier proving that he knew. 5/x
This was true with everyone, from CIA Dir Brennan & Adam Schiff - who were on TV saying they’d seen clear evidence of collusion w/Russia, while admitting under oath behind closed doors that they hadn’t - all the way down the line. In the end we learned that it was ALL fake. 6/x
At first, many Trump ppl were worried there must be some collusion, because every media & intel agency wouldn’t make it up out of nothing. When it was clear that they had made it up, people expected a reckoning, and shed many illusions about their gov’t when it didn’t happen. 7/x
We know as fact: a) The Steele dossier was the sole evidence used to justify spying on the Trump campaign, b) The FBI knew the Steele dossier was a DNC op, c) Steele’s source told the FBI the info was unserious, d) they did not inform the court of any of this and kept spying. 8/x
Trump supporters know the collusion case front and back. They went from worrying the collusion must be real, to suspecting it might be fake, to realizing it was a scam, then watched as every institution - agencies, the press, Congress, academia - gaslit them for another year. 9/x
Worse, collusion was used to scare people away from working in the administration. They knew their entire lives would be investigated. Many quit because they were being bankrupted by legal fees. The DoJ, press, & gov’t destroyed lives and actively subverted an elected admin. 10/x
This is where people whose political identity was largely defined by a naive belief in what they learned in Civics class began to see the outline of a Regime that crossed all institutional boundaries. Because it had stepped out of the shadows to unite against an interloper. 11/x
GOP propaganda still has many of them thinking in terms of partisan binaries, but A LOT of Trump supporters see that the Regime is not partisan. They all know that the same institutions would have taken opposite sides if it was a Tulsi Gabbard vs Jeb Bush election. 12/x
It’s hard to describe to people on the left (who are used to thinking of gov’t as a conspiracy… Watergate, COINTELPRO, WMD, etc) how shocking & disillusioning this was for people who encourage their sons to enlist in the Army, and hate ppl who don’t stand for the Anthem. 13/x
They could have managed the shock if it only involved the government. But the behavior of the corporate press is really what radicalized them. They hate journalists more than they hate any politician or gov’t official, because they feel most betrayed by them. 14/x
The idea that the press is driven by ratings/sensationalism became untenable. If that were true, they’d be all over the Epstein story. The corporate press is the propaganda arm of the Regime they now see in outline. Nothing anyone says will ever make them unsee that, period. 15/x
This is profoundly disorienting. Many of them don’t know for certain whether ballots were faked in November 2020, but they know for absolute certain that the press, the FBI, etc would lie to them if there was. They have every reason to believe that, and it’s probably true. 16/x
They watched the press behave like animals for four years. Tens of millions of people will always see Kavanaugh as a gang rapist, based on nothing, because of CNN. And CNN seems proud of that. They led a lynch mob against a high school kid. They cheered on a summer of riots. 17/x
They always claimed the media had liberal bias, fine, whatever. They still thought the press would admit truth if they were cornered. Now they don’t. It’s a different thing to watch them invent stories whole cloth in order to destroy regular lives and spark mass violence. 18/x
Time Mag told us that during the 2020 riots, there were weekly conference calls involving, among others, leaders of the protests, the local officials who refused to stop them, and media people who framed them for political effect. In Ukraine we call that a color revolution. 19/x
Throughout the summer, Democrat governors took advantage of COVID to change voting procedures. It wasn’t just the mail-ins (they lowered signature matching standards, etc). After the collusion scam, the fake impeachment, Trump ppl expected shenanigans by now. 20/x
Re: “fake impeachment”, we now know that Trump’s request for Ukraine to cooperate w/the DOJ regarding Biden’s $ activities in Ukraine was in support of an active investigation being pursued by the FBI and Ukraine AG at the time, and so a completely legitimate request. 21/x
Then you get the Hunter laptop scandal. Big Tech ran a full-on censorship campaign against a major newspaper to protect a political candidate. Period. Everyone knows it, all of the Tech companies now admit it was a “mistake” - but, ya know, the election’s over, so who cares? 22/x
Goes w/o saying, but: If the NY Times had Don Jr’s laptop, full of pics of him smoking crack and engaging in group sex, lots of lurid family drama, emails describing direct corruption and backed up by the CEO of the company they were using, the NYT wouldn’t have been banned. 23/x
Think back: Stories about Trump being pissed on by Russian prostitutes and blackmailed by Putin were promoted as fact, and the only evidence was a document paid for by his opposition and disavowed by its source. The NY Post was banned for reporting on true information. 24/x
The reaction of Trump ppl to all this was not, “no fair!” That’s how they felt about Romney’s “binders of women” in 2012. This is different. Now they see, correctly, that every institution is captured by ppl who will use any means to exclude them from the political process. 25/x
And yet they showed up in record numbers to vote. He got 13m more votes than in 2016, 10m more than Clinton got! As election night dragged on, they allowed themselves some hope. But when the four critical swing states (and only those states) went dark at midnight, they knew. 26/x
Over the ensuing weeks, they got shuffled around by grifters and media scam artists selling them conspiracy theories. They latched onto one, then another increasingly absurd theory as they tried to put a concrete name on something very real. 27/x
Media & Tech did everything to make things worse. Everything about the election was strange - the changes to procedure, unprecedented mail-in voting, the delays, etc - but rather than admit that and make everything transparent, they banned discussion of it (even in DMs!). 28/x
Everyone knows that, just as Don Jr’s laptop would’ve been the story of the century, if everything about the election dispute was the same, except the parties were reversed, suspicions about the outcome would’ve been Taken Very Seriously. See 2016 for proof. 29/x
Even the courts’ refusal of the case gets nowhere w/them, because of how the opposition embraced mass political violence. They’ll say, w/good reason: What judge will stick his neck out for Trump knowing he’ll be destroyed in the media as a violent mob burns down his house? 30/x
It’s a fact, according to Time Magazine, that mass riots were planned in cities across the country if Trump won. Sure, they were “protests”, but they were planned by the same people as during the summer, and everyone knows what it would have meant. Judges have families, too. 31/x
Forget the ballot conspiracies. It’s a fact that governors used COVID to unconstitutionally alter election procedures (the Constitution states that only legislatures can do so) to help Biden to make up for a massive enthusiasm gap by gaming the mail-in ballot system. 32/x
They knew it was unconstitutional, it’s right there in plain English. But they knew the cases wouldn’t see court until after the election. And what judge will toss millions of ballots because a governor broke the rules? The threat of mass riots wasn’t implied, it was direct. 33/x
a) The entrenched bureaucracy & security state subverted Trump from Day 1, b) The press is part of the operation, c) Election rules were changed, d) Big Tech censors opposition, e) Political violence is legitimized & encouraged, f) Trump is banned from social media. 34/x
They were led down some rabbit holes, but they are absolutely right that their gov’t is monopolized by a Regime that believes they are beneath representation, and will observe no limits to keep them getting it. Trump fans should be happy he lost; it might’ve kept him alive.
The June 2021, Vol 86 No. 6 issue of Consumer reports evaluates 5 and 10 year old cars looking at which are the least ($200-300/month) and most ($500-800/month) expensive to keep on the road. Most expensive are primarily German cars, and least expensive are American.
Amongst the least expensive there is an outlier - The Nissan Leaf. Keep in mind that ten years ago, 2011, the Leaf was the only fully electric car available, making it’s debut in 2010. Even as late as 2016 there were 3 options: Leaf, Tesla Model S, and BMW i3. The tabulated average monthly cost for the Leaf is $0. I can attest to the accuracy of this value. In 5 years/ 16,000 miles of use I have spent a grand total of $60 for a set (front and rear) of windshield wipers. Granted this includes 2 free tire rotations thanks to coupons from Nissan. Nonetheless - very inexpensive to maintain, and with an electricity cost of 2 cents per mile, inexpensive to operate. (Compare to 5 cents a mile for gas for a 45 mpg Prius assuming $2.35/gallon). Low operating and maintainence costs, not eco friendlines are the reasons to buy an electric car.
If you have ever fantasized of exploring the jungle, first read The Lost City of Z. Detailed descriptions of various infections following animal/insect bites may convince you otherwise. Supposedly non-fiction, this article suggests the author used so much artistic license that it must be considered fiction. In any case I will stick to glamping.
[The lost city of Z A tale of deadly obsession in the Amazon](/lnsDFoKytr/2021/06/21/lostcityz/The lost city of Z A tale of deadly obsession in the Amazon by David Grann.epub) by David Grann
Craig Mod Ideas 04.06.2021 07:00 AM (Wired magazine) The Healing Power of JavaScript For some of us—isolates, happy in the dark—code is therapy, an escape and a path to hope in a troubled world.
A little over a year ago, as the Covid-19 lockdowns were beginning to fan out across the globe, most folks grasped for toilet paper and canned food. The thing I reached for: a search function.
The purpose of the search function was somewhat irrelevant. I simply needed to code. Code soothes because it can provide control in moments when the world seems to spiral. Reductively, programming consists of little puzzles to be solved. Not just inert jigsaws on living room tables, but puzzles that breathe with an uncanny life force. Puzzles that make things happen, that get things done, that automate tedium or allow for the publishing of words across the world.
Like many other writers and artists, I maintain a personal website. My current one has been active for nearly 20 years. Code in mind, I brushed off my rusty JavaScript skills and started to poke around for fuzzy-search libraries I could bolt onto my homepage, to make it easy to find specific essays from my collection.
Break the problem into pieces. Put them into a to-do app (I use and love Things). This is how a creative universe is made. Each day, I’d brush aside the general collapse of society that seemed to be happening outside of the frame of my life, and dive into search work, picking off a to-do. Covid was large; my to-do list was reasonable.
The real joy of this project wasn’t just in getting the search working but the refinement, the polish, the edge bits. Getting lost for hours in a world of my own construction. Even though I couldn’t control the looming pandemic, I could control this tiny cluster of bits.
The whole process was an escape, but an escape with forward momentum. Getting the keyboard navigation styled just right, shifting the moment the search payload was delivered, finding a balance of index size and search usefulness. And most important, keeping it all light, delightfully light. And then writing it up, making it a tiny “gist” on GitHub, sharing with the community. It’s like an alley-oop to others: Go ahead, now you use it on your website. Super fast, keyboard-optimized, client side Hugo search.
It’s not perfect, but it’s darn good enough.
The point being that a habit of reaching for code is not only healing for the self, but a trick to transmute a sense of dread into something: A function that seems to add, however trivially, a small bit of value to the greater whole in a troubling moment.
I began coding when I was 10 and have been running with it ever since. Self-taught, mostly. I had a preternatural awkwardness with others. The machine was literal in a reassuring way, and seemed to promise access to a world that even the adults around me couldn’t fathom. In this way, the code became a friend—a nonjudgmental buddy. SUBSCRIBE Image may contain Rug Subscribe to WIRED and stay smart with more of your favorite Ideas writers.
A pattern was set: When the complexities of social situations exhausted me as a child, I turned to code, became an isolate. Ellen Ullman writes in her book Life in Code: A Personal History of Technology, “Until I became a programmer, I didn’t thoroughly understand the usefulness of such isolation: the silence, the reduction of life to thought and form; for example, going off to a dark room to work on a program when relations with people get difficult.”
Reading assembly language books in middle school or programming BBS software in high school didn’t register, then, explicitly, as a salve. My first conscious acknowledgement of the palliative power of code came a few years ago when I refactored my website from one content management system to another. This sounds implausible, but it’s true: I was healed by a CMS, a Google-unique phrase—and for good reason.
At the time, I was suffering from personal and professional depressions, a long time in the making. I had been knocked off kilter. When I took stock of my mind, I realized it was not where I wanted or expected it to be.
This happens to me, sometimes; to certain people, many times. I think often of the epigraph of William Styron’s Darkness Visible when I feel the weight of a depression descend: “For the thing which I greatly feared is come upon me …” That descent usually means I haven’t been getting enough rest. I don’t mean over the course of days, but rather months or years. A slow tilting, like a ship taking on water through a pinhole. Given enough time, it must tip. My mind was tipping, and I found myself grasping for, of all things, servers. Like a life raft. Servers, it turns out, are one of my safe places.
I had wanted to shed my rickety and overpriced Rackspace server for years, but had been too lazy. It’s a meaty task, a task for grunts, thankless, and one that requires focus.
Most everything related to servers happens in the “terminal,” on the command line, in a world devoid of images or graphical interfaces. Just text. Every action is key-precise and hyper-literal. A mistype of a single character can destroy a system. In fact, for decades, servers have presented the following message when you enter into administrator or “super user” mode:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
1: Respect the privacy of others.
2: Think before you type.
3: With great power comes great responsibility.
It can make a person weak in the knees to think about how much of the world’s smooth operation is contingent on typing accuracy. But it is, and when you move through the guts of your favorite Linux operating system distribution, you can’t help but stare gape-mouthed at the absurdity and beauty of the crisscross threads that keep the web and most of our digital (and, by proxy, physical) infrastructure afloat.
Therein lies part of the attraction: Moving through that jumble—with all of its perverted poetics of grep and vi and git and apache and .ini—and doing so with a fingers-floating-across-the-keyboard balletic grace, is exhilarating. You feel like an alchemist. And you are. You type esoteric words— near gibberish—into a line-by-line text interface, and with a rush not unlike pulling Excalibur from the stone you’ve just scaffolded a simple application that can instantly be accessed by a vast number of humans worldwide.
Romantic partners have regarded me with confusion and perhaps suspicion when I suddenly went fluent in bash (a flavor of terminal shell used to type commands). It was as if I had been keeping a dirty secret from them. I once dropped quick-fingered into text-land to help a friend’s teenage son install some Minecraft mods, and by the look in his eyes I could tell I had become a minor celebrity in real time. With a few hundred keystrokes, two generations were bridged.
I find peace in the dark mess of that world. Code and servers are a home to me in a way that’s difficult to explain to anyone for whom they are not.
So in my tilted state, my slightly depressive state, I moved websites from my old server to my new server. My tasks were guided by the trusty to-do list. URLs of old sites marked off distinct epochs in my life, of a variety of lenses through which I once saw myself. Perhaps I am this kind of artist or will be this kind of writer?
The old websites of mine are ghosts. Nobody will look at or think to hunt them down. I moved them because I feel a stewardship over them, feel that they have a right to go on living in bits.
A lot of this server work involved making complicated sites less complex. That is: Making the dynamic static. Gutting these sites of their PHP cores, Benjamin Buttoning them back into sleepy HTML and CSS, making them low maintenance and future friendly. It’s funny how even something as simple as a MYSQL database requires pruning, nurture. How a PHP script—so seemingly innocuous!—is rendered obsolete a decade later as deprecation creeps, mental models of languages evolve. But take a page of HTML from the early ’90s, and it renders as well as ever on most anything with a screen.
In that spirit, as I moved my homepage I also rebuilt it as a so-called static site. A simpler version that should continue to work for the next hundred years. It looks nearly the same as it did before. With static sites, we’ve come full circle, like exhausted poets who have travelled the world trying every form of poetry and realizing that the haiku is enough to see most of us through our tragedies.
As is true for most infrastructure work, these gruntish behind-the-scenes tasks are often neglected, or derided as irrelevant, underfunded, ignored. That is, until they break, or a pandemic hits, and then we realize how infrastructure is everything, and without it our world reverts to some troglodytic cave state, or perhaps worse, an ever-widening extreme of haves and have-nots.
In the late 1990s you almost had no choice but to be your own homepage steward and janitor and systems engineer. Now you can offload that stewardship to a third party. Tumblr, Ghost, Facebook, Blogger, Wordpress—platforms have sprung up where you can focus purely on content in exchange for giving up a certain level of control.
You can take stewardship too far. I probably have. There is a diminishing return on what you can get out of any system, regardless of how much you put into it. But I don’t care.
This work of line-by-line problem solving gets me out of bed some days. Do you know this feeling? The not-wanting-to-emerge-from-the-covers feeling? Every single morning of the last year may have been the most collectively experienced covers-craving in human history, where so many things in the world were off by a degree here or a degree there. But under those covers I begin to think—A ha! I know how to solve server problem x, or quirk y. I know how to fix that search code. And I’m able to emerge and become human, or part human, and enter into that line-by-line world, where there is very little judgement, just you and the mechanics of the systems, systems that become increasingly beautiful the more time you spend with them. For me, this stewardship is therapy.
And so I pull apart a system—a system that I have loved and has served me well over the years—and figure out a better, more sustainable framework for the code, and one hopes, by extension, maybe even the world.
Craig Mod (@craigmod) is a writer, photographer, and technologist who lives in Japan.
Danielle Reed stopped counting after the 156th email arrived in a single afternoon. It was late March, and her laboratory at the Monell Chemical Senses Center in Philadelphia had abruptly gone into Covid-19 lockdown. For weeks, there had been little to do. Reed, who is famous in her field for helping to discover a new family of receptors that perceive bitter flavors, had spent years studying the way human genetics affect the way we experience smell and taste. It was important but niche science that seemingly had little to do with a dangerous respiratory virus spreading around the globe.
And then one Saturday, she checked her email. Reed watched in amazement as the messages proliferated. It wasn’t how many threads there were, though that was overwhelming, but the way they seemed to grow like Hydras, sprouting in all directions. Recipients copied other people they thought might be interested in the discussion, who added more people, who added still others, across a huge range of countries and disciplines. The cascading emails were all responding to the same rather obscure news alert, meant for ear, nose and throat doctors based in Britain. It was titled: “Loss of smell as marker of Covid-19 infection.”
The week before, Claire Hopkins, the president of the British Rhinological Society and an author of the alert, was seeing patients in her clinic in London when she noticed something odd. Hopkins, who specializes in nose and sinus diseases, especially nasal polyps, was accustomed to seeing the occasional patient — usually about one per month — whose sense of smell disappeared after a viral infection. Most of the time, such losses were fairly self-explanatory: A stuffy, inflamed nose keeps odorants from reaching the smell receptors at the top of the airway. Sometimes these receptors are also damaged by inflammation and need time to recover. But patients were now arriving with no blockage or swelling, no trouble breathing, no notable symptoms, other than the sudden and mysterious disappearance of their ability to smell. And there were nine of them.
At first, it didn’t occur to Hopkins to think about the recently declared pandemic that was dominating the news. None of the patients had traveled to Italy or China, so they didn’t meet the government’s criteria for testing or quarantine: The virus, she understood, was not yet spreading in Britain.
As each new patient told a strange yet similar story, she began to wonder. A colleague in Italy, where the virus was known to be spreading, had mentioned that frontline doctors were losing their senses of smell and taste. Hopkins assumed that a mild version of Covid-19 was causing a standard post-viral loss of smell. But shortly after seeing the nine patients, she attended an online chat for physicians hosted by the American Rhinologic Society. A French doctor posted that he had recently seen an increase in cases of sudden smell loss without any blockage. Had anyone else noticed something similar? Yes, several doctors from the U.S. replied. They had started to hear rumors from colleagues in Iran and Italy of odd spikes in patients who had unaccountably lost their sense of smell.
Hopkins decided to keep digging. She found that in China, an unusual number of ear, nose and throat specialists — doctors who would have been sought out by patients troubled by an unexplained loss of smell — had contracted the virus. A report in South Korea found that of 2,000 people with mild cases of Covid-19, 30 percent lost their sense of smell. The same week that patients were streaming through Hopkins’s office, there was an article in a German newspaper about a virologist named Hendrik Streeck who went door to door interviewing some of the country’s earliest patients. He found smell loss in two-thirds.
None of these anecdotes amounted to the sort of rigorous proof that Hopkins, with her research background, was used to seeking. She also doubted that her theory would attract much public interest, even in the face of a world-changing pandemic. A career studying smell had taught her that most people simply don’t consider the sense to be particularly interesting or important. It was always hard to get financing to study smell or smell disorders, and patients who lost their olfaction often told her that their friends and family shrugged the condition away: It was only smell, after all.
Still, Hopkins and Nirmal Kumar, the president of ENT UK, decided to put out an alert, hoping it would at least encourage their fellow nose doctors to take extra precautions. Then, that same weekend, Rudy Gobert — the Utah Jazz star whose Covid-19 diagnosis caused the N.B.A. to abruptly suspend its season (just after Gobert mocked the danger by touching all the microphones at a news conference) — announced that he had lost his sense of smell. Hopkins’s alert ricocheted around the world, picked up by news outlets and shared on social media by people desperate for information about the workings of the new virus and any signs that they might already have been exposed. It also kept landing, over and over, in the inboxes of Danielle Reed and hundreds of other scientists who studied smell in some way.
The breadth of their backgrounds was stunning, even to one another. There were neurobiologists and otorhinolaryngologists, virologists and food scientists. There were chemists and data specialists, cognitive scientists and nutritionists, geneticists, psychologists, philosophers — an indication of how complicated the interplay of smell, taste and human life is. Like Hopkins, many of them were used to their work being as underappreciated as the senses they studied.
Smell is a startling superpower. You can walk through someone’s front door and instantly know that she recently made popcorn. Drive down the street and somehow sense that the neighbors are barbecuing. Intuit, just as a side effect of breathing a bit of air, that this sweater has been worn but that one hasn’t, that it’s going to start raining soon, that the grass was trimmed a few hours back. If you weren’t used to it, it would seem like witchcraft.
But of course you are used to it. You may even take it for granted. Perhaps you would rank smell, as most adults in a 2019 survey did, as the least important sense, the one you would be most willing to lose. Perhaps you would even agree with the majority of young people who, in 2011, told McCann Worldgroup, a marketing company, that smell was less valuable to them than their technological devices. As PC Magazine trumpeted, with a mixture of scorn and glee: MAJORITY OF KIDS WOULD RATHER LOSE THEIR SENSE OF SMELL THAN LOSE FACEBOOK.
The writers of that headline seemed to see disregard for smell as shocking, a marker of a technology-obsessed and perhaps uniquely shallow generation. That reaction would have come as a surprise to Immanuel Kant, who wrote, in 1798, that smell is both the “most ungrateful” and the “most dispensable” of the senses. Charles Darwin considered smell to be “of extremely slight service” to humans. Until quite recently, one smell researcher told me, most general medical textbooks didn’t bother to include a chapter on smell or taste, apparently considering them insignificant afterthoughts to the functioning of the human body. From Plato and Aristotle (Plato considered smells “half-formed,” and Aristotle wrote that “man smells poorly”) to Descartes and Hegel (one called vision the “noblest of the senses,” while the other dismissed smell and taste as too pedestrian and vulgar to be included among the senses in his aesthetics), we have spent centuries writing off our own sense of smell.
One reason we have discounted smelling is our belief that we’re bad at it. Smell was the province of lesser animals, we told ourselves, of pigs rooting out truffles and sharks scenting blood, while humans were creatures of reason and intellect who managed to stand up and grow huge brains and leave that life far behind — and, literally, below — us. Scientists followed Paul Broca, a 19th-century neuroscientist, in pointing to the relative smallness of our olfactory bulbs as evidence that our brains had triumphed over them, and likewise over the need to pay much attention to smell at all. In the late 1950s, a pioneering ear, nose and throat specialist, Victor Negus, summed up the consensus view in a book about the comparative anatomy of the nose. “The human mind is an inadequate agent with which to study olfaction,” the specialist wrote, “for the reason that in Man the sense of smell is relatively feeble and not of great significance.” For centuries, when scientists studied smell at all, they tended to focus on isolating particular odorants (they thought they could find the odor version of primary colors) and creating elaborate organizational systems that shuffled them into various categories (“History is littered with the wrecks of Universal Classifications of Smell,” the smell scientist Avery Gilbert wrote in his book “What the Nose Knows.”) Questions of how humans smell and how our smelling, in turn, interacts with our bodies, our health and our behavior were of far less interest. The sense, after all, was seen as practically vestigial: an often handy, sometimes pleasant but ultimately unimportant holdover from our distant past.
The notion of smell as vestigial has itself come to seem outmoded. That’s because of a renaissance in smell science. While we have long understood the basic mechanisms of vision and audition, it has been less than 30 years since the neural receptors that allow us to perceive and make sense of the smells around us were even identified. The discoverers — Linda Buck and Richard Axel — were awarded the Nobel Prize in 2004.
The revelation opened the door to a new way of understanding the olfactory system, as well as to a new, ever-expanding world of research. A system assumed to be unsophisticated and insignificant turned out to be quite the opposite. Where vision depends on four kinds of receptors — rods and three types of cones — smell uses about 400 receptors, which are together estimated to be able to detect as many as a trillion smells. The complexity of the system is such that we’re still unable to predict how, or even if, a given chemical will be perceived by our olfactory system. The old quest to map odorants and their perception is now understood to be a wildly complicated undertaking. Joel Mainland, a neuroscientist at the Monell Center who is working on the problem, told me that while maps of color vision are easily presented in two dimensions, an eventual olfactory map might require many more.
Recent studies have begun to puncture our conviction that we are too sophisticated to be good at smelling. Our brains know the difference between exercise sweat and fear sweat, and between a glass of wine that has recently contained a fruit fly and one that has not. They seem to compel us to sniff our fingers shortly after we shake other people’s hands, searching for information about them that we’re not consciously aware of processing. One inventive study found that, provided we’re willing to crawl around with our faces in the grass, humans are fully capable of finding a scent trail while blindfolded — not as well as a dog, granted, but we can follow it. Another found that we can tell, just from sniffing a T-shirt another person has worn, whether that person’s immune system is similar to our own. (If it’s different, we find the person more attractive.) But here’s what’s really impressive: Our noses can also distinguish between two groups of mice that have different immune systems.
Several years ago, the Rutgers scientist John McGann took a critical look at Broca’s 150-year-old dismissal of our olfactory bulbs and found it to be mistaken: Our bulbs are shaped a little differently, but when you compare how many neurons they hold with those of other mammals, humans are solidly “in the middle of the pack.” There are, he pointed out, even some odors we can smell better than rodents or canines can.
A much-discussed unit of measurement in smell studies is the J.N.D. — the Just Noticeable Difference, or the degree to which chemicals have to differ from one another in order for us to tell them apart. In November, a new paper in Nature advanced the quest for a map of olfactory perception by creating a model that can predict what odorants will smell like by contrasting their chemical makeup with that of other smells. The work relied on volunteers comparing hundreds of different odors and found them to be almost frustratingly good at it. “The failure to reach an absolute J.N.D. provides for yet additional evidence of an exquisite sense of smell in humans,” the authors said. “To rephrase this result: It is simply very hard to generate two multicomponent odorants that humans cannot discriminate.”
One of the authors, Noam Sobel of the Weizmann Institute of Science in Israel, also worked on the scent-trail study and the one about handshakes, as well as a study that found that an automatic sniff reaction — taking longer breaths when something smells good and shorter ones when something smells bad — is a reliable predictor that someone will eventually wake up from a coma. In the early days of the pandemic, he was spending his days at testing centers in Tel Aviv, trying to figure out whether an artificial nose could sniff out the novel coronavirus — not a crazy notion, because dogs are learning to do it, and because at least one human has proved her ability to identify sufferers of Parkinson’s disease just by smelling them. Sobel and his colleagues also started a website, SmellTracker.org, where people who were worried about Covid could track changes in their ability to smell a variety of common household items.
We think that smell is less important to us than our other senses only because we’re fooling ourselves, Sobel told me. After all, you wouldn’t eat a beautiful cake if it smelled like sewage, but you would probably try some ugly gloop that smelled like cinnamon. Covid, he hypothesized, could kick off a sort of global reckoning, forcing our conscious minds to recognize what our brains have known all along. “People are unaware smell is important until they lose it,” he said. “And then they’re terrified.”
The growing mess of emails that followed Hopkins’s alert in March quickly became so unwieldy that the scientists decided to move to a more formalized group. Within days, it had 500 members, from dozens of countries, and a name: the Global Consortium for Chemosensory Research. (The group eventually stabilized at around 630 members, from 64 countries.) “We decided to become a global organization,” explained Valentina Parma, a psychologist who, along with Reed and seven others, helped found the G.C.C.R.’s leadership committee. “We all got together to try to figure out what’s going on.”
The sheer number of questions was daunting. How many Covid patients experienced smell loss? How fully did smell disappear? (Smell loss is known as anosmia when it’s complete, and hyposmia when it’s partial.) Was Covid-related smell loss truly distinct from that caused by other viruses? How many patients would be able to recover their olfaction, and how long might it take?
Many patients were reporting loss of taste as well as smell, but this, too, was complicated. Thanks to a process called oral referral, which causes us to perceive what’s happening in the nose as if it’s inside the mouth, smell is integral to our experience of taste. People often struggle to separate the two, certain that they have lost their sense of taste when the taste buds — which detect only sweet, salty, bitter, sour and umami flavors — remain fully functional. There was also the question of the sensations we experience through neither olfaction nor taste, but via the nerves of our trigeminal system: the coolness of mint, the spice of peppers, the bubble of carbonation. Were these also affected? (The three, together, are known as our chemosensory senses: those we use to detect the presence of chemicals in our environment.) Answering these questions could help solve the most urgent puzzle: What exactly was happening inside patients to make their sense of smell disappear in such an unusual way? Could Covid-related smell loss teach us anything new about how the virus worked? Or about how we did?
As a panicked world closed down around them, members of the G.C.C.R. started meeting online every day, working on a plan to survey people with respiratory illnesses about their symptoms. There were so many eager researchers, from so many countries, that the survey was quickly translated into more than 30 languages. Though the group considered using several of the more objective olfaction tests developed in recent decades, they decided, given the urgency of the situation, to use the simplest method: asking patients to assess their own perceptions. The survey included, along with rating scales for smell and taste and multiple-choice options about diagnoses and symptoms, a series of open-ended text boxes where people could write as much as they wanted about what they could and couldn’t smell.
It turned out that they wanted to write a lot. Many people went on for pages and pages, offering enormous detail and torrents of feeling. “This was freaking people out,” says Pamela Dalton, an experimental psychologist at the Monell Center who studies the interaction between cognition, emotion and the way we perceive odors, and who also worked on the survey analysis. They wrote things like “I’m inhaling, and there’s nothing there.” People frequently described themselves as feeling adrift — disconnected from a world that felt wrong, uncanny, confusing. Reed noticed that many respondents, ejected from the system because they reported symptoms that weren’t recent enough to be included in the design of the study, signed back in with falsified dates so they could still participate. Those answers wouldn’t be included in the analysis, but Reed understood why they mattered. “Ultimately, people just want to tell their story,” she said.
In a matter of weeks, 40,000 people took the survey, and the members of the G.C.C.R. began to search for patterns in the data. They quickly established that people who lost smell and tested positive for the coronavirus weren’t encountering the typical nasal blockage — they often referred to the loss as “sudden” and “creepy” — and that they were also noticing genuine impairments not just to their olfaction but in many cases to their taste and trigeminal sensations as well. This clearly wasn’t the typical pathology of smell loss following a virus.
The scientists also noticed that a disconnect was forming between what the data showed and how the wider world responded. Early on, data from apps for tracking symptoms showed that smell loss was more common than the fever or cough the virus was known for; it also had the diagnostic advantage of pointing directly to Covid, rather than to another respiratory illness. And yet schools and restaurants and airports continued to use forehead thermometers to screen for fevers — a symptom that many people with Covid never experienced. Later G.C.C.R. analysis showed that smell loss was, in fact, the most reliable predictor of Covid, and that this was true even for people assessing their own smell loss (which, research has shown, is something people tend to be quite bad at). Reed and other researchers also found that objective smell tests, in which patients have to prove themselves against actual stimuli, were able to catch many extra Covid cases among people who failed to realize when their sense of smell had changed. “The better we ask questions about smell,” Parma says, “the more people we find.”
In Britain, Hopkins was growing frustrated. The weeks kept passing, and smell loss still didn’t appear on the official list of symptoms recognized by the National Health Service — a list that determined who qualified, or didn’t, for coronavirus testing. One of her patients, a physiotherapist, was told to keep reporting to the I.C.U. where he worked, even though his family was sick and he had lost his sense of smell. He convinced his team that he should be allowed to self-isolate, but Hopkins wondered how many other people were in similar situations, sent out into the world to spread a virus they were assured they didn’t have. “I can still put in my symptoms into NHS 111” — the portal through which patients access care from the National Health Service — “and claim to have muscle ache, fatigue, loss of smell, diarrhea and be told that I don’t have coronavirus,” she told the BBC in mid-May. “I think that is now actually, clinically, negligence.”
Months later, after the N.H.S. officially recognized smell loss as a Covid symptom, I asked Hopkins why she thought that recognition of smell loss as a symptom of Covid had taken so long. In part, she replied, the trauma of the serious cases had obscured, in the data as well as from public notice, a symptom that was primarily noticeable in people with only mild disease. But she also believed that there was another important factor, unrelated to the virus. Covid arrived in a world that had spent far too long not taking smell seriously.
This may be the moment for a belated disclosure: Part of what interests me about the science of smell is that I myself am anosmic. (The outsider to whom smell looks like a superpower? That’s me.) I have no idea if my inability to smell is congenital or if my olfaction stopped working before I had the chance to remember it. I did have a lot of ear infections when I was very young, which are known to damage smell. Infants aren’t routinely screened for smell disorders, as they are for hearing or vision, and it’s common for anosmic people not to realize fully that they’re different until, on average, their early teens. That’s about how old I was when my sister came home to find me blissfully cuddling our skunk-sprayed dog, and the pieces began to fall into place. (Years later, the same sister came home just in time to stop me from lighting a match in a cabin I had accidentally filled with propane.) Before I learned what anosmia was, I assumed, whenever people brought up the things they were smelling, that this was a skill I had yet to figure out, that I just wasn’t doing it right.
One thing you notice when you can’t smell is how much time people who can smell spend talking about it. Friends are always curious about whether I can taste food (I love food, though I care primarily about textures and the flavors the actual taste buds perceive), but that’s the main difference they imagine. They don’t seem to realize all the other ways that smell is constantly on their minds. Smell is no big deal, until it’s missing.
As the pandemic progressed, the G.C.C.R. surveys showed that the experiences of patients who lost their sense of smell were beginning to diverge. There were those — about three-quarters of Covid patients, Reed says — who recovered their olfaction fairly quickly, from a few weeks to a couple of months after losing it. Then there were those who gained it back slowly, over the course of many months. But there was a smaller percentage who, at six months, didn’t seem to be recovering it at all.
This was what Chrissi Kelly, another G.C.C.R. member, feared might happen. In 2012, she lost her own sense of smell after fighting a virus she caught on an airplane. She spent the next two years feeling depressed, forgetful and like a fundamentally different person than she was when she could smell. “Life lacked color‚ luster,” she told me. “My sense of humor had deserted me.” The experience was so destabilizing that she began digging into scientific papers about smell loss — there weren’t many of them, and there was almost nothing for a lay audience — and contacting their authors, searching for possible treatments. She started practicing “smell training,” a little-known technique for recovering some olfaction by regularly smelling strong odors, and she started a support group on Facebook for other people with the condition.
Before Covid, the group, called AbScent, had grown to around 1,500 members, most of whom lost olfaction after a head injury, a virus or a sinus disease. And then the pandemic began. It soon became a nearly full time job just to process the flood of thousands of distressed people who were asking to join AbScent. In the group, people mourned specific smells and flavors, shared their struggles with nausea and weight loss or gain as they navigated an altered relationship with food. They commiserated about the new dangers of life: food poisoning, gas leaks, not noticing that dinner was burning. (This month, a Texas family whose members lost their sense of smell to Covid narrowly escaped a house fire after the only uninfected member, a teenager, smelled smoke and woke everyone else up.)
Many people also struggled with depression, symptoms similar to those of post-traumatic stress disorder and feelings of relentless isolation and disconnection from the world around them. It felt, some people said, as if they were living their lives in black and white, or trapped behind a sheet of glass; their sense of normalcy and well-being had disappeared with their olfaction. “I feel alien from myself,” one person wrote. “Detached from normality. Lonely in my body. It’s so hard to explain.” Another described feeling “discombobulated — like I don’t exist.” Kelly kept the group closed, out of respect for what she described as the “profound depths of sorrow and anger and anxiety” that people shared there.
Kelly sometimes noticed that requests to join the group would suddenly increase from a certain city or region, only to later read about a new spike in cases. She committed herself to responding to each person individually, spending hours every day. “It still feels like an emergency response,” she said over Zoom more than six months after the official start of the pandemic. As the numbers ballooned and the Covid patients began to overwhelm the discussion, Kelly started a separate support group just for them, which quickly dwarfed the original.
And then, quite suddenly, many people in the group began reporting something new. Their sense of smell seemed to be returning, yet it was coming back … broken. Things no longer smelled the way they had, and usually the new smell was bad: Food smelled like gasoline or cigarettes, or scented body wash was like burning rubber. Terrible smells even intruded when nothing odorous was around. A boyfriend no longer smelled or tasted right, and the poster had begun to avoid kissing him but had not told him why. “Poo now smelled better than coffee,” another person noted. Analysis of the G.C.C.R. surveys later found a similar pattern: As the pandemic progressed, the symptoms — known as parosmia, incorrect smells, and phantosmia, phantom smells — went from nearly unknown to incredibly common. Kelly and Hopkins and other researchers collaborated on a paper analyzing the posts in AbScent and found that, on average, three months elapsed between smell loss and the arrival of faulty smells. To manage what she called “the rising tide of parosmia,” Kelly spun off yet another support group.
In all three groups, as people shared their tips and experiences, Kelly noticed them sharing something else as well: overwhelming relief at having at last found others who understood what they were going through. Many had been told by friends or family that smell was no big deal, really, and they should buck up and be grateful that they hadn’t lost one of their really important senses. (A University of Warwick researcher noticed something similar 20 years ago, writing that what seemed to unify anosmics was “the expressed feeling that each was the only person in the world to be affected by the condition. This appears to be a direct reflection of the lack of sympathy that anosmics encounter concerning their condition.”) This was difficult, but worst of all was hearing something similar from doctors, who basically shrugged while explaining that there was no treatment.
When we talked, Kelly searched for a way to describe how excruciatingly frustrating these dismissals felt to the group’s members, then said, “It’s the great silent scream.”
Before the pandemic, Sandeep Robert Datta, who runs a neurobiology lab at Harvard, was studying what he described as both the basic mechanisms and the ongoing mysteries of olfaction: just how neural receptors capture smells, how that information travels to the brain, how the brain puts it all together to create an integrated smell that we recognize as pizza or gasoline. “We still understand so little about how our noses detect odors,” he told me.
As part of that work, the lab sequenced cells in the epithelium — a sheet of neurons and supporting cells lining the upper nasal cavities — and olfactory bulb of mice to determine what RNA each cell expressed. Datta’s attention, like that of most other researchers, was focused on the receptors that actually perceive odorants, the ones whose discoverers won the Nobel. He never gave much thought, he said later, to the cells that surrounded them.
In the early days of the pandemic, while Datta was quarantined away from his lab, he spent his time reading updates on the new virus and scrolling the discussions on the G.C.C.R. message board. Early analyses of the coronavirus showed that it used its distinctive spikes to attach to the cells of its hosts via a certain protein, known as an ACE-2 receptor. Datta’s thoughts drifted to those mice epithelia. He realized that he, as well as a few other researchers who had collected similar troves of data, already had information that could show whether the sensory neurons of the olfactory system were vulnerable to a direct attack by the virus — what he saw as “the natural hypothesis” to explain the sudden smell loss.
The data, however, showed otherwise: There were no ACE-2 receptors on those all-important neurons. But they were expressed on some of the other, barely studied cells that surrounded them. Some were stem cells, which allow the sensory neurons to regrow when they’re damaged. (Olfactory sensory neurons are the only type of neuron directly exposed to the outside world, so they sustain an unusual amount of damage. They’re also a rare part of your nervous system that is able to renew itself.) Others were “sustentacular” cells, which seem to provide various kinds of support to the neurons: metabolic and physical, plus maintaining the right salt balance in the mucus that is essential for odor detection.
Studies on hamsters, which unlike mice are naturally susceptible to the coronavirus, confirmed that these cells were indeed capable of being infected by the virus. This could be an explanation for the different paths that patients’ olfaction tended to take after being impaired by Covid, Datta and other scientists hypothesized. For some people, olfaction might simply have been interrupted for a few weeks while their sustentacular cells were knocked temporarily out of commission — either by the virus or by the body’s own immune response as it tried to fight it off. For others, the cells might have been so damaged in the fight that the neurons they supported actually died and had to regrow slowly, over the course of months. (This theory could also explain the belated but widespread wave of parosmia: When the axons that connect the olfactory epithelium and the brain are disrupted, they’re known to reconnect in strange ways, as if an old-timey telephone operator plugged a wire into the wrong call. Still, no one knows why the wrong smells are so often such unpleasant ones.) And then there might be people whose epithelia, and especially their stem cells, sustained so much viral damage that their neurons would never be able to regrow, and their sense of smell never able to recover.
It’s a compelling and even likely theory, other researchers told me. But they stressed that there’s a lot about olfaction, just as there is about the new virus, that we simply don’t yet understand. Sensory neurons could turn out to be infectible after all, or the virus could be using other unknown cells as an entry point. There is evidence that the virus may have found a way to overcome the protective barrier around the brain to invade the central nervous system directly, perhaps even via the pathways provided by the olfactory system. That, too, could explain smell loss, as well as some of the other troubling neurological effects that patients have experienced. We also still don’t know what’s happening to disrupt taste and trigeminal sensations, though there is some debate that the virus could be similarly targeting the support cells for taste and smell receptors.
If smell scientists have learned anything in the recent renaissance, it’s not to underestimate how much, or how intimately, the chemical senses intertwine with the rest of the brain. While what we see must pass through various parts of the brain before it reaches our centers for memory or emotion, smell has a nearly direct pathway. “They’re built together,” Datta said of the brain and the chemical world that it perceives. “They’re meant to function as a unit.”
It’s common to lose smell acuity as you age. Nearly one in five Americans over 40 reports a changed sense of smell; one in eight has a measurable olfactory dysfunction; one in 15 experiences phantom odors. Before Covid, an estimated 3 percent of Americans had little or no smell at all.
We don’t have good data on how many people are born without a sense of smell, though the National Institutes of Health estimates that it may be one in 10,000. We also don’t know how to cure congenital anosmia; which parts of the olfactory system usually fail to work; or how the condition interacts with things like genetics, chemical signaling, memory or neural diseases. “That,” Sobel, of the Weizmann Institute, told me, “is kind of pathetic.”
As the science of smell has expanded, researchers have learned that olfaction, far from being an unimportant sideshow, is interlaced with many diseases that concern us deeply. Smell loss is an early warning sign of neural diseases like Alzheimer’s, Parkinson’s and schizophrenia, which is also strongly associated with parosmia and phantosmia. People with depression have decreased olfaction and smaller olfactory bulbs on average, and the size decreases according to the severity of the depression. Children with autism have different automatic sniff reactions than those who are neurotypical, and they use more parts of their brains to process odors. They can also follow social cues better if they can smell a mother’s odor, even if she isn’t present.
Olfaction is also bound up, in ways that we’re only beginning to understand, with our immune systems. Both, after all, depend on the body’s ability to recognize and respond to chemicals in the environment, and some immune cells even depend on olfactory receptors to respond to invaders. (In fact, there are olfactory and taste sensory receptors scattered throughout the body: in the kidneys, the small intestine, the lungs, the stomach. They seem to be “smelling” and “tasting” their surroundings to alert tissues when there are pathogens or other dangers nearby.) A wide spectrum of autoimmune or immune-mediated diseases, from multiple sclerosis to rheumatoid arthritis to lupus to recurrent pregnancy loss, are associated with smell loss or irregularity. Richard Doty, a pioneering smell researcher at the University of Pennsylvania, told me that the link is so strong that he has sometimes wondered if it’s a sign that some of these diseases might have undiscovered viral causes. There are also unexplored links to the thyroid and hormones. Untold questions are still waiting for answers, wrote the authors of a 2013 meta-analysis: “The different connections between smell and autoimmunity, genes and hormones may suggest that this is another tessera of a mosaic which is waiting the answer of Oedipus.”
“We used to think,” said Dalton, the experimental psychologist, “that the chemical senses were the poor orphan or poor cousins” of the sensory world. Lately, though, smell scientists more often refer to olfaction as the Cinderella sense: one that is perceived completely differently once you stop ignoring and disparaging it.
So why are we so convinced that humans are bad smellers? Many scientists believe that it comes down to how intensely personal our experience of smell is, how difficult it is to share it with others. Research shows that people are much better at differentiating among different smells than correctly identifying a single one — a problem I heard researchers call the “fuzziness” of smell, the “tip of the nose” feeling we get when we encounter something familiar that we can’t quite name. We may not be bad at smelling, but we are bad at putting what we smell into words. (Kant again: “Smell does not allow itself to be described, but only compared through similarity with another sense.”) With vision, we have a concrete vocabulary to lean on: red or blue, dark or bright. (As I was writing this, I noticed how much I, and the people I interviewed, relied on visual metaphors — smell is overlooked, the world loses color — even when discussing a distinct sense.) Even if we’re perceiving a color differently from the way someone else is — which is, in fact, pretty often the case — we still have a shared language that we can all lean on to discuss it. With smell, we find ourselves flailing.
The subjectiveness of our experience means that coherent analogies can be hard to find. The same molecular compound can, for a variety of reasons, smell totally different to two people. In fact, even the very same person can experience it differently at different times, especially if their own chemistry is altered by being, say, hungry or hung over or pregnant. Our genetics determine whether we can smell cyanide, and whether we will experience the pheromone androstenone as smelling like vanilla or like a grim combination of dirty socks and urine or like nothing at all. Genetics plus life experience, the natural attrition and regrowth of your epithelium (it may be that the more you smell an odor, the more receptors you develop that can perceive it), mean that 30 percent of your receptors may be different from those of the person next to you. Culture, too, plays a role: Whether you think lemon smells “clean” or not may depend on whether you grew up associating it with cleaning products or with hot, overripe citrus groves.
Our descriptions of smell also lack resolution, Mainland, the neuroscientist, notes: Though Pantone lists dozens of shades of blue, each of which can be quantified precisely in hue and saturation, we can really describe a banana scent only as banana-y. (If our experience of vision were as dissolute as smell, the philosopher Daniel Dennett has written, “the sky would go all birdish” when a bird flew by.) Yet the intensity of a smell can completely change the way we experience it. Mainland, who often asks volunteers to describe smells in his lab, told me that he has one vial that is perceived as grapefruit at low concentrations but rotten egg at high ones, and another that slides from black currant to cat pee. As Parma says: “With vision, we agree on where we stand. With odor, it’s like a kaleidoscope.”
That turns out to matter quite a lot. Being able to describe and discuss what we smell helps us smell it better. Think of sommeliers, who learn to pick out the distinct aromas of wine in large part by learning a language for them. Or consider, as the cognitive scientist and philosopher A.S. Barwich explains in her book “Smellosophy,” that beer experts have lots of descriptors for bitter flavors, which they prize, while wine drinkers, who consider bitterness a sign of a failed wine, have few.
Asifa Majid, who studies language and cognition at the University of York, has written about languages in Southeast Asia that have genuine lexicons for odors: sets of words that work much like color words, each describing something inherent in the experience of a smell rather than comparing it to other things. While Westerners trying to describe smells tend to hem and haw and squint into space, searching for descriptors, speakers of these languages are declarative and decisive. (Majid described, to The Atlantic, how her own ability to name smells looked in comparison: “Some kids were following me around and laughing. Like, ‘How can you be such a moron?’”) Huehuetla Tepehua, an Indigenous language in Mexico, likewise has at least 45 different words that express specific olfactory experiences. People who grow up in such cultures are better at detecting, discriminating and naming odors. One also doubts that they would require a scientific renaissance to tell them that smell matters.
Western psychology is frequently, and justifiably, criticized for being skewed because such a disproportionate number of its study subjects come from just a few WEIRD countries — Western, Educated, Industrial, Rich and Democratic. Smell scientists have also begun to talk about what it means that many early scientists and theoreticians of perception, as well as the people they studied, were also ODD: They were Older people (whose senses of smell were therefore naturally diminished); they lived in Deodorized societies, where many natural smells were unwelcome; and they were also generally Desensitized to smells because of living in cultures that paid little attention to them, and because of the dulling effects of urban pollution and even, perhaps, their common affinity for smoking. It may be no wonder at all that they found smell so unworthy of consideration.
This leads to some interesting questions. What if we’ve spent so much time dismissing the importance of smell because of some odd (or ODD) accident of history? And what if we might rediscover it, in part, because of another?
As the virus ripped through New York City last spring, Pablo Meyer, another G.C.C.R. member, stayed inside his apartment, listening to ambulance sirens. Every morning, he tested his own sense of smell to assuage the persistent fear that he, like so many of his neighbors, had contracted the coronavirus. He then spent his days reading replies to the G.C.C.R. survey as they poured in from around the world. One person’s sense of smell disappeared entirely over the course of cooking a single meal. Someone found a boyfriend’s signature pasta dish suddenly disgusting, while someone else doused a worryingly bland breakfast with hot sauce to no effect. A sommelier failed to notice that the cat’s litter box was full, and a self-described former bloodhound, always the first in any group of people to notice an odor, nearly gagged on food that smelled of nothing. “Nothing is savory anymore,” someone wrote. “Coffee is just bitter. A cake is just sweet. A burger is just salty.”
Meyer began to feel as if he knew the people personally — the ones who described smells in terms of tea and fruit, or meat and gasoline, or blue Powerade and lollipops. The way they described their senses felt so intimate, he said later, “you could almost see the type of person they are.” He was becoming convinced that people believe they are bad at describing smells simply because they so often are asked to do so in labs, sniffing single, isolated molecules (when the more familiar odor of coffee is a blend of many hundreds of them), cloistered away from the context of their real lives and the smells that actually mattered to them. Given the right opportunity, he said, “people become very, very verbal.”
For Meyer, an IBM researcher who specializes in using algorithms to analyze biological data, and who was one of the people who insisted that the G.C.C.R. surveys should include open text boxes, this was exciting news. For years, scientists studying smell have been working off just a few, deeply deficient data sets that link different chemicals and the way humans perceive them. There was, for example, a record created in the late 1960s by a single perfumer, who described thousands of smells, and study after study relied on a single “Atlas of Odor Character Profiles,” published in 1985. It drew on the observations of volunteers who had been asked to smell various single molecules and chemical mixtures, rating and naming them according to a supplied list of descriptors that many scientists felt was flawed and dated.
More recently, Meyer and many others had been using a new data set, painstakingly created by scientists at the Rockefeller University in New York and published in 2016. (I visited the lab in 2014, while Leslie Vosshall and her colleagues were building their data, and was surprised to find I could “smell” one of the vials, though it probably just triggered my trigeminal system. When I told Vosshall that it seemed minty, she replied: “Really? Most people say, ‘Dirty socks.’”) But while the new data set was a significant improvement — 55 people smelled 480 different molecules, rating them by intensity, pleasantness, familiarity and how well they matched a list of 20 descriptions, including “garlic,” “spices,” “flower,” “bakery,” “musky,” “urinous” and so on — it was still a sign of how limited the field was.
This was why Meyer, along with his colleague Guillermo Cecchi, pushed for those open text boxes in the G.C.C.R. survey. They were interested in the possibilities of natural language processing, a branch of machine learning that uses algorithms to analyze the patterns of human expression; Cecchi was already using the technology to predict the early onset of Alzheimer’s, when it is most treatable, by analyzing details of the way people speak. Many researchers had written about the possibilities of using artificial intelligence to finally make a predictive olfactory map, as well as to look at links between changes in olfaction and all the diseases to which those changes are connected, but sufficient data was never available.
Now Covid had provided researchers with a big, complicated data set linking olfactory experience and the progression of a specific disease. It wasn’t constrained by numerical rankings, monomolecules or a few proffered adjectives, but instead allowed people to speak freely about real smells, in the real world, in all their complex and subjective glory.
When Meyer and Cecchi’s colleague Raquel Norel finished analyzing the open-ended answers from English-speaking respondents, they found, with surprise and delight, that their textual analysis was just as predictive of a Covid diagnosis as people’s numerical ratings of smell losses. The algorithms worked because people with Covid used very different words to talk about smell than those without it; even those who hadn’t fully lost their olfaction still tended to describe their sensations in the same ways, repeating words like “metallic,” “decayed,” “chemical,” “acid,” “sour,” “burnt” and “urine.” It was an encouraging finding, a proof of concept that they couldn’t wait to explore in a lot more depth — first in the G.C.C.R. responses in other languages and then, in the future, in other data sets related to other diseases. Meyer got excited when he talked about it. “Anything where smell changes,” he told me. “Depression, schizophrenia, Alzheimer’s, Parkinson’s, neurodegeneration, cognitive and neuropsychiatric disease. The whole enchilada, as they say.”
I had a hard time imagining the olfactory “map” that scientists have dreamed of for so long. Would it, I asked Mainland, look something like a periodic table? He suggested I think, instead, of the maps that scientists have made of “color space,” which arrange colors to show their mathematical relationships and mixtures. “We didn’t know how useful color space was until people started inventing things like color television and Photoshop,” he explained, adding that the map itself isn’t the goal, but rather the ability to use it to understand why we smell what we do. After that, what will be really interesting are the applications we can’t yet imagine. “It’s hard to understand the utility of the map,” he said, “until you have the map.”
At the beginning of October, I watched on a webinar as Veronica Pereda-Loth, a G.C.C.R. member, shared a different type of map, which she and other researchers had created. Using data from France, where an especially large number of people had filled out the survey, researchers overlaid the timing and geography of self-reported smell and taste loss with lockdowns and hospital admissions. They found that increases in anosmia had been a more timely indicator of surges in viral transmission than the data the government was using. They could also see the effects of lockdowns clearly in the surveys: New-onset smell and taste loss began to decline five days after lockdowns began, while it took 15 days for the government’s hospital-based indicators to show that they were working. Smell-and-taste tracking could be “a crucial tool for detecting next waves,” Pereda-Loth argued. Yet it remained difficult to get smell taken seriously; when someone asked how that fact was being communicated to governments, there was a lot of rueful laughter. Europe’s autumn spike, which eventually brought new lockdowns, began shortly afterward.
Parma thought that the G.C.C.R. message board would start to quiet down once lockdowns ended and people went back to their own labs, but instead she saw more and more proposals for ways to study the group’s data, and more small groups of new collaborators, spinning off to chase new questions. Dalton imagines a future in which smell checks on infants and children, which could give far more insight into their overall health than a hearing test, become routine. She and Reed, as well as some other researchers, have begun developing coronavirus screening tests for public places, based not on fevers but on ability to smell. Hopkins, who partnered with scientists from Belgium, Italy and elsewhere to publish more than 30 papers about the way the virus and olfaction intertwine, expects more attention to the study of smell training and other as-yet-unknown treatments for people who have lost their sense of smell. It’s a problem that she thinks will be taken much more seriously in a post-Covid world in which many people, possibly millions of them, never fully recover their olfaction.
If smell was ignored before, off in the hinterlands, you could say that Covid put it on the map. But studying smell, scientist after scientist told me, had already reshaped the way they thought about the world and their place in it. They went, they said, from thinking of smell as a “bonus sense” to a dominant one, and “from a secondary sense to one of the primary things that influences our life.” The geography had shifted even as they were working to chart it.