module.exports = "(function(e,r,t){var i,n,s=t(54),o=t(1864).instance,p=t(1985).instance,a=e.exports=s.patterns.ObjectSchema=s.extend({initialize:function(e,r){var t=this;this.other=r||o,this.properties=e||[],this.stringProps={},this.regexpProps=[],this.properties.forEach((function(e){\"string\"==typeof e.key?t.stringProps[e.key]=e:t.regexpProps.push(e)}))},errors:function(e){var r=this;if(null==e)return e+\" is not Object\";var t={};return Object.keys(this.stringProps).forEach((function(i){var n=r.stringProps[i].value.errors(e[i]);n&&(t[i]=n)})),Object.keys(t).length>0&&t},validate:function(e){var r=this;if(null==e)return!1;var t,i=Object.keys(this.stringProps).every((function(t){return 0===r.stringProps[t].min&&!(t in e)||r.stringProps[t].value.validate(e[t])}));if(!i)return!1;if(!this.regexpProps.length&&this.other===o)return!0;for(var n in e){t=!1;var s=Object.keys(this.regexpProps).every((function(i){return!r.regexpProps[i].key.test(i)||(t=!0)&&r.regexpProps[i].value.validate(e[i])}));if(!s)return!1;if(!t&&!(n in this.stringProps)&&!this.other.validate(e[n]))return!1}return!0},toJSON:s.session((function(){var e,r,t,i=s.prototype.toJSON.call(this,!0);if(null!=i.$ref)return i;for(e in i.type=\"object\",this.stringProps)r=this.stringProps[e],i.properties=i.properties||{},i.properties[r.key]=r.value.toJSON(),1===r.min&&(i.properties[r.key].required=!0),r.title&&(i.properties[r.key].title=r.title);for(e=0;e<this.regexpProps.length;e++)r=this.regexpProps[e],i.patternProperties=i.patternProperties||{},t=(t=r.key.toString()).substr(2,t.length-4),i.patternProperties[t]=r.value.toJSON(),r.title&&(i.patternProperties[t].title=r.title);return this.other!==o&&(i.additionalProperties=this.other!==p&&this.other.toJSON()),i}))}),u=(i=\"[](){}^$?*+.\".split(\"\").map((function(e){return RegExp(\"(\\\\\\\\)*\\\\\"+e,\"g\")})),n=\"bBwWdDsS\".split(\"\").map((function(e){return RegExp(\"(\\\\\\\\)*\"+e,\"g\")})),function(e){var r,t,s;for(r=0;r<i.length;r++)if(s=e.match(i[r]))for(t=0;t<s.length;t++)if(s[t].length%2==1)return RegExp(\"^\"+e+\"$\");for(r=0;r<n.length;r++)if(s=e.match(n[r]))for(t=0;t<s.length;t++)if(s[t].length%2==0)return RegExp(\"^\"+e+\"$\");for(r=0;r<i.length;r++)e=e.replace(i[r],(function(e){return e.substr(1)}));return e});s.fromJS.def((function(e){if(e instanceof Object){var r,t,i=[];for(var n in e)t={value:s.fromJS(e[n])},\"*\"!==n?(t.min=\"*\"===n[0]||\"?\"===n[0]?0:1,t.max=\"*\"===n[0]||\"+\"===n[0]?1/0:1,n=(n=n.replace(/^[*?+]/,\"\")).replace(/\\s*:[^:]+$/,(function(e){return t.title=e.replace(/^\\s*:\\s*/,\"\"),\"\"})),t.key=u(n),i.push(t)):r=t.value;return new a(i,r)}})),s.fromJSON.def((function(e){if(e&&\"object\"===e.type){var r,t,i=[];for(r in e.properties)i.push({min:e.properties[r].required?1:0,max:1,key:r,value:s.fromJSON(e.properties[r]),title:e.properties[r].title});for(r in e.patternProperties)i.push({min:0,max:1/0,key:RegExp(\"^\"+r+\"$\"),value:s.fromJSON(e.patternProperties[r]),title:e.patternProperties[r].title});return void 0!==e.additionalProperties&&(t=!1===e.additionalProperties?p:s.fromJSON(e.additionalProperties)),new a(i,t)}}))})";